Age | Commit message (Collapse) | Author |
|
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.
|
|
Move some mask object pointers around to spare a few
bytes of memory.
Fixes T2025.
|
|
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).
|
|
|
|
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.
|
|
Summary: This fixes CID1261436: unintentional integer overflow
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
|
|
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: https://phab.enlightenment.org/D1853
|
|
this fixes artifacts if you have cells with 0 codepoints and also have
underlines or strikethroughs in them.
@fix
|
|
The proper geometry should be set when rendering the mask,
otherwise we can't create a new surface if it changed dimensions.
|
|
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 <jp.andre@samsung.com>
|
|
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
|
|
The render function is not yet implemented, but this
prepares the infra used to set an object other than
Rectangle as a clipper.
@feature
|
|
Reviewers: cedric, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1851
|
|
Even so return a more meaningful value - 0 is not a member of the Enum it returns.
|
|
Summary:
Calling eina_inarray_free to fix the memory leak issue in the error condition.
@fix
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1809
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
|
|
|
|
|
|
model_save_load. Changing API in examples.
|
|
similar to functions in image_save_load process.
|
|
|
|
|
|
|
|
|
|
We don't use magic since moving to Eo.
|
|
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.
|
|
Thanks to kimcinoo for reporting.
@fix
|
|
Reviewers: Hermet, raster, cedric
Subscribers: Oleksander, cedric
@feature
Differential Revision: https://phab.enlightenment.org/D1548
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
|
|
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: https://phab.enlightenment.org/D1420
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
|
|
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.
|
|
here const pointer access is no problem.
|
|
Summary:
Remove unnecessary check for current map
@fix
Reviewers: Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1708
|
|
Summary:
Keep map effect after evas object move
@feature
Reviewers: raster, cedric, Hermet
Subscribers: raster, cedric
Differential Revision: https://phab.enlightenment.org/D1678
|
|
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: https://phab.enlightenment.org/D1508
|
|
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: https://phab.enlightenment.org/D1691
|
|
|
|
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 <kabeer.khan@samsung.com>
Reviewers: tasn
Subscribers: devilhorns, cedric
Differential Revision: https://phab.enlightenment.org/D1692
|
|
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: https://phab.enlightenment.org/D1514
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
|
|
Summary:
@fix
CID: 1254626
Reviewers: cedric, artem.popov, Oleksander
Subscribers: cedric, stefan_schmidt
Differential Revision: https://phab.enlightenment.org/D1673
|
|
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: https://phab.enlightenment.org/D1544
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
|
|
Again, just a code readability change.
|
|
|
|
Merges functions from:
- filters
- image object
|
|
These macros replace some very repetitive code:
- define ENFN obj->layer->evas->engine.func
- define ENDT obj->layer->evas->engine.data.output
This commit includes lots of space changes as well.
This is a purely cosmetic commit.
|
|
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.
|
|
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: https://phab.enlightenment.org/D1647
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
|
|
Summary: Use EINA_TRUE/EINA_FALSE instead of 1, 0
Reviewers: raster, cedric, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1633
|
|
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.
|
|
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.
|
|
CID: 1244183 - 1244187
Reviewers: cedric, artem.popov, Oleksander
Subscribers: stefan_schmidt, cedric
Differential Revision: https://phab.enlightenment.org/D1585
|
|
Why cast to/from void* in the first place?
|