@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>
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.
@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>
@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>
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 :)
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.
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.
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
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.
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().
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
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
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.
@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>
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
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.
@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>
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>
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
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.
@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>
@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>