path: root/src/lib/evas/include/evas_common_private.h (follow)
AgeCommit message (Collapse)Author
2018-01-18all: Simplify definition of EAPIVincent Torri
This will help in the transition from Autotools to Meson. This has been tested on Windows for which EFL_XXX_BUILD were first introduced.
2018-01-04efl: remove _MSC_VER (Visual Studio macro) usage in source codeVincent Torri
2017-11-10evas/vg: added support for engine surface cache.subhransu mohanty
2017-11-07Remove evas internal dependency from the evas_font modulesubhransu mohanty
Summary: dev branch : devs/subhransu/font The Final goal is to move the evas_font module to ector so that both ector and evas can reuse the code. make the api simple so that sam eapi can be used by evas_textblock and ector text. This is the 1st stage to achive that gola, first remove the evas internal dependancy as much as possible before moving to ector library. Reviewers: jpeg, raster, herdsman, cedric, id213sin Subscribers: cedric, jpeg Differential Revision:
2017-09-26evas: Add scale feature for embedded bitmap fonts.Youngbok Shin
Summary: When evas selects a strike of embedded bitmap font, calculate ratio and use it for scaling embedded bitmap. @feature Reviewers: jpeg, tasn, woohyun, raster, herdsman Reviewed By: raster Subscribers: charlesmilette, Francesco149, cedric Differential Revision:
2017-09-22EFL For WIN32: Replace HAVE_EVIL define with _WIN32Vincent 'vtorri' Torri
2017-08-14evas: move EAPI undef to the correct placeVincent Torri
Signed-off-by: Cedric BAIL <>
2017-04-28thread fence code - move elsewhere in file to avoid conflictsCarsten Haitzler (Rasterman)
2017-04-26evas: Add a function to block for render thread completionDerek Foreman
This is needed by dmabuf engine fallback when it realizes it locally allocated a buffer, has been rendering to it, but the compositor can't use it. So the engine copies its buffer contents into a new wl_shm buffer and continues from there - however we need to make sure the async renderer has finished first, so we don't copy a partial buffer. This allows us to block for all previously submit actions in the render queue to complete.
2017-04-14evas filters: Implement mask filter in pure GLJean-Philippe Andre
This reuses the existing mask infrastructure, but adds a color flag to use the whole RGBA range, rather than just the Alpha channel. Filters are still very slow (glReadPixels and non-optimized use of GL buffers...), but this is progress :)
2017-04-13evas: move Efl_Canvas_Output to be an internal only API.Cedric BAIL
2017-03-08evas: clean up GL images for emojis when GL context is free'dYoungbok Shin
If GL context is free'd before processing font shutdown, textures for emoji glyph's GL images will be free'd without clean up its GL images. It causes eina mempool infinite loop issue when emoji's GL images are free'd in shutdown process. So, the patch will make a list for emoji's GL images in context and clean up them when the context is free'd. Just like font textures in context. @fix Differential Revision: Signed-off-by: Jean-Philippe Andre <>
2017-03-08evas: Set thread name for preloadJean-Philippe Andre
This can be useful during debugging.
2017-01-31evas draw context - reduce size and allocations and freesCarsten Haitzler (Rasterman)
so a little perf fun shows malloc/free/realloc/etc. are, combined a reasonable overhead. this reduced malloc overhead for draw contexts so whne we duplicate them or create new ones, we re-use a small cache of 8 of them to avoid re-allocation. just take the first one from the list as it really is that simple. mempool would not have helped more here and cost more overhead. @optimize
2017-01-06evas image skip header - more fixes for when images fail to loadCarsten Haitzler (Rasterman)
this fixes some more issues i have found in using skip header like if the file doesn't exist etc. recent feature add so not a fix.
2017-01-02evas image async preload - add option to also make header load asyncCarsten Haitzler (Rasterman)
to date if you use async preload we still load the header synchronously and this can be horrible especially with generic loaders. there is no way to farm this off to the preload thread. now there is. youhave to set it as a skip head load option before doing a file_set AND you need to issue a preload ... but now it's possible. @feature
2017-01-02evas cutouts - quickly avoid huge per issues with large nos of cutoutsCarsten Haitzler (Rasterman)
i found evas_common_draw_context_apply_cutouts() was procsessing 300+ cutouts and as it's O(n^2)/2 to try and merge adjacent rects for cutouts this really performs like complete junk. we apply cutout rects a LOT. this is not the best solution, but it's quick and much faster than doing the clipouts which drop framerate to like 1-2fps or so in the nasty case i say (tyls -m of photos in a dir with a 2160 high terminal). this figures out the target area to limit the count of rects significantly so O(n^2) is far far better when n is now < 10 most of the time. and for the few operations where it's a high value this now uses qsort to speed up merges etc. etc. @optimize
2016-11-22evas: Add shutdown logic on thread creation failureWonki Kim
Summary: In case of thread creation failure, shutdown logic will be stuck. To prevent stuck, set exit variables to make thread_shutdown working even if init fails. Also modify init logics to return init result to a caller. Reviewers: jypark, woohyun, cedric, jpeg Subscribers: cedric Differential Revision: Note (@jpeg): I have modified the patch just a little bit. Signed-off-by: Jean-Philippe Andre <>
2016-11-16evas: reduce usage of __thread directive.Cedric BAIL
Moved rects caching into draw context to avoid the use of __thread slot. Draw context are defined per thread anyway and should be just fine. This doesn't really change the picture regarding glibc problem when to many __thread are needed, but slightly improve the global picture. Also this patch doesn't affect our performance in expedite benchmark as far as I can tell.
2016-09-06evas: Implement support for external buffersJean-Philippe Andre
This brings support for the eo api for external buffers (like the old data_set / data_get). The new API now works with slices and planes. The internal code still relies on the old array for YUV color conversion. This makes the code a little bit too complex to my taste. Tested with expedite for RGBA and YUV 422 601 planar, both SW and GL engines (x11).
2016-09-06evas: Internally switch to Eina_Slice for buffersJean-Philippe Andre
This will be used for the gfx buffer map/unmap eo apis.
2016-06-21evas: Rename Evas.Object to Efl.Canvas.ObjectJean-Philippe Andre
One step closer to make the EO inheritance tree look like it's all Efl.
2016-06-17Evas: Mark type as legacy and protectedJean-Philippe Andre
Only set() is allowed for EO, and it's a constructor, protected function. Unfortunately, this means a lot of #define EVAS_OBJECT_PROTECTED
2016-04-01evas : remove variable and data argument of native calblacks.Minkyoung Kim
Summary: Evas Image should be independent of render engine. So remove member of RGBA_Image, Evas_GL_Image struct. And remove data argument,too. Test Plan: Local test, Tizen3.0 mobile, Desktop englitenment Reviewers: jpeg, spacegrapher, wonsik Subscribers: cedric, dkdk Differential Revision:
2016-03-28Efl.Gfx.Buffer: Switch to void* data and signed intsJean-Philippe Andre
1. unsigned char* as a return type was not even compatible with the default colorspace (ARGB: 32 bits). 2. Change all unsigned to int for... uh... simplicity unsigned is more correct than int for things like width, size or stride, but in fact having both ints (x,y) and unsigned ints makes the code more complex. This is a matter of personal taste.
2016-03-28Evas: Add SW engine map/unmap functionsJean-Philippe Andre
Also, fix some of the code using them.
2016-03-28Evas: Remove unimplemented image comment (internal)Jean-Philippe Andre
This is a minor cleanup of RGBA_Image.
2016-03-15evas: some changes for preload thread dead lock issuejiin.moon
Summary: Add spin lock to access to new flag can check to status of the preload Reviewers: jpeg, cedric, jypark Subscribers: raster Differential Revision: Signed-off-by: Cedric Bail <>
2016-03-04evas: fix preload thread deadlock issuejiin.moon
Summary: Wrong condition makes deadlock issue. Reviewers: jpeg, jypark Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-12-18evas/gl : Do not re-preload image data if texture is successfully uploaded ↵Minkyoung Kim
with image data. Summary: 'cached' flag is not enough to check whethere data is loaded and texture is uploaded. so check more options for prevent re-preload image data on gl-backend. Test Plan: Local Test (elementary_test : elm images) Reviewers: jpeg, eunue Reviewed By: jpeg Subscribers: cedric, jiin.moon, wonsik, spacegrapher Differential Revision:
2015-12-10evas_eet: Add Type Safety checkPankaj Mittal
Summary: The Function _evas_canvas3d_eet_file_free(void) is referenced in evas_model_load_file_eet()(file:evas_model_load_eet.c at line 122). This call is under condition if ((eet_file->mesh == NULL) || (eet_file->header == NULL)). when either eet_file->mesh or eet_file->header are NULL, dereference of the corresponding pointer in function "_evas_canvas3d_eet_file_free()" will generate Segmentation Fault. @fix Reviewers: raster, Hermet, tasn, wonsik, spacegrapher, cedric, jpeg Subscribers: singh.amitesh,, alok25, yashu21985, mvsovani, cedric Differential Revision:
2015-12-03Evas: Move alpha functions to static_libs/drawJean-Philippe Andre
This is a pretty simple code refactor, moving pixel handling to the new draw lib.
2015-12-03Ector: Move drawhelper to static_libsJean-Philippe Andre
Rename a few things: - draw helper -> efl_draw - Ector_Rop -> Efl.Gfx.Render_Op - ECTOR_ bla bla -> DRAW_ bla bla (base pixel ops) - ector_memfill -> draw_memset32 (and invert arg order to match memset) The main rasterizer file is now draw.h in static_libs/draw This is a non functional change, simple code refactor.
2015-10-05evas - region updates - go back to tiler as its fasterCarsten Haitzler (Rasterman)
the overhead didnt show up in y tests. do show up with certain expedite tests. hmmm. last time i messed with region code it was actually same speed as tiler. bonus was it was fully accurate.
2015-09-24evas cutouts - optimize to use less cpuCarsten Haitzler (Rasterman)
this optimizes draw ctxt cutouts by skipping small ones and remembering the last cutout added so it isn't double-added as well as extending the minimum cutout array to 512 and going up in blocks of 512 instead of 128. also optimize the clipping code a bit more.
2015-09-24evas tiler update handler - move to region code to be accurate and fastCarsten Haitzler (Rasterman)
this move evas tiler that does update handling to use fully correct regions using region.[xh]. this also removed old unused regionbuf code and a bunch of commented out code no longer needed. much simpler now and easier to maintain.
2015-09-04evas_render: simplify masking and clipping in generalJean-Philippe Andre
Use context_dup to inherit from previous contexts in a clean manner. This removes the need for restoring the previous clip information. Plus, this commit removes lines of code so it must be good, right?
2015-07-27Evas masking: Fix crash in async renderingJean-Philippe Andre
There was a FIXME comment... >_< Improper management of image resources in async render led to a rare crash. This should fix that. @fix
2015-07-07evas - image core - fix unloading of images to work againCarsten Haitzler (Rasterman)
i think this has been disabled for a while. image unloading is broken - esp with gl enigne as due to async move it was effectively disabled. this re-enables it. unloading is deferred with a managed list of things needing unloading and then when any async sw renders are not busy any more - do the unload then in the mainloop of all pending/flagged images to unload @fix
2015-05-07evas: remove the need to order the header correctly for Windows.Cedric BAIL
2015-04-03evas: fix Windows build.Cedric BAIL
2015-03-20evas: fix build failure with old version freetype.Youngbok Shin
Summary: Fix build failure with old version freetype. It is caused for supporting colored font. Reviewers: raster, jpeg, woohyun, Hermet Subscribers: cedric Differential Revision:
2015-03-19evas: Support bitmap embedded color font.Youngbok Shin
Summary: Add the code for getting bitmap buffers from embedded color font, And draw the bitmap buffers as images. For drawing the bitmap buffers as images, evas_common_draw_context_font_ext_set internal API is changed to pass additional gl engine functions. T2139 @feature Test Plan: 1. Set a bitmap embedded color font to textblock. 2. Set a unicode emoticon text. 3. See the result. Please check the sample unicode in the following link. Reviewers: tasn, woohyun, jpeg, raster Reviewed By: raster Subscribers: herdsman, cedric Differential Revision:
2015-02-20evas: refactor software engine initialisation.Cedric BAIL
2015-02-11evas: add image orient set/get API in software backend for now.kabeer khan
Summary: Added API's to rotate(0, 90, 180, 270), flip(horizontal, vertical, transpose, transverse) evas image object. Also added example to demonstrate this. Signed-off-by: kabeer khan <> Reviewers: raster, stephenmhouston, cedric Subscribers: stephenmhouston, cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2015-02-10evas/software_x11: implement tbm native surface typeDongyeon Kim
Summary: This native surface type is based on the tbm surface used for the tizen platform. For the software_x11 backend, image data is retrieved from tbm surface and color format converted appropriately. This will only work when is present in the system. @feature Test Plan: Local tests Reviewers: raster, cedric, jpeg, Hermet Subscribers: wonsik, cedric Signed-off-by: Jean-Philippe Andre <>
2015-02-10evas/software_x11: implement native surface set for x11 typeDongyeon Kim
Summary: implement native surface set for EVAS_NATIVE_SURFACE_X11 type on software_x11 backend. @feature Test Plan: local tests on PC Reviewers: jpeg, cedric, raster, Hermet Subscribers: wonsik, cedric Signed-off-by: Jean-Philippe Andre <>
2015-01-07Evas masking: Use alpha mask in SW engine draw functionsJaeun Choi
Work done by Jaeun Choi, rebased & squashed by jpeg. This commit introduces changes to the low-level draw functions of the SW engine considering the existence of an alpha mask image. Features: - Font masking (TEXT, TEXTBLOCK), - Rectangle masking, - Image masking (all image scaling functions should be handled). The mask image itself is not yet set in the draw context (see following commits). @feature Signed-off-by: Jean-Philippe Andre <>
2014-11-13Evas: Don't pass whole RGBA_Image to low-level render functionsJean-Philippe Andre
Idea originated from Cedric the b0rker. This is a big fat search-and-replace commit. This commit also introduces space changes... Sorry for the mix. NOTE: This commit may have one side effect as there was some very dubious code chaning the dst image's alpha flag in the Gfx get functions. Logically this didn't make sense (at draw time the dst alpha should already be well defined), so it should be safe.
2014-07-06evas: jpeg loader - support flip, transpose, transverseWonguk Jeong
Summary: Previously, jpeg image loader support rotation (90°, 180°, 270°) only. this patch is about supporting flip(vertical, horizontal), transpose, transverse @feature Test Plan: I'm going to make tests in src/tests Reviewers: cedric, raster, jpeg CC: seoz, cedric Differential Revision: Signed-off-by: Cedric BAIL <>