Commit Graph

138 Commits

Author SHA1 Message Date
Jean-Philippe Andre 4653cc44dd Evas: Cleanup evas smart clipped class
This is legacy stuff. I wish we could hide it from our inheritance
entirely. Instead, just make it abstract, remove all functions from
eo (doable here) and rename with the keyword "internal" in the new
ugly java style name.
2016-06-17 19:32:43 +09:00
Jean-Philippe Andre 9c156c0be7 Evas: Remove a useless magic check 2016-06-17 19:25:48 +09:00
Jean-Philippe Andre 42b63f5507 Evas: Add smart_ prefix to all smart functions (eo)
This is a first step at separating legacy smart
object features away from standard efl interfaces.
2016-06-17 19:25:48 +09:00
Jean-Philippe Andre 2a0bb33f1d Evas: Move smart_members_get to legacy
Going forward, we prefer to return iterators rather than
lists.
2016-06-17 19:25:47 +09:00
Jean-Philippe Andre 3d1e474fc6 Evas: Move smart data to legacy 2016-06-17 19:25:47 +09:00
Jean-Philippe Andre 9a052a740d Evas: Move smart_callbacks_descriptions to legacy 2016-06-17 19:25:47 +09:00
Jean-Philippe Andre b88ca02fe9 Evas: Move smart_get to legacy and smart_attach to internals
smart_get and attach referred to an opaque struct, from EO
point of view.

Also, attach was an EO-only function, used nowhere besides
evas object smart itself, and evas grid (which is not EO
public API).
2016-06-17 19:25:47 +09:00
Jean-Philippe Andre 84a91ec6d4 Evas: Move smart_type_check[_ptr] to legacy 2016-06-17 11:37:39 +09:00
Jean-Philippe Andre 93fad2a19f Evas: Nove smart data get to smart class
It didn't make sense where it was.
No idea why evas_box was overwriting smart_data.get
(esp. since it was returning a private struct).
2016-06-17 11:37:39 +09:00
Jean Guyomarc'h 5bfaef58f1 evas: fix warning: redefinition of types
Fixes warnings raised by cland such as:
warning: redefinition of typedef 'Efl_VG' is a C11 feature
[-Wtypedef-redefinition]
2016-05-28 22:17:22 +02:00
Cedric Bail 75a53ece10 eo: for consistency use object like all our API. 2016-05-18 08:18:04 -07:00
Cedric BAIL ddf92ba61b evas: let's reuse what we know when possible to avoid more useless eo_data_scope_get. 2016-05-06 17:01:10 -07:00
Cedric BAIL 4bf54d993f evas: cache result of eo_data_scope_get that are heavily used.
This alone save a good 3% time to our first frame being displayed.
2016-05-06 16:47:07 -07:00
Tom Hacohen f14305024e Eo event: rename Eo_Event->event_info to Eo_Event->info.
The previous naming was redundant and too long.
2016-04-12 15:23:55 +01:00
Jean-Philippe Andre df03631ef6 Evas smart: Mark all smart clippers as no_render
This allows doing ugly things such as setting a clipper/mask
on any smart object, without having to worry about seeing a
white rectangle cover the whole screen.

While the above scenario is not a great idea (bypass elementary in
its handling of the clipper), having a big white rect covering the
entire UI seems even worse.

I wonder if elm objects shouldn't simply allow user clippers, and
somehow manage them along with the smart object internal clipper.
2016-04-05 18:20:36 +09:00
Jean-Philippe Andre 8fb8e6d257 Evas render: Fix no-render with smart objects
Setting the no-render flag on an elm widget had no effect,
as it was not properly propagated to its children. This should
fix that, but I'm not a fan of the solution.

Fixes T3371
2016-03-29 10:43:00 +09:00
Tom Hacohen f24210caac Revert "Automatic migration to the new eo_add syntax."
This reverts commit 4f949a2757.
2016-03-11 12:29:03 +00:00
Tom Hacohen 4f949a2757 Automatic migration to the new eo_add syntax. 2016-03-09 16:09:14 +00:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
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-03-03 09:58:08 +00:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
Hermet Park 909af58b8e evas/canvas: fix an incorrect sizing of smart object bounding box.
height of the children b-box should be arranged by parent y-pos.

Signed-Off-By: KeuckDo Bang <keuckdo.bang@samsung.com>
Signed-Off-By: MinKyu Kim <imetjade.kim@samsung.com>

@fix
2016-02-02 21:19:46 +09:00
Hermet Park a382e92017 Revert "Revert "increase recalculation_cycle.""
This reverts commit 9efdf309ce.
2016-02-02 19:25:28 +09:00
Hermet Park 9efdf309ce Revert "increase recalculation_cycle."
This reverts commit 524fd2f6fc.

rollback until release 1.17
2016-02-02 18:11:19 +09:00
Hermet Park f6722e63fa Revert "evas/canvas: simple optimization."
This reverts commit ca124ce5ce.

rollback until release 1.17
2016-02-02 18:09:01 +09:00
Hermet Park ca124ce5ce evas/canvas: simple optimization.
We don't need to reorder the clist here as far as I reviewed.
Because, the clist nodes will be calculated all in one.

If I'm wrong please ping me.
2016-02-02 17:59:27 +09:00
Hermet Park 524fd2f6fc increase recalculation_cycle.
256 is too short.
entry can be much larger than this calculation cycle.
2016-02-02 17:54:29 +09:00
Jean-Philippe Andre f00f466250 Evas render: Distinguish has_map and can_map
This patch is a minor code cleanup before fixing T2979
(render artifacts inside Enventor).
2016-01-07 11:12:51 +09:00
Youngbok Shin a9b4be11e1 Evas object: Add paragraph_direciton APIs
Summary:
It adds evas_object_paragraph_direction_set, get APIs.
The APIs set or get paragraph direction to/from the given object.
It changes BiDi calculations and affect the direction and aligning of text.
It doesn't have any effect to text without Fribidi library.

The default paragraph direction is EVAS_BIDI_DIRECTION_INHERIT.
If dir is EVAS_BIDI_DIRECTION_INHERIT, paragraph direction is changed
according to smart parent object. If there is no smart parent object,
paragraph direction works as EVAS_BIDI_DIRECTION_NEUTRAL.

@feature

Test Plan:
Test cases included to the following files.
- evas_test_textblock.c
- evas_test_text.c
- evas_test_object_smart.c

Run "make check".

Reviewers: woohyun, raster, herdsman, tasn

Subscribers: c, raster, cedric

Differential Revision: https://phab.enlightenment.org/D1690
2015-11-19 11:43:39 +00:00
Jean-Philippe Andre 6e96d75c76 Evas: Remove dead code (cached surfaces)
While cached surfaces is a topic we're discussing recently,
this code is dead right now, and we will have to redesign the
buffer caching better to handle proxies, maps, smart objects, etc...
2015-11-02 16:22:19 +09:00
Mrunal Sovani 9ed199d709 Evas smart: Add obj type safety check to callback_del.
Summary:
Evas_Smart_Data retrieved from eo_data_scope_get might be NULL
in case the input Evas_Object is not valid Evas_Object.
The smart data gets dereferenced and can cause a crash if its NULL
Hence return in case smart data is NULL.

@fix

Signed-off-by: Mrunal Sovani <mrunal.s@samsung.com>

Reviewers: raster, Hermet, tasn

Reviewed By: tasn

Subscribers: singh.amitesh, cedric, sachin.dev

Differential Revision: https://phab.enlightenment.org/D3106
2015-09-24 14:59:01 +01:00
ChunEon Park becf6869b9 map: don't update surface unencessarily.
smart object don't need to update map surface always
check the state more elaborately so minus one more surface drawing!
2015-09-10 21:31:41 +09:00
Daniel Kolesa c4d666805d evas: fix missing render2_walk initializers
This caused annoying compiler warnings that are gone now.

@fix
2015-07-21 13:54:23 +01:00
Daniel Kolesa c709f1dca2 eolian/generator: constify all prototypes for @const functions
Otherwise there would be conflicts in certain circumstances.

This also requires adding const on many existing functions,
and similar work is necessary in Elementary.

@fix
2015-06-25 12:18:43 +01:00
Vaibhav Gupta a1545ec314 evas_smart: Add a check for zero size before malloc
Summary:
	Size may be zero while allocating interfaces private data,
	when NULL is passed in EVAS_SMART_SUBCLASS_IFACE_NEW for ifaces argument.

	If size is 0, then malloc() returns either NULL, or a unique pointer
	value that can later be successfully passed to free(). It is implementation
	dependent. This case would be likely to occur in case of smart classes with
	no interfaces.

@fix

Signed-off-by: Vaibhav Gupta <g.vaibhav1@samsung.com>

Reviewers: raster, Hermet, tasn, cedric

Subscribers: SanghyeonLee, sachin.dev, singh.amitesh, cedric

Differential Revision: https://phab.enlightenment.org/D2679
2015-06-12 09:47:13 +01:00
Tom Hacohen ec53cee9a6 Evas: Remove unused variables.
These were introduced in ed01a32c13.
2015-06-11 09:50:12 +01:00
Daniel Hirt ed01a32c13 evas: move evas_object_inject to super's ctor
Summary:
As we always call evas_object_inject in every Evas Object's ctcor,
it seems sensible to move this repeated bit of code to the super
(Evas.Object).

Test Plan: Expedite, Elementary_Test and pretty much everything

Reviewers: cedric, raster

Subscribers: JackDanielZ, cedric

Differential Revision: https://phab.enlightenment.org/D2665

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-06-11 09:58:13 +02:00
Chris Michael cd4bb6a84d evas: Remove unused variables
Summary: These variables are actually unused here, so remove them.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-09 09:08:47 -04:00
Carsten Haitzler 25983dcedd evas render2 work - begin to make rectangles deal with render 2 basic
infra
2015-06-09 17:34:39 +09:00
Tom Hacohen 6efbfe227a Eo: Add a return value to eo_constructor().
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.

This is one of the final steps towards stabilizing Eo.

@feature
2015-05-20 13:03:24 +01:00
Carsten Haitzler 7c5f92d702 evas - render - have lock point to allow for async obj walk + update add
this adds a lock for when walking all the objects to generate render
commands for an async render. this allows even the object tree walk
plus update area caluclation to be moved off into async if every oject
that can change canvas state actually does so correctly. this change
adds all those lock block calls to synchronise with an async object
tree walk.
2015-02-12 11:06:40 +09:00
Cedric BAIL 86438f5583 evas: more defensive programming. 2014-10-12 10:11:50 +02:00
Tom Hacohen a7560dbc61 Eo: Change eo_add/del/unref behaviour.
Before this change eo_add() used to create an object with 1 ref, and if
the object had a parent, a second ref.
Now, eo_add() always returns an object with 1 ref, and eo_add_ref()
    preserves the old behaviour (for bindings).

eo_unref now un-parents if refcount is 0, and eo_del() is an alias for
eo_unref (will change to be a way to ensure an object is dead and goes
        to zombie-land even if still refed).
2014-09-25 17:38:45 +01:00
Jaehyun Cho b3d900e748 evas: Fix not to clean and re-render if position of object enabled map is changed
Summary: Fix not to clean and re-render if the position of an object enabled map is changed.

Reviewers: raster, cedric, Hermet

Reviewed By: Hermet

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1220
2014-08-07 15:32:40 +09:00
Tom Hacohen 7f3a44894b Evas canvas eolian: Fix namespace and class name for the evas canvas. 2014-06-30 17:47:06 +01:00
Tom Hacohen 0fc3279db9 Efl: Update code to use the new class names generated by eolian. 2014-06-03 11:28:01 +01:00
Tom Hacohen c58b3401c3 Eo/evas events: Move legacy events dynamic generator to eo. 2014-05-28 12:28:17 +01:00
ChunEon Park c399017cef evas - removed unncessary header include
it's already done in evas_common_private.h. no need it in each file.
2014-04-29 15:44:29 +09:00
Tom Hacohen 35525a53e0 Adjust eo_do calls to work with the eo2 api. 2014-04-10 04:20:21 +01:00
Daniel Zaoui 6fd341a449 Eolian: Fix ctor/dtor generation 2014-03-19 07:04:28 +02:00
Daniel Zaoui 103e89a04a Eolian: Integration of Evas 2014-03-12 10:57:28 +02:00
Daniel Zaoui f22bd9e6ee Eolian: Integration of Evas Object.
const have been added in object parameter of two legacy APIs to fit
Eolian generated files.
Since these functions retrieve information from object, it is logic that
the object would be const.
2014-03-12 10:57:28 +02:00
Daniel Zaoui 44f9da675c Eolian: Integration of Evas Smart 2014-03-11 07:37:47 +02:00
Daniel Juyung Seo 76d8532b54 efl: Unified eina critical manro to CRI.
Being annoyed by different types of eina critical macros - CRI, CRIT,
 CRITICAL -, I concluded to unify them to one. Discussed on IRC and
 finally, CRI was chosen to meet the consistency with other macros -
 ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
2013-12-26 12:27:13 +09:00
ChunEon Park 10babb62cd evas - redraw the map surface if one of the children has been still changed map. 2013-12-22 18:19:40 +09:00
Daniel Juyung Seo 5b21fa7169 Revert "fix smart sma by allowing more recursion"
This reverts commit 1319733cae.

Let's revert this patch and lower the recursion number.
As we released efl 1.8, let's find the root causes of the problem and fix them.
I already told this revert to raster so I am not mean :)
2013-12-02 16:02:23 +09:00
ChunEon Park 39599d1a26 evas - code refactoring.
merge duplicated(almost) functions to one.
2013-11-25 16:06:03 +09:00
Carsten Haitzler 1319733cae fix smart sma by allowing more recursion
this ups the recursion allowance to 4096. it solves T494
2013-11-24 19:14:28 +09:00
Daniel Zaoui 086c5ae901 Evas Smart: print Eo id instead of pointer to internal data. 2013-11-19 16:32:43 +02:00
Tom Hacohen c7addf4083 Changed Eo class names to be consistent.
All the class names are now of the format: Lib_Type_Subtype_Extra.
2013-11-07 11:17:52 +00:00
discomfitor 9c83f34420 evas smart callback deletion no longer crashes when called during object deletion 2013-10-16 17:12:50 +01:00
ChunEon Park eea1b83cf6 evas/map - Fixed the map surface to be updated properly.
By tranversing the whole of the map target's tree,
it decides to update the map surface to be redrawn if one of the objects is changed except the clipper itself.
2013-10-15 22:24:27 +09:00
ChunEon Park 3b6961e175 evas/canvas - code refactoring. more clean code. 2013-09-29 17:31:56 +09:00
Tom Hacohen 682c69764d Revert "eo: libs,test,benchmarks Eo_Class -> Eo"
This reverts commit 1714fe93f4.

We actually want this type, it makes things clearer.

Conflicts:
	src/tests/eo/function_overrides/function_overrides_inherit2.c
	src/tests/eo/function_overrides/function_overrides_simple.c
	src/tests/eo/suite/eo_test_class_simple.c
2013-09-27 16:40:32 +01:00
Jérémy Zurcher 1714fe93f4 eo: libs,test,benchmarks Eo_Class -> Eo
Conflicts:
	src/tests/eo/suite/eo_test_general.c
2013-09-27 14:01:46 +01:00
Cedric Bail b37494503f evas: update to new eo_parent_get/set API. 2013-09-25 13:34:18 +09:00
Cedric Bail a626a91d69 evas: add evas_object_smart_iterator_new().
This is going to break Eo ABI. Rebuild all software using Eo API on top
of EFL (Elementary for example).
2013-09-05 17:16:40 +09:00
Cedric Bail 48b40640b5 evas: no need to call eo_data_scope_get in many case after this change.
Reduce CPU usage by 5% in some case (especially when the CPU is not the
limiting factor like with the GL backend).
2013-07-09 09:48:09 +09:00
Daniel Juyung Seo 311db0fc58 evas_object_smart.c: removed unnecessary code. 2013-07-02 17:07:05 +09:00
ChunEon Park 5f4ae9abeb evas/render - refactoring about checking smart member changed.
move those code to the evas_object_smart.
2013-07-02 15:28:56 +09:00
Sebastian Dransfeld 336f6ec328 efl: formatting 2013-06-20 13:28:18 +02:00
Sebastian Dransfeld 51023d2d4f evas: Keep sane name for public header
Evas_Common.h should be used for the public header, and rather rename
evas_common.h internal header to another name.

Sa:
Evas_Common_Header.h -> Evas_Common.h
evas_common.h -> evas_common_private.h

Shouldn't have both Evas_Common.h and evas_common.h because of case
insensitive filesystems.
2013-06-20 12:53:29 +02:00
Daniel Zaoui 1a0282691c Efl: adapt legacy Evas Smart callbacks to Eo callbacks mechanism. 2013-05-05 14:33:16 +03:00
Carsten Haitzler f8c9a8d167 revert the revert... damn you git!
Revert "Revert "Efl: replace eo_data_get for objects data referencing.""

This reverts commit b64a2994b3.
2013-05-02 16:47:16 +09:00
Carsten Haitzler b64a2994b3 Revert "Efl: replace eo_data_get for objects data referencing."
This reverts commit 654a3f5f94.
2013-05-02 14:17:19 +09:00
Daniel Zaoui 654a3f5f94 Efl: replace eo_data_get for objects data referencing. 2013-05-01 10:37:08 +03:00
Cedric Bail 131936b640 evas: correctly define bounding box in all case. 2013-04-08 15:05:58 +09:00
Cedric Bail 70f0f9c6b5 evas: get the bounding box from the right object and always update it. 2013-04-07 23:45:23 +09:00
Cedric Bail 244cca7503 evas: revert useless change. 2013-04-07 23:45:23 +09:00
Cedric Bail 7739267d8b evas: bounding box is only relevant to smart object. 2013-04-07 15:11:56 +09:00
Daniel Juyung Seo b992ec4894 evas_object_smart.c: internal comment++. 2013-04-01 20:57:57 +09:00
Tom Hacohen a170683334 Change usage of eo_do_super to the new prototype. 2013-03-18 16:14:18 +00:00
Cedric BAIL d79a2efa39 evas: use Eina_Cow a lot more and we are closer to the memory size of 1.7. 2013-03-13 14:35:25 +09:00
Carsten Haitzler b389f6dc9a make evas smart callbnacks safer if something bad happens in memory. 2013-03-11 15:55:04 +09:00
Cedric BAIL db3eb71dde efl/evas: let's not be lazy and put smart related data only in smart object.
SVN revision: 83848
2013-02-12 08:58:59 +00:00
Cedric BAIL 966ca4602e efl/evas: move smart object data to smart object only.
SVN revision: 83847
2013-02-12 07:59:53 +00:00
Daniel Zaoui ec7a42b204 Replace supported_types
Signed-off-by: Daniel Zaoui <daniel.zaoui@samsung.com>

SVN revision: 83802
2013-02-10 07:52:17 +00:00
Leandro Pereira cb10c7d019 evas: Modify software_generic and gl_x11 to with with threaded renderer
SVN revision: 81284
2012-12-18 16:28:55 +00:00
Vincent Torri c15e9c6575 merge: and now Evas
I've tested make -j 3 install and it works nicely

I've tested expedite with software and opengl xlib,
and it works. Not tested other engines, so please
report any problems (engines or other) on the ML.

TODO: examples and tests, I'll add them later

ISSUE: Eina_Unicode size check. It indirectly depends on
       eina_config.h, which is created at the end of the
       configure script. So its size is always 0. I don't
       know how that size is used, so I can't do a lot,
       for now.


SVN revision: 78895
2012-11-04 11:51:42 +00:00