Commit Graph

2869 Commits

Author SHA1 Message Date
perepelits.m a4d2e42042 edje_edit: adding of NULL-checks
Summary:
New NULL-checks have been added in:

edje_edit_state_color_class_set
edje_edit_state_external_param_get
edje_edit_state_external_param_int_get
edje_edit_state_external_param_bool_get
edje_edit_state_external_param_double_get
edje_edit_state_external_param_string_get
edje_edit_state_external_param_choice_get
edje_edit_state_external_param_set

Reviewers: cedric, seoz, raster

Reviewed By: cedric

CC: reutskiy.v.v, cedric

Differential Revision: https://phab.enlightenment.org/D629
2014-03-13 10:26:20 +09:00
Chris Michael 2f3082df66 ecore-drm: Quiet down ecore_drm_output rendering messages
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:41:57 +00:00
Chris Michael c48fc5155a ecore-drm: Fix doxygen group for sprites
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 10:30:33 +00:00
Chris Michael bdf00c28b7 ecore-drm: Add API function to return the drm device name
@feature: Add new API function to return the drm device name

NB: This will be used in the ecore_evas_drm code to set the
ecore_evas->name.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 09:27:44 +00:00
Yossi Kantor 2a90b4f23d Eolian: Integration of Evas Grid 2014-03-12 10:57:28 +02:00
Daniel Zaoui 103e89a04a Eolian: Integration of Evas 2014-03-12 10:57:28 +02:00
Daniel Zaoui f22bd9e6ee Eolian: Integration of Evas Object.
const have been added in object parameter of two legacy APIs to fit
Eolian generated files.
Since these functions retrieve information from object, it is logic that
the object would be const.
2014-03-12 10:57:28 +02:00
Chris Michael cd28854fdf ecore-evas: Predefine Ecore_X_Atom and Ecore_X_Icon
@fix: Fix building Enlightenment without X support

These changes are needed so that we can build Enlightenment without X
support. Many places in the E code reference
Ecore_X_Atom/Ecore_X_Icon. If we build E without X support, these end
up being undefined, causing build to fail, so we need to predefine them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 08:42:01 +00:00
Chris Michael 11d250e5fc ecore-x: Predefine Ecore_X_Atom and Ecore_X_Icon
@fix: Fix building Enlightenment without X support

These changes are needed so that we can build Enlightenment without X
support. Many places in the E code reference
Ecore_X_Atom/Ecore_X_Icon. If we build E without X support, these end
up being undefined, causing build to fail, so we need to predefine them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-12 08:42:01 +00:00
Jean-Philippe Andre 96e58cebf7 Evas filters: Fix memory leak when destroying the object
The GL buffers set to be freed were released only the async case...
which doesn't make sense since GL is sync.

@fix
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 592204fe73 Evas filters: Optimize RGBA blur as well
Same as Alpha blur, use combination of box blurs,
and put all that code into optimizable functions.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 4443ecfa8b Evas filters: Optimize alpha box blur
Use two optimizable functions for BOX blur: vertical and horizontal.
These functions will run as many times as requested (from 1 to 6 max).

The horizontal case is pretty straightforward as the source is already
contiguous (nice in terms of cache hits). The only catch is to swap
src and dst without ever writing to the input buffer.

In case of vertical blur, we apply the same method as above, after
rotating the column into a horizontal (contiguous) span, and rotating
it back afterwards.

Now, the same needs to be done for RGBA :)
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 2a1ba1b908 Evas filters: Use box blur by default
BOX blur is a lot faster (and easier to optimize, too)
than GAUSSIAN blur. Repeating 2x or 3x BOX blur will also
give similar results to GAUSSIAN blur (very smooth), but
in much less time.

Add a count parameter to the BOX blur instruction.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 4e249143a5 Evas filters: Prepare optimization paths for BOX blur
Actually, there is a very nice trick with BOX blur.
Pass BOX blur 3 times and you can approximate a GAUSSIAN
blur with up to 3% accuracy. This is way more than enough
for just a simple graphical effect.

So, despite the crappy quality of BOX blur, we should
optimize it a lot so we can replace large GAUSSIAN blurs
with series of BOX blurs instead.

Source: Wikipedia's page on box blur :)

This commit also moves around some duplicated definitions.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 0dace7721e Evas filters: Fix 1-D blurs on a single buffer
When a blur operation requires a copy-back to the source
buffer, then the render_op must be set to COPY instead of
BLEND. Otherwise the non blurred content will be visible.

@fix
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 6674ef5b35 Evas filters: Move DEBUG_TIME macro to be used in the main file
Optimization can happen at a higher level than the blur function
itself... so let's measure the whole filter running time.
2014-03-12 14:08:02 +09:00
Jean-Philippe Andre a37a1d458d Evas filters: Fix uninitialized variable warning 2014-03-12 14:08:02 +09:00
Jean-Philippe Andre 9c3a3373b3 Evas filters: Add basic optimization for RGBA gaussian blur 2014-03-12 14:08:01 +09:00
Jean-Philippe Andre cb69700389 Evas filters: Add optimizable blur function
Prepare optimization paths for blur operations, as they are VERY
costly. This simple change, when using gcc -O3 flag, boosts
horizontal blur performance by > 50%, because STEP is 1 (and
so, memory accesses, increments, etc... are all very simple)

The objective is to have support for NEON, MMX, SSE, too, with
runtime detection.
2014-03-12 14:08:01 +09:00
Jean-Philippe Andre 1960c97eb4 Evas filters: Add more time debug marks in blur 2014-03-12 14:08:01 +09:00
Jean-Philippe Andre 2ea3cb6414 Evas filters: Remove dead code
Remove true Gaussian kernel code, as it is not usable over 12px and
was disabled because it gives different visual results than the
fake Gaussian curve using sin().
2014-03-12 14:08:01 +09:00
Jean-Philippe Andre caa8789424 Evas filters: Improve debug logs
According to Gustavo's comment :)
2014-03-12 14:08:01 +09:00
Boris Faure e8c0e71f89 evas: @fix use the correct composite op on lines with pixman 2014-03-11 22:34:35 +01:00
Tom Hacohen e280f32c01 Eo: removed redundant macro. 2014-03-11 15:58:43 +00:00
Tom Hacohen 122a2f890e Eo: Made eo id for classes a bit more secure.
This patch sets the one before most significant bit on for classes. This
means that class ids are now very big, compared to the old ids which
were growing small integers (1, 2, 3...).
This makes accidental passing of integers (corrupted obj pointers) less
common.

@feature
2014-03-11 15:56:30 +00:00
Daniel Zaoui 6f2657c3fb Eolian/Lexer: support of legacy overriding for properties. 2014-03-11 15:20:54 +02:00
Jérémy Zurcher c69b28dac0 eolian: regroup buffer allocation and read checks 2014-03-11 14:00:32 +01:00
Jérémy Zurcher 1e2f00e654 eolian: silence uninitialized var warning 2014-03-11 14:00:32 +01:00
Youngbok Shin cb5026137b evas/font: Added evas_font_path_global_* APIs.
Summary:
These APIs will be used for adding font paths for the application.
The existing APIs for font path, such as evas_font_path_append,
are used for adding font paths to the given evas.
But, these APIs will affect to every evas in the process.

Reviewers: tasn, woohyun, Hermet, seoz

CC: cedric, herdsman

Differential Revision: https://phab.enlightenment.org/D621

@feature
2014-03-11 11:21:56 +00:00
Daniel Zaoui 0f80ed9008 Eolian/Lexer: fix EOF issue.
When a new line was added before the last } in a .eo file, the parsing
was resulting in an error. It was due to the fact that some pointer
indicating the eof was not set when the parsing was done from memory.
2014-03-11 11:22:06 +02:00
Chris Michael 7d8059e4c5 ecore-drm: Add code to handle mouse input
@feature: Add support in ecore-drm for handling mouse movement, wheel,
and buttons.

This adds code to pass mouse events from linux input to ecore by
raising ecore_events (ecore_event_add).

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-11 08:44:46 +00:00
Chris Michael 8fe9adead1 ecore-drm: Add private structure to store mouse information in evdev
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-11 08:44:46 +00:00
WooHyun Jung 2791c3dc06 evas: Replace EINA_LIST_FOREACH_SAFE to while statement.
Clipees can be cleared before the loop is finished because
evas_object_clip_unset calls smart function of clip_unset.
So, if we use EINA_LIST_FOREACH_SAFE, invalid next list pointer
can be kept and read after obj->clip.clipees is freed.

Thanks to Davide Andreoli for reporting.

@fix
2014-03-11 16:34:56 +09:00
Yossi Kantor 1b2f732d2a Eolian: Integration of Evas Table 2014-03-11 07:37:48 +02:00
Daniel Zaoui e203ec008e Eolian: Integration of Evas Smart Clipped 2014-03-11 07:37:48 +02:00
Daniel Zaoui 44f9da675c Eolian: Integration of Evas Smart 2014-03-11 07:37:47 +02:00
Tom Hacohen c6589ffc19 Eina Log: Fixed ABI break introduce by the addition of 'color'.
ABI break was introduced here 5913ce7ec8

Always add new members at the end of public structures.
2014-03-10 16:50:13 +00:00
Tom Hacohen cb9a06f550 Evas font: Don't add canvas specific path to the global fontconfig path list.
This will come back when D621 gets in (which implements it correctly).
2014-03-10 16:17:21 +00:00
Tom Hacohen d175b8aa69 Evas textblock: Fix clipping issues with some texts with width > advance.
This happens with many texts. The issue occurs when the width of the
last char is larger than it's advance. Before this patch, we didn't the
width into account when calculating width, thus causing clipping issues
in some cases.
2014-03-10 14:58:18 +00:00
Chris Michael ee5caf9016 ecore-drm: Reset modifiers to zero before updating them on keypress
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:44:29 +00:00
Chris Michael c0894f4810 ecore-drm: Remove FIXME comment
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:38:01 +00:00
Chris Michael f667f70db9 ecore-drm: Add code to handle modifiers in a key event
@feature: Add handling of modifiers in a drm key event

This adds code to deal with modifiers being pressed/released during a
key event and pass those along to the ecore_event structure

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:33:23 +00:00
Chris Michael 71e3e63dfd ecore-drm: Add private xkb fields for depressed, latched, locked, and
group

This adds fields to the xkb structure for storing when modifiers are
pressed, released, etc so we can handle those in key events.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 13:33:22 +00:00
ChunEon Park 514cd15ccc edje - allow lager clipper space.
In acutal case, some application encounted that a proxy object is larger than a source clipper size.
So the proxy is clipped by the edje clipper.
We don't have to limit the clipper size to 10000x10000

@fix
2014-03-10 22:22:42 +09:00
Daniel Zaoui 4e33fd16e2 Eolian: add support of eo_prefix and data.
You can add in the .eo file the eo_prefix:... and data:... in case
you want to override respectively the Eo prefix and the data type.
If "data: null" is used, no data type will be added.
2014-03-10 15:07:05 +02:00
Chris Michael 2a36446402 ecore-drm: Set the window of the Ecore_Event_Key structure
@feature: Add keyboard event processing for ecore-drm

When we get a key event from evdev and create an Ecore_Event_Key to
pass along, we need to set the window where this event occured.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 42ed617302 ecore-drm: Add API function to set the window we should send events
too.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 5ffa7cd23f ecore-drm: Add private window field to drm device structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 90551ff49c ecore-drm: Add code pass along key events to ecore_event
@feature: Add keyboard input handling to ecore-drm library

This adds code to ecore_drm library to process keyboard events and
pass them to ecore_event so that ecore_evas can receive keyboard input

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00
Chris Michael 739da9956e ecore-drm: Create xkb context on device open
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2014-03-10 12:40:31 +00:00