evas_gl_common_buffer_dump can be used to dump all frames into
a series of PNG files. But the filename contained some garbage
characters (and potential segv, too).
(cherry picked from commit a0f886138ed5a28d0d1596df3b805fca06d1ae31)
Summary:
When edje class member is added, edje need to change member according to
the edje class.
@fix
Reviewers: raster, tasn, woohyun, seoz, Hermet, cedric
Reviewed By: raster
CC: cedric, herdsman
Differential Revision: https://phab.enlightenment.org/D637
Summary:
When the text was shorten by ellipsis, object size was fit to the text width.
If new text was set to the object, the text calculated with the smaller size.
It made shorten the object size when the text is set repeatly.
If the text is cutted off with ellipsis, it means there is no need to
resize the object.
Test Plan: elementary_test -> FileSelector Entry -> Click "Toggle Folder Only mode" button repeatly.
Reviewers: woohyun, tasn, raster, so.penible.animation, Hermet
Reviewed By: raster
CC: cedric, herdsman
Differential Revision: https://phab.enlightenment.org/D636
Now, it is possible to assign a default return value for a
method/property.
It will be used in case the function invocation makes issues, e.g eo_do
failing to find the function...
Summary:
The Doxygen header has an opening @\{ with no matching @\}, which
Doxygen will complain about. There is no explicit grouping associated
with the @\{, so I just removed it.
Test Plan: make doc 2> doxyerr.log
CC: cedric
Differential Revision: https://phab.enlightenment.org/D611
Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
Summary:
These files are missing group titles on the @defgroup line. Added the titles so Doxygen does not
complain.
Test Plan: make doc 2> doc/doxyerr.log
CC: cedric
Differential Revision: https://phab.enlightenment.org/D612
Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
configure: fix prerequisite header issue
Summary:
in some platforms like openBSD <sys/socket.h> must be included before
net/if.h
the canonical way to ensure that with autotools is by providing that
fourth directive.
evas: use MAP_ANON instead of MAP_ANONYMOUS
Stupid unpredictable standards (or not so standard).
MAP_ANON exists and is defined almost anywhere unlike MAP_ANONYMOUS
Let's use that for portability's sake (they are practically identical
anyway)
Reviewers: raster, cedric
Reviewed By: cedric
CC: cedric
Differential Revision: https://phab.enlightenment.org/D616
Signed-off-by: Cedric BAIL <cedric.bail@free.fr>
Summary:
There is a crash in naviframe demo and the stack points to the clip set function where it tries to acess evas object
from a NULL layer , by going through the log found out raster has already added the NULL check in clip_unset function
so just added the check in clip_set.
Reviewers: seoz, raster
CC: cedric
Differential Revision: https://phab.enlightenment.org/D625
This tag indicates that the ownership of the parameter/return
value changes.
It is needed by generators (C++/LUA...) to determine if it has to be
freed or not, if it can be used as is or need to be copied...
Before eo_do invocation, generated legacy functions returning a value
initialize it to 0.
This change is needed in the case that eo_do fails to find some
function, which leads to an unitialized value and behavior.
Tokenizer's approach of looking back is horrible and breaks the
following simple case (bug I had that lead to this patch):
"string\\"
As the parser would get the end quote and check the previous character
if it was a backslash and it was, but it was not escaping the quote,
but being escaped by the previous backslash.
The best approach is to first check for escape and then go to
quote. Escape is simple and only the following byte, so we enter
escape, process the byte and then are back to regular mode (be it
quote or unquote).
Added testcase so we avoid breaking it again.
@bugfix cherry-pick
It is not necessary to dynamically link to glReadPixels since
this is not an extension. This code wouldn't even work on some
devices.
Also, the pixels returned are not premultiplied (yeah >_<)
And some devices (EGL) don't support GL_BGRA... so glReadPixels
would just fail and not fill in the pixels. Conversion is required.
When a parameter of a property is const for get but not for set, the
.eo file indicates it by setting a flag 'const' for this parameter.
The generation was checking this flag for C files generation but not for
H files.
If we are given a drm device name, tell ecore_drm to try and find That
device. If it is not found, we fallback to the default drm device.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
from drm.
This assigns a name to the ecore_evas. If no device name was passed
in, we will get the device name from the drm card.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
@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
- Remove space between type and variable if a star is present.
- Initialize return value to NULL before eo_do. It is needed in case the
eo_do invocation fails (NULL object...).
- Add const to the internal return value if needed.
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
Summary: @fix compilation errors with defining variable and type on the same statement on clang without a default-constructor. Also removed warnings with inconsistent uses of struct/class for forward declaration and unused parameters.
Reviewers: cedric, stefan_schmidt
CC: savio, cedric
Differential Revision: https://phab.enlightenment.org/D622
Hmm, I forgot to add some .eo files to the EXTRA_DIST so they have not been
added inside the archive.
Eolian couldn't generate C files because of these missing files.
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.
Remove unused function and it's declaration. This function is not
being called from anywhere anymore, so it's no longer needed.
Signed-off-by: Chris Michael <cp.michael@samsung.com>