summaryrefslogtreecommitdiff
path: root/src/modules/evas (unfollow)
AgeCommit message (Collapse)Author
2016-03-15Evas engines: Add internal functions for native imagesJean-Philippe Andre
- image_native_init - image_native_shutdown init() will be used to test whether the engine supports a certain type of native image. Note: Native image support is very much dependent on the engine, and some stuff like opengl should work everywhere (even in sw with osmesa) but that's not the case.
2016-03-11gl_common: call evas_gl_common_texture_free() before dropping image cacheMike Blumenkrantz
texture_free() accesses struct members which can be freed if image cache entry reaches zero references @fix ==30989== Invalid read of size 1 ==30989== at 0x23BA2934: evas_gl_common_texture_free (evas_gl_texture.c:1506) ==30989== by 0x23BA9117: evas_gl_common_image_free (evas_gl_image.c:724) ==30989== by 0x23B80DA1: eng_image_data_put (evas_engine.c:988) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087) ==30989== Address 0x23a9e1d2 is 338 bytes inside a block of size 552 free'd ==30989== at 0x4C29E00: free (vg_replace_malloc.c:530) ==30989== by 0x882B2E2: _evas_common_rgba_image_delete (evas_image_main.c:343) ==30989== by 0x87B1E17: _evas_cache_image_entry_delete (evas_cache_image.c:205) ==30989== by 0x87B3C52: evas_cache_image_drop (evas_cache_image.c:950) ==30989== by 0x23BA90F5: evas_gl_common_image_free (evas_gl_image.c:722) ==30989== by 0x23B80DA1: eng_image_data_put (evas_engine.c:988) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087) ==30989== Block was alloc'd at ==30989== at 0x4C2AA98: calloc (vg_replace_malloc.c:711) ==30989== by 0x882B0A0: _evas_common_rgba_image_new (evas_image_main.c:295) ==30989== by 0x87B1F1B: _evas_cache_image_entry_new (evas_cache_image.c:253) ==30989== by 0x87B4170: evas_cache_image_data (evas_cache_image.c:1079) ==30989== by 0x23BA7EDE: evas_gl_common_image_new_from_data (evas_gl_image.c:333) ==30989== by 0x23B7F972: eng_image_new_from_data (evas_engine.c:531) ==30989== by 0x23B80D81: eng_image_data_put (evas_engine.c:984) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087) ==30989== ==30989== Invalid write of size 1 ==30989== at 0x23BA293E: evas_gl_common_texture_free (evas_gl_texture.c:1506) ==30989== by 0x23BA9117: evas_gl_common_image_free (evas_gl_image.c:724) ==30989== by 0x23B80DA1: eng_image_data_put (evas_engine.c:988) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087) ==30989== Address 0x23a9e1d2 is 338 bytes inside a block of size 552 free'd ==30989== at 0x4C29E00: free (vg_replace_malloc.c:530) ==30989== by 0x882B2E2: _evas_common_rgba_image_delete (evas_image_main.c:343) ==30989== by 0x87B1E17: _evas_cache_image_entry_delete (evas_cache_image.c:205) ==30989== by 0x87B3C52: evas_cache_image_drop (evas_cache_image.c:950) ==30989== by 0x23BA90F5: evas_gl_common_image_free (evas_gl_image.c:722) ==30989== by 0x23B80DA1: eng_image_data_put (evas_engine.c:988) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087) ==30989== Block was alloc'd at ==30989== at 0x4C2AA98: calloc (vg_replace_malloc.c:711) ==30989== by 0x882B0A0: _evas_common_rgba_image_new (evas_image_main.c:295) ==30989== by 0x87B1F1B: _evas_cache_image_entry_new (evas_cache_image.c:253) ==30989== by 0x87B4170: evas_cache_image_data (evas_cache_image.c:1079) ==30989== by 0x23BA7EDE: evas_gl_common_image_new_from_data (evas_gl_image.c:333) ==30989== by 0x23B7F972: eng_image_new_from_data (evas_engine.c:531) ==30989== by 0x23B80D81: eng_image_data_put (evas_engine.c:984) ==30989== by 0x872681A: _evas_image_data_set (evas_object_image.c:1264) ==30989== by 0x87360B5: evas_obj_image_data_set (evas_image.eo.c:236) ==30989== by 0x8736B43: evas_object_image_data_set (evas_image.eo.c:741) ==30989== by 0x4820A4: e_comp_object_render (e_comp_object.c:3746) ==30989== by 0x477B92: _e_comp_object_pixels_get (e_comp_object.c:909) ==30989== by 0x872CF52: evas_process_dirty_pixels (evas_object_image.c:3154) ==30989== by 0x872DD16: _evas_image_render (evas_object_image.c:3389) ==30989== by 0x872DB01: evas_object_image_render (evas_object_image.c:3351) ==30989== by 0x879C524: evas_render_mapped (evas_render.c:1802) ==30989== by 0x879E82A: evas_render_updates_internal_loop (evas_render.c:2380) ==30989== by 0x87A005D: evas_render_updates_internal (evas_render.c:2770) ==30989== by 0x87A140D: evas_render_updates_internal_wait (evas_render.c:3122) ==30989== by 0x87A1502: _evas_canvas_render_updates (evas_render.c:3144) ==30989== by 0x871ED0D: evas_canvas_render_updates (evas_canvas.eo.c:354) ==30989== by 0x8720C5F: evas_render_updates (evas_canvas.eo.c:1089) ==30989== by 0x22F65C35: _ecore_evas_drm_render (ecore_evas_drm.c:1072) ==30989== by 0x7416F7B: _ecore_evas_idle_enter (ecore_evas.c:172) ==30989== by 0xDDE3577: _ecore_call_task_cb (ecore_private.h:282) ==30989== by 0xDDE3A5E: _ecore_idle_enterer_call (ecore_idle_enterer.c:174) ==30989== by 0xDDE836B: _ecore_main_loop_iterate_internal (ecore_main.c:2261) ==30989== by 0xDDE67B8: ecore_main_loop_begin (ecore_main.c:1284) ==30989== by 0x4407B6: main (e_main.c:1087)
2016-03-11gl_common: remove incorrect EINA_UNUSED for evas_gl_common_texture_freeMike Blumenkrantz
2016-03-11Revert "Automatic migration to the new eo_add syntax."Tom Hacohen
This reverts commit 4f949a2757b6332306264d7f126b15ba7bfd37d4.
2016-03-10evas-gl: Fix dereference after null checkChris Michael
Coverity reports that 'ctx' may be NULL here and we should check it before usage (as is done above). Coverity CID1339785 @fix Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-03-09Automatic migration to the new eo_add syntax.Tom Hacohen
2016-03-03Fix more wrong migration to Eo4.Tom Hacohen
The if wasn't using {} so one of the statements was out of the scope of the condition. There was some misindented code.
2016-03-03Fix migration script mistakes and compilation warnings.Tom Hacohen
Mostly unused vars following the removal of eo_do_ret(). However, there are some cases where the migration script got some things wrong, and I had to manually fix them.
2016-03-03Automatic migration to Eo4.Tom Hacohen
I just ran my script (email to follow) to migrate all of the EFL automatically. This commit is *only* the automatic conversion, so it can be easily reverted and re-run.
2016-02-29Eo callbacks: Migrate all of the EFL to the new event cb signatures.Tom Hacohen
2016-02-18gl-drm: Some misc clean-upsDerek Foreman
Remove unused stuff from structs, cut out the EVAS_GL_DRM_BUFFERS env var - it can't work anyway, gbm decides how many buffers it wants.
2016-02-18gl-drm: revise page flip logicDerek Foreman
We can't really drive this buffer unlocking from the page flip handler for a lot of ugly reasons. This will be better in the future when evas supports multiple target buffers. For now let's cut this down and keep 2 buffers locked at all times. This gets drm-gl to work without massive tearing artifacts. @fix
2016-02-18gl_drm: stop trying to figure out buffer age if gl extension isn't presentDerek Foreman
If we don't have the right extension for age we probably don't have partial updates either. The code to get the age calculations right is actually much nastier than this anyway since gbm can hand back buffers in arbitrary order, and as many as it feels like.
2016-02-18gl_drm: remove frame_countDerek Foreman
It was a write only variable, kill it.
2016-02-18ecore_drm: Change page flipping logic so we can't tearDerek Foreman
Summary: Previously if we ever tried to queue up two page flips in less than a retrace interval (which can easily happen since the evas clock isn't based on vblank) we'd give up on ever using page flips again, and tear on every screen update. This fixes that by using a vblank callback for custom ticks and using page flips whenever possible. If a page flip fails it means a page flip raced with the vblank ticker, so we need to queue up that frame when the current page flip completes. This ensures that while we might drop interim frames, we will never lose the most recent. Now it should only be possible to tear if two ticks fire during the wait for a page flip to complete. This would result in rendering taking place in the front buffer. I don't think this can happen, but an error is logged if it does. Reviewers: zmike, devilhorns Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3594
2016-02-17evas/gl_x11: fix build warning related to the uninitialized valueJihoon Kim
2016-02-17evas: Update evas_3d_utils, replace Evas_Vec.se.osadchy
Summary: Change Evas_Vec2(3) to Eina_Vector2(3). Reviewers: cedric, Hermet, jpeg Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D3686
2016-02-10evas: include Eet.h where it's needed.Florent Revest
This patch is applied by OpenEmbedded project to let evas build correctly in crosscompilation environnement. cf: https://github.com/openembedded/meta-oe/blob/master/meta-efl/recipes-efl/efl/efl/0002-evas_3d-Add-Eet.h-includes.patch @fix Signed-off-by: Nicolas Aguirre <aguirre.nicolas@gmail.com> Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-05evas-wayland-shm: Fix compiler warning about incompatible pointer typeChris Michael
This patch fixes some compiler warnings about assignment from incompatible pointer type when getting image data from evas_cache. The simple fix is to cast the return value to RGBA_Image. Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-02-05evas: add native surface with TBM Surface for wayland_shm engineWonsik Jung
Summary: @feature add evas object image's native surface with TBM surface for wayland_shm Test Plan: Making tbm test sample and testing on Tizen Device/Emulator Reviewers: raster, cedric, spacegrapher, jpeg Reviewed By: spacegrapher Subscribers: mer.kim, JoogabYun, scholb.kim, dkdk Differential Revision: https://phab.enlightenment.org/D3618 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-02-04Evas: Use proper language for harfbuzz shapingYoungbok Shin
Summary: Evas Text, Textblock, Textgrid keeps own language information. This language information could be vary from the result of setlocale(). Especially, Evas Textblock supports <lang> tag. The language could be changed in the middle of text. All of these language has to be used for harfbuzz shaping. @fix Test Plan: N/A Reviewers: herdsman, raster, woohyun, tasn Reviewed By: tasn Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3628
2016-01-21Eo: Replace deprecated EO_EV_ by EO_BASE_EVENT_Jean-Philippe Andre
2016-01-21Evas GL: Actually save the checksum inside the fileJean-Philippe Andre
This would be cleaner than adding it as a suffix to the filename. Use simple write and read_direct for simplicity. This is an improvement on 3dcd903a537e29342121c and should make sure everyone is actually using the latest version of the shaders even if they track master or the alpha/beta releases.
2016-01-20Evas: Avoid saving the shaders cache at every shutdownJean-Philippe Andre
Check the right flag.
2016-01-20Evas: Discard shaders cache when the code changedJean-Philippe Andre
Since we now have only two shader strings, this is trivial to do: hash the strings and add them to the cache filename. This will allow people using 1.17.0-alpha, etc... to discard their old shaders cache automagically and use the latest version of the shaders (because alpha is not in the filename). If we end up adding more runtime generated shaders, we might need a better strategy, but this should be good enough for now.
2016-01-20Evas: Actually fix this 'afill' thingJean-Philippe Andre
This mostly reverts 448720fed4da252fa5eefa02ae37c79c5fb63499 After my previous patch, semi-transparent windows would render incorrectly in E. The AFILL flag should make sure the source texture is "opaque" (ie. if it's not marked as having an alpha channel), and masking or color multiply should then be applied later on. Sorry for the mess...
2016-01-20Evas: Fix shader flag 'afill' (forcing alpha to 255)Jean-Philippe Andre
Apparently the shaders refactor broke the afill select logic, and it no longer applied to objects where it should have (eg. opaque windows in E).
2016-01-19Evas GL: Also fix surface cap cacheJean-Philippe Andre
This follows the fix in eina_file_mkstemp. Not sure how it could even work before. @fix
2016-01-19Evas GL: Fix shader binaries cacheJean-Philippe Andre
It was completetly broken due to a misuse of mkstemp.
2016-01-18win32: Fix compilation due to recent changes in EvilVincent Torri
Summary: dlfcn.h is not available anymore on Windows, Evil provides all the necessary declarations. Reviewers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3577 @fix
2016-01-14ecore_drm/ecore_wl2: logging: remove errant usage of %mDerek Foreman
Summary: printf %m stringifies and prints errno. I've tried to remove its use anywhere that the immediately preceding function might not set errno or is a complicated function for which knowing errno doesn't really give any useful information. I've left a few of the drmMode calls because they're just wrappers around ioctl, which legitimately sets errno. @fix Reviewers: zmike, devilhorns Reviewed By: zmike, devilhorns Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D3572
2016-01-13Evas GL: Reset current surface for all contexts to null when surface is ↵Dongyeon Kim
destroyed When evas gl surface is destroyed, not only the current surface for the current context should be set to NULL, but current surface for all contexts should be reset.
2016-01-07evas_gl_cocoa: update function parametersJean Guyomarc'h
Commit fd4e133cc1af3351b79946cfb1bc6d79feec9d30 changed the internal API, but it was not reflected in evas_gl_cocoa. This commit fix a compiling warning and possible undetermined behaviour. @fix
2016-01-07evas_xcb: fix build with xcb after TBM patchesStefan Schmidt
GLX was not the only thing which did no longer compile. Same for xcb here. Thanks Jenkins for testing this for us.
2016-01-06evas-wayland-egl: Remove unused variables and unused functionChris Michael
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-05Evas: Fix compilation for GLXJean-Philippe Andre
Sorry, I forgot to check that :)
2016-01-05waylang-egl: Remove trailing spacesJean-Philippe Andre
2016-01-05wayland: Add support for TBM buffersJean-Philippe Andre
This is a follow up on the previous commits. The original patch on Phab was split in 3 parts (factorization, fix & this one). Adds support to both SHM and EGL. See D3501.
2016-01-05evas tbm: Fix compilation warningsJean-Philippe Andre
Previous patch used a wrong type... harmless but warned.
2016-01-05Evas_Engine: add TBM surface and clean up Native StructWonsik Jung
Summary: Add TBM surface in wayland and clean up Native struct on Evas Engine. Previous TBM surface for evas_object_image's native_surface_set is only in Evas X11 backend. This patch has the code for wayland backend. In addition, evas_native_tbm.c is moved to software_generic. Becuase this file is common. And, Native in Evas_Engine is clean-up. @feature Test Plan: TBM surface is tested with spacegrapher's test app(tbm.c) in Tizen Device. Pixmap surface is tested in ubuntu with same test app. EvasGL is tested with elementary_test. Reviewers: jpeg, spacegrapher, raster, cedric Subscribers: dkdk, scholb.kim, JoogabYun Differential Revision: https://phab.enlightenment.org/D3501
2016-01-05Evas filters: Final fix after the ector refactorJean-Philippe Andre
This implements a generic way of scaling buffers, using fake RGBA_Image wrapping ector buffer maps. The underlying algo is still the good old linear sw scaler. Now the filters *should* be back to their previous level of usability. Performance will probably be even worse than it was before, for GL, as more glReadPixels may be involved. Optimization now consists in actually implementing the filters with GL shaders.
2016-01-05Evas filters: Complete basic repairs for GL engineJean-Philippe Andre
Now the filters should work with the GL engine, again, but with a potentially crazy performance. Indeed, the input buffer is now backed by an FBO, that needs to be glReadPixel'ed everytime it is accessed by the filters (mapped).
2016-01-05Evas filters: Move evas image creation to the engineJean-Philippe Andre
Evas filters is now more and more unaware of evas images (RGBA_Image) and the engine + ector take care of everything. Still left to do: - map / unmap an FBO buffer into RO or RW memory
2016-01-05Evas filters: Add GL buffer backed by RGBA_ImageJean-Philippe Andre
Dumb implementation of a "smart" buffer capable of wrapping an RGBA_Image but that can still be rendered on screen (ie, an Evas_GL_Image is attached to it).
2016-01-05Evas filters & Ector GL: Prepare ground work for GL buffersJean-Philippe Andre
This fixes crashes, adds safety, and notes a couple of things that are not yet implemented: - Make an Evas_GL_Image from an RGBA_Image so we can draw it on the canvas. This means Evas.Ector.GL.RGBA_Image.Buffer - Readable Evas_GL_Image objects with gl_read_pixels --> Implement proper map() & unmap() for GL buffers
2016-01-05Ector GL: Add skeletton for Evas.Ector.GL.Image.BufferJean-Philippe Andre
This is an ector buffer backed by an existing Evas_GL_Image
2016-01-05Evas filters: Use Ector.Buffer instead of RGBA_ImageJean-Philippe Andre
This is a major refactoring of the evas filters submodule. Use Ector.Buffer and the map/unmap methods instead of directly accessing image buffers with RGBA_Image. RGBA_Image is still used under the hood, for two reasons: - Required for the final output (blend onto Evas itself) - Required for the scaling routines FIXME: - Breaks proxy support (ie. all kind of texturing). - This breaks filters support for the GL engine.
2016-01-05evas: add a way to tests Ector_GL.Cedric BAIL
This is completely not supported/working/useful yet. Please do not complain about it ruinning your life.
2016-01-05ector: initial implementation of our own Ector GL backend.Cedric BAIL
2016-01-05ector: add engine-specific evas image buffer wrapperJean-Philippe Andre
Since Evas still relies entirely on Image_Entry and Evas_GL_Image, we will need an engine-specific wrapper object creating a Buffer around an existing cached image. Currently only SW support is implemented. GL will be more fun to do (with glReadPixels and whatnot).