path: root/src/lib/evas/canvas (follow)
AgeCommit message (Collapse)Author
2015-01-21Evas masking: Fix major memory leakJean-Philippe Andre
The memory usage graph was going up and to the right! I was told this is always a good thing! ... maybe not this time :) Hopefully I didn't forget a case. An intense session of genlist scrolling with masks all over the place and masks of masks didn't show any glitch, crash or memory leak.
2015-01-21Evas masking: Try to reduce memory footprint a littleJean-Philippe Andre
Move some mask object pointers around to spare a few bytes of memory. Fixes T2025.
2015-01-20evas: reduce potential memory hole in Evas_Object_Protected_State.Cedric BAIL
The main difference between 1.12 and 1.13 memory foot print is actually related to this two pointer to mask. I am wondering if there is not an issue here also has we do have a duplicated pointer. We have prev_mask and mask in both cur and prev state of an Evas_Object, but only mask and prev_mask from the cur state seems to be accessed. If we can remove two pointers from those state, we should have a decent win in expedite benchmark. Hopefully 300KB to win there (Close to half the additional cost in memory).
2015-01-20evas: reorder structure to avoid structural hole.Cedric BAIL
2015-01-16Evas masking: Fix precise_is_inside for masked smart objectsJean-Philippe Andre
The flag should be set on the mask itself. Checking for (x,y) being inside the mask can be an expensive operation, so further optimization will be required.
2015-01-09evas: Fix unintentional integer overflowChris Michael
Summary: This fixes CID1261436: unintentional integer overflow @fix Signed-off-by: Chris Michael <>
2015-01-08evas:fix markup text length issueJae Yong Hwang
Summary: There was no conversion to the double quotation mark in the evas_textblock_text_utf8_to_markup function. The price of the text coming out to API and text coming out to Textblock was different as a result. As a result, Two text lengths came out differently. So, I added the exceptional treatment part in the evas_textblock_text_utf8_to_markup function. @fix Subscribers: cedric Differential Revision:
2015-01-07evas textgrid - fix drawing of codepoints that are 0Carsten Haitzler (Rasterman)
this fixes artifacts if you have cells with 0 codepoints and also have underlines or strikethroughs in them. @fix
2015-01-07Evas masking: Fix invalid geometry after mask redrawJean-Philippe Andre
The proper geometry should be set when rendering the mask, otherwise we can't create a new surface if it changed dimensions.
2015-01-07Evas masking: Implement event masking supportJaeun Choi
In case the clipper is a mask object, we should use precise event masking. By default precise_is_inside is not enabled because it is expensive, but it should probably be set by the application when they use masks as clippers. Signed-off-by: Jean-Philippe Andre <>
2015-01-07Evas masking: Implement mask support in evas_renderJean-Philippe Andre
This implements supports for masking inside evas_render, which means: - Render the mask itself into a surface (ALPHA if possible) - Pass this mask surface to the draw context - Apply mask recursively in case a masked object is contained by another masked object. @feature
2015-01-07Evas masking: Allow setting an image object as clipperJean-Philippe Andre
The render function is not yet implemented, but this prepares the infra used to set an object other than Rectangle as a clipper. @feature
2015-01-07[Evas: Evas_3D] Fixed bug with bounding shapes update.Dmytro Dadyka
Reviewers: cedric, Hermet Subscribers: cedric Differential Revision:
2014-12-29Make it clear in documentation that these methods are not implemented.Andy Williams
Even so return a more meaningful value - 0 is not a member of the Enum it returns.
2014-12-25evas: fix memory leak issues in evas_object_textgrid.Srivardhan Hebbar
Summary: Calling eina_inarray_free to fix the memory leak issue in the error condition. @fix Signed-off-by: Srivardhan Hebbar <> Reviewers: devilhorns Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2014-12-23evas: make Evas 3d mesh is inherited from Efl.File (functions file_set and save)Bogdan Devichev
2014-12-23evas: a _mmap version of the file_set is added.Bogdan Devichev
2014-12-23evas: Evas_3D_Mesh_File_Type sank into oblivion. Changing entry point to ↵Bogdan Devichev
model_save_load. Changing API in examples.
2014-12-23evas: add lib/evas/common/evas_model_<action>.c. Functions are renamed ↵Bogdan Devichev
similar to functions in image_save_load process.
2014-12-23evas: replace and rename savers/loaders.Bogdan Devichev
2014-12-23evas - handle deleted objects in pointer in list in evasCarsten Haitzler (Rasterman)
2014-12-23evas/canvas: fix doc intentation.ChunEon Park
2014-12-23evas/canvas: improve doc.ChunEon Park
2014-12-15Evas textblock: Remove redundant magic member.Tom Hacohen
We don't use magic since moving to Eo.
2014-12-10Evas GL: Fix direct rendering with client-side rotationJean-Philippe Andre
There was a problem when checking whether the current surface is compatible with direct rendering. In case of client-side rotation (it's a flag set on the surface by the app), a surface can be directly rendered even if the rotation is not 0. But, before this patch, it was assumed that the surface was current. Which doesn't make sense because make_current is called by the pixel callback, from the application, and this happens *after* we check for direct rendering. As a consequence, it was not possible to mix directly rendered surfaces with FBO-based ones, and use client-side rotation. This patch should solve that issue.
2014-12-01Evas textblock: Fix possibly null dereference.Tom Hacohen
Thanks to kimcinoo for reporting. @fix
2014-12-01evas: Evas_3D - add mesh blending mode.Dmytro Dadyka
Reviewers: Hermet, raster, cedric Subscribers: Oleksander, cedric @feature Differential Revision: Signed-off-by: Cedric BAIL <>
2014-12-01evas: Evas_3D - add bounding sphere, revision frustum cullingOleksandr Shcherbina
Summary: Move check visibility of node from evas_3d_node to evas_3d_camera Move functionality (normalize, check distance, calculate frustum) in evas_3d_utils.h (we are planing use evas_is_sphere_in_frustum in evas_gl_3d.c - don't render mesh if it non visible) Add possibility check frustum by box, aabb, central point Refactor example frustum culling @feature Reviewers: Hermet, raster, cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2014-11-28evas/map: remove old comments.ChunEon Park
It's been so long. even SLP is not a valid name anymore. No idea whether the problem still exist or not. If it is then it should be reported and fixed.
2014-11-28evas: fix build warning.ChunEon Park
here const pointer access is no problem.
2014-11-28evas_map: Remove unnecessary check for current mapJaehyun Cho
Summary: Remove unnecessary check for current map @fix Reviewers: Hermet Subscribers: cedric Differential Revision:
2014-11-28evas_object_main: Keep map effect after evas object moveJaehyun Cho
Summary: Keep map effect after evas object move @feature Reviewers: raster, cedric, Hermet Subscribers: raster, cedric Differential Revision:
2014-11-26edje entry: improve selection performanceThiep Ha
Summary: The selection performance is slow if we select large chunk of text. This is caused by many rectangles created and deleted. This patch provides a way to improve it by combine selection rectangles of line in middle into one rectangles (i.e, if we have N lines, the selection rectangle for lines 2 to N-1 will be combined into one.) @feature Reviewers: raster, cedric, tasn Subscribers: herdsman, woohyun, cedric Differential Revision:
2014-11-26textblock: correct text position for RTL text with marginsThiep Ha
Summary: If a RTL textblock has right margin, text is wrongly placed (right margin is moved to left). This patch fixes this issue. Test cases are also added to test text position with margins. @fix Reviewers: tasn, herdsman Subscribers: woohyun, cedric Differential Revision:
2014-11-26evas/map : set antialias context for map rendering.ChunEon Park
2014-11-25evas_object_textblock: Resolved FIXME replaced int with size_tkabeer khan
Summary: Since Evas_Textblock_Cursor has pos of type size_t so changed pos argument in _find_layout_item_line_match from int to size_t Also Evas_Object_Textblock_Item has text_pos of size_t so defined variable p of type size_t Signed-off-by: kabeer khan <> Reviewers: tasn Subscribers: devilhorns, cedric Differential Revision:
2014-11-25Expose device (e.g. pen) axis information to applicationsJason Gerecke
Summary: This patch set adds the necessary code to expose device axis state to applications. This was primarily written with graphics tablets in mind, which -- in addition to acting like a mouse -- also provide information about pen pressure, tilt, etc. Other devices could potentially benefit from this API as well: touchscreens, joysticks, knob controllers, "spaceballs", etc. Whenever an update to the device state is recieved, an "Axis update" event is synthesized. This event contains the updated information, typically scaled and normalized to a particular logical range (e.g. zero to one for pressure, -pi to pi radians for angles, etc.). Information about the tool which generated the event is also stored so that applications can disambiguate events from multiple devices (or in the case of multitouch screens, individual fingers). This API is only wired up for use with X11 at the moment. Support for other backends (e.g. Wayland) should be easy to add for those familiar them. **Note**: The following is a list of changes from the "v2" patches originally sent to the mailinglist //Define and implement new Ecore_Event_Axis_Update events// * Harcode axis labels instead of including xserver-properties.h * Use C89-style comments * Use doxygen comments * Update comment text to note axes with unbounded/undefined ranges/units * Create "Ecore_Axis" and "Ecore_Axis_Label" typedefs * Reference typedef'd instead of raw types * Adjust how we count through valuators to support tilt/az * Add support for tilt and azimuth * Tweak memory management in case number of valuators differ * Expand TWIST axis normalization to declared range * Only normalize TWIST axis if resolution == 1 (wacom bug) * Cache label atoms on first use to minimize round-trips //Implement EVAS_CALLBACK_AXIS_UPDATE event and friends// * Update to doxygen comments * Update comment text to note axes with unbounded/undefined ranges/units * Typedef 'Evas_Axis_Label', 'Evas_Axis' * Move typedef for 'Evas_Event_Axis_Update' * Reference typedef'd instead of raw types //Wire the Ecore and Evas implementations of axis update events together// * Expose ecore_event_evas_axis_update in Ecore_Input_Evas.h * Move ecore_event_evas_axis_update to more logical position //DEBUG: Add axis update logging to evas-multi-touch.c// * Removed from patch set //Make evas-multi-touch demo use new axis functionality// * Have pressure adjust rectangle brightness instead of size * Use more available axis data when rendering rectangle (azimuth, tilt, twist) Test Plan: The evas-multi-touch demo was updated to support axis update events. A graphics tablet was then used to verify that the pressure, azimuth, tilt, and twist data was coming through correctly. Reviewers: cedric, raster Subscribers: cedric Differential Revision: Conflicts: src/lib/ecore_input/Ecore_Input.h Carsten Haitzler - ** fixed forward enum typedefs (make things unhappy) ** fixed conflict above ** fixed wrong param type for _evas_canvas_event_feed_axis_update() ** fixed @sinces to be 1.13 ** fixed formatting/indeting ** fixed order of operation reliance in if's with ()'s to be clear ** fixed functions to be static that should have been
2014-11-17evas/3d: Fix dereferencing a pointer that might be null found by coverityBogdan Devichev
Summary: @fix CID: 1254626 Reviewers: cedric, artem.popov, Oleksander Subscribers: cedric, stefan_schmidt Differential Revision:
2014-11-14evas: Evas_3D - add .ply export/import.Bogdan Devichev
Summary: .ply format is important for relation blender and EFl, because in blender exist only two mesh export API: bpy.ops.import_mesh.ply and bpy.ops.import_mesh.stl. One of them is necessary for .edc 3D generator. Which I writing now. Sorry, it isn't like image loader. Refactoring of import/export will be soon. Reviewers: Oleksander, artem.popov, Hermet, raster, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2014-11-12Evas: Use ENFN/ENDT in proxy subrenderJean-Philippe Andre
Again, just a code readability change.
2014-11-12Evas: Avoid creating an extra context for proxy renderingJean-Philippe Andre
2014-11-12Evas: Use common function for proxy_subrenderJean-Philippe Andre
Merges functions from: - filters - image object
2014-11-12Evas image: Use macros ENFN/ENDT to improve code readabilityJean-Philippe Andre
These macros replace some very repetitive code: - define ENFN obj->layer->evas->engine.func - define ENDT obj->layer->evas-> This commit includes lots of space changes as well. This is a purely cosmetic commit.
2014-11-12Evas: Remove ugly REND_DBGJean-Philippe Andre
Here's a macro that's used for debugging in some of the ugliest ways possible: avoid passing an extra argument to a function when the cost of always passing it is negligible (it's an int). Fixes T1749.
2014-11-06evas: fix quaternion initiation for node, which isn't a root nodeperepelits.m
Summary: Default orientation of node should be corrected, because its zero rotation matrix multiplies on rotation matrix of its children node and we also get zero orientation for children, so the vector of orientation should be non-zero @fix Reviewers: Hermet, raster, cedric Reviewed By: cedric Subscribers: cedric Differential Revision: Signed-off-by: Cedric BAIL <>
2014-11-03evas: Use Eina_BoolTae-Hwan Kim
Summary: Use EINA_TRUE/EINA_FALSE instead of 1, 0 Reviewers: raster, cedric, Hermet Subscribers: cedric Differential Revision:
2014-10-29Evas filters: Fix COW usage.Jean-Philippe Andre
Thanks cedric for the report. We'll need a new function (after 1.12) to detect if the current cow pointer is the default data or not. Maybe eina_cow_default_get() or maybe something just returning a bool.
2014-10-29evas: fix increased memory usage in Evas.Cedric BAIL
Eina_Cow does memory comparison during standby time. So in expedite as we don't have any standby time, we end up allocating some vast amount of memory that will never be compared. It is way simpler to compare that the data are not going to change before hand. It should also reduce the CPU consumed during idle time. This patch save about 1MB of data at peak time in expedite.
2014-10-27evas/3d: Fix resource leaks found by coverityBogdan Devichev
CID: 1244183 - 1244187 Reviewers: cedric, artem.popov, Oleksander Subscribers: stefan_schmidt, cedric Differential Revision:
2014-10-27Evas GL: string_query returns a const char *Jean-Philippe Andre
Why cast to/from void* in the first place?