So SVG support all kind of primitive, but really they are just sugar
on top of the simpler cubic bezier curve. Let's simplify our backend
by just supporting them and the simple line. We still provide all
the sugar, but via helper function that do convert to the right
number of Bezier curve.
This function will be handy to implement path interpolation in Edje later on. This
would be usable by Edje if we do push an Evas_Object_Shape. Not really difficult to
add at this stage.
Idea for this library is to become a retained mode drawing library that use
Eo/Eolian for its API and take a lot of the good design from Enesim by
Jorge Zapata and Jose Gonzalez (http://enesim.org/).
previously, it had the remaining value issues on blending computation.
The blending color result was in correct.
Signed-Off-By: Vladimir Kuramshin <v.kuramshin@samsung.com>
This is a new feature introduced by the shaders refactoring:
even masking shaders now support smooth sampling of the masked image
using the special 12,21,22 shaders.
Also, refactor the list of texture bindings so that it's
automatically generated by the script, as opposed to being a
manual list...
Now that the shader select function checks the values of "sam"
and "nomul", we can avoid sending the color to the shader when
it's a "nomul" shader. This will most likely give a performance
boost of roughly 0.00000001%.
Remove all individual shaders, factorize everything into
one vertex and one fragment shader. All previous functionality
has been kept as is[*]. Some new features have been added
(new shader types).
This is a first step in simplifying and improving the shaders system.
Next: simplify shader selection
[*] Yeah, that's quite a bold statement here. Maybe I broke everything.
Summary: Delete white space in Eeze.h
Reviewers: cedric, Sergeant_Whitespace
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2246
this adds a new utility called "eetpack" that uses eet, ecore_evas,
eina and evas to stuff images with various compressions/encodings (as
well as raw data in a simple way) into eet files like edj files or any
eet archive. can be used in combination with the "eet" utility and
edje_cc generated edj files.
@feature
in the event of fixed size -> non-fixed size (eg. previous commit optimization),
this calc would no longer occur, so we need to queue it. also if fixed.w or
fixed.h changes value for a group part, we must recalc the group to ensure correct
sizing occurs
when I said > 0 in the last commit message, I was thinking ahead to this commit
which I knew I would later have to make, but had not yet written because I had not
spent the requisite number of hours debugging the code to know that I needed to
have the check in both the code and the commit message
ref 3a451650d2
Invert the meaning of scaled (w,h), so that im->(w,h) corresponds
to the final scaled size, and the original size is stored directly
in the texture itself.
This simplifies code a little bit.
Also, lift the limitation on the maximum texture size, as those
virtual textures are not limited by GPU texture size.
Use the same method as for map masking:
- Pass absolute geometry of the mask to the push functions,
- Compute absolute position in the shader (like gl_Position)
and apply scaling factor + offset to sample the mask.
Masking now uses a single vec4 attribute instead of hi-jacking
other vertices.
This way, all masking shaders share the same code and are way
simpler. On the other hand, the vertex shaders have a little bit
more work to do.
valgrind was most unhappy with ecore_file_app_exe_get(). like:
==8331== Invalid write of size 1
==8331== at 0x68DE90A: ecore_file_app_exe_get (ecore_file.c:994)
==8331== Address 0x1348e58f is 0 bytes after a block of size 31 alloc'd
==8331== at 0x4C28C20: malloc (vg_replace_malloc.c:296)
==8331== Invalid write of size 1
==8331== at 0x68DE948: ecore_file_app_exe_get (ecore_file.c:1000)
==8331== Address 0x1348e599 is 10 bytes after a block of size 31 alloc'd
==8331== at 0x4C28C20: malloc (vg_replace_malloc.c:296)
etc. etc. - so i rewrote it cleanly using strbuf to save code and
effort. cleaner now and ACTUALLY works correctly... and no valgrind
complaints.
@fix
this (and/or related prior commits) seems to have hugely improved
edje performance across the board. particularly noticeable in the
settings pane animations for terminology
#aprilfools
as with the previous commit, any user who wants geometry immediately
will be calling calc functions, so this is just going to be redundant
except in cases where calc is not wanted, in which case it is unnecessary
overhead
if the min/max of a part are identical and > 0, the part's min size is guaranteed
to be this size. there is no need to perform expensive recursive calcs here
Summary:
We were facing one problem in tizen sdk's build system as it does not trigger build for edc file
if only sub-edc files are changed. During analysis, we found that there is no option in edje_cc
for dumping include dependencies which other compiler (clang/ gcc etc) does have. We can do other
hack to solve this problem but it will be great if edje_cc can emit gnu style include dependency
target.
This patch will add support to generate gnu format include dependency file while compiling edc file.
similar to what gcc generates with option '-MMD -MF=<dep_file> -MT<dep_file>'
https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Preprocessor-Options.html
Test Plan: no failure in existing test
Reviewers: raster, cedric
Reviewed By: cedric
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D2263
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Do not try swapbuf init only if value of env 'EVAS_NO_DRI_SWAPBUF' is 1.
Reviewers: jpeg
Subscribers: spacegrapher, cedric, wonsik
Differential Revision: https://phab.enlightenment.org/D2259
This function make it possible to get a list of active Edje_Color_Class
in an application. Think about Enlightenment color class configuration,
but can now be done on any application dynamically.
@feature
Summary: logind has a seperate function to get the vt number.
@fix
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2252
Summary:
While creating a Ecore_con_url object, the url is given in this format "ftp://ftp.example.com". While uploading a file, this function was prefixing "ftp://" to this url which resulted in DNS failure, and upload fail. So corrected the issue.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2221
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Now evas_common_draw_context_font_ext_set takes 3 more parameters, fix the build
by adding NULL for the function pointers. We really need to switch to gl_generic
here, it would avoid this kind of problems.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Reviewers: cedric, jpeg
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2244
On many platforms the built-in mix(x, y, a) function faster
than its equivalent x * a + y * (1 - a)
Some fields (eg. data) may not be properly initialized.
Use calloc() instead of malloc() will ensure proper initialization
even if we add more fields.
These fields (data) would even be passed down to Evas as
Evas_Event_Key_Down for instance.
Summary: Adding textures to edje_cc and some topblock keywords that I have forgotten to add in previous commits.
Reviewers: Hermet, raster, cedric
Reviewed By: cedric
Subscribers: cedric, artem.popov
Differential Revision: https://phab.enlightenment.org/D2129
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Now the developer has to iterate the whole list to find the
index of the first occurence of the data.
I see that it is possible to get the index of the item for
the genlist widget, but for the eina_list not.
With these APIs it will be easier to implement *index_get
functions for the rest of widgets which contain items (Elm_List,
Elm_Ctxpopup etc.).
These functions returns the index of the given data or node in the eina_list.
Reviewers: Hermet, cedric
Subscribers: raster, cedric
Differential Revision: https://phab.enlightenment.org/D2189
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Added example for ftp upload. In the .gitignore only 2 files added which were missing. The differences it is showing is cos of reordering. I did ls and redirected the file to gitignore. So the files got reordered.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2223
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: this file name is used for input, not for output.
Reviewers: cedric, seoz, Hermet, raster
Subscribers: cedric, reutskiy.v.v
Differential Revision: https://phab.enlightenment.org/D2243
Summary: No APIs to get text_class for global hash and object hash
Reviewers: woohyun, cedric, raster
Reviewed By: cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2213
Summary: As there are various DVI and HDMI output names, update the
output connector types area to be more accurate so we get better
output names
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: To support multi-seat, ecore_drm need to issue the event to notify compositor of seat is added.
Test Plan: N/A
Reviewers: zmike, raster, gwanglim, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2212
Summary: It caused crash when clipper is NULL and it makes evas test-suite fail.
Test Plan: Run evas test-suite. (make check)
Reviewers: woohyun, tasn, herdsman, Hermet
Reviewed By: Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2215
Summary:
Added the device information in the Ecore_IMF_Event structs.
Applications may require to know actual source of key event to handle it differently depending on device.
Even if key events are currently generated from different devices, application couldn't distinguish it.
This patch will support device information for the Ecore-imf key events.
Reviewers: jihoon
Reviewed By: jihoon
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2214
Summary:
There is a restriction for some gpu drivers that
eglGetProcAddress must be called after eglMakeCurrent.
So separate egl/glx extensions check from gl_symbols
to be called inside eng_window_new.
Test Plan: egl and glx backend tests
Reviewers: cedric, jpeg
Subscribers: cedric, mer.kim, wonsik
Differential Revision: https://phab.enlightenment.org/D2193
This reverts commit 0585540bb3.
This broke Evas 3d examples. I also suspected some weird things and
wasn't 100% confident with this patch.
Closes T2215.
Thanks for the report.
Summary:
1. Have refactored code in ecore_con_local.c
2. Changed env variable from "TMP" to "TMPDIR".
3. Added check for negetive port number when type is ECORE_CON_LOCAL_USER.
4. Added check to check TMPDIR before assuming /tmp as temp directory.
5. Updated documentation in Ecore_Con.h explaining about local socket and port number.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2194
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: When setting up the Eeze_Udev_Watch for output hotplug
events, we should also be listening for the "change" event. As eeze
will now check the HOTPLUG property for drm events, we don't need to
check that here.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This fixes eeze_udev_watch_add for DRM events, Previously, we
were not getting a watch callback fired due to using the wrong
subsystem device type in
udev_monitor_filter_add_match_subsystem_devtype.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This is mainly just a build fix. This issue occurred due to
the function declaration being After a call to use it while not having
a function prototype. This just adds the function prototype
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This patch adds more information so we can debug output
hotplug events better. It fixes an issue where any new outputs
from _ecore_drm_update_outputs where not getting the eeze udev watch
event created, and also addresses the issue of disconnected outputs
not sending the ecore_drm_event (both minor fixes)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: This adds a bit more output during crtc flip errors so we can
debug multi-monitor setups
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Wayland API routines by policy do not check input parameters for invalid
values. In particular, many calls are wrappers through
wl_proxy_marshal, which derefs its first argument without a check.
So, for all wayland calls, always null check the first argument.
Reviewers: zmike, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2211
Summary:
The other functions in this module check inputs; this one should as
well.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2210
Summary: Materials are not used in any loader and will not be used in nearest future.
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2080
Conflicts:
src/examples/evas/Makefile.am
Summary:
Fix build failure with old version freetype.
It is caused for supporting colored font.
Reviewers: raster, jpeg, woohyun, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2200
Summary: As reported by derek & zmike, the previous engine refactor
left some issues where the app would 'flash' during redraws due to
buffer handling. This commit fixes that issue along with flashing
during resize.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we do not get a new_region_for_update from an engine, it
could mean that the engine has skipped a frame. In that case, we still
want to try and render any future frames. Before this commit, evas
would never try to re-render anything again once it hit a failed
frame. To fix this, we test for a valid returned region, and if we
don't get one, mark this frame as failed so we can try again.
NB: Thanks for the help Cedric !! :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This reverts commit 8bb13b626f.
Seems like this method is not so reliable after all :) Results
in precision loss for Eo IDs, so revert to the old hacky way.
Summary: If we are building for only gles 2.0, then we cannot use
glAlphaFunc else we get compile errors. This adds an #ifndef around
that block to fix building
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Removing last item in BOX/TABLE part is actually successful
but then we shouldn't realloc an array of items for 0 items.
That's ridiculous
(and because of that function removes EINA_FALSE,
so user could think that it's unable to remove last item).
So simply array can be set into NULL.
@fix
This is needed in Erigo to determine if a virtual pure function can be
invoked via eo_do, as we don't want error messages to be displayed in
case of a non implementation in the Eo object.
This function works with non virtual functions too.
Tests have been provided.
@feature
Summary:
Reinitialize FontConfig. If FontConfig has to be reinitialized
according to changes of system enviroments(ex. Changing font config files), it will be useful.
Reviewers: woohyun, seoz, tasn, cedric, raster
Reviewed By: raster
Subscribers: raster, herdsman, cedric
Differential Revision: https://phab.enlightenment.org/D1962
Summary:
Without EGL_PLATFORM environment variable, eglInitialize() can be
failed because egl tried to load DRM platform instead of X11 platform and it
tried to handle XDisplay pointer as a gbm_device pointer as well.
The failure seems to be occured especially if the egl was built
with DRM platform as native platform.
This revision can prevent the failure by indicating proper egl platform using
EGL_PLATFORM environment variable, and additionally it will unset
EGL_PLATFORM environment value when the engine free its info.
@fix
Reviewers: gwanglim, seoz, jaehwan, cedric, raster
Subscribers: raster, cedric
Differential Revision: https://phab.enlightenment.org/D1844
Summary:
In this patch, ecore_test_ecore_con_local_system_negport test case was failing.
Note that this patch does play with some environment variable to check more
code path in ecore_con.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2176
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
This has test cases for download related functions. Will make url
configurable and add post/upload related functions in the coming patch.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2175
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The socket can be created even with negative port number, but in that case the port
is ignored so that you can connect to non Ecore_Con based IPC. This patch remove
that test to make the client and server match.
@fix
Bug: While creating ECORE_CON_LOCAL_SYSTEM server and client pair, when the socket
name was "test_socket" and port number "-8" (Any negative number). Then while creating
listening socket, the code would go to line no 291 and socket is created in tmp by
".ecore_servicetest_socket|-8". When the same is passed to bind then the code would
go to line 118 and the socket it would try to bind would be ".ecore_servicetest_socket" !!
So the bind would fail.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2186
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>