Add a promise object to allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.
The usage is like this in a .eo file:
class Foo {
methods {
bar {
params {
@inout promise: Promise<int>;
}
}
}
}
Which will create the following API interface:
void foo_bar(Eo* obj, Eina_Promise** promise);
and a Eina_Promise_Owner for the implementation, like this:
void _foo_bar(Eo* obj, Private_Data* pdata, Eina_Promise_Owner* promise);
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Add two parameters for macros that generate API functions in Eo so
that the generation can be customized with macros used by Eolian.
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
I'm reverting this because according to jpeg it was possibly fixed in
5284b62e93.
I reverted this patch after his fix and followed his reproduction cases
and it seems that his second patch does indeed fix this issue so this
patch is no longer needed.
This reverts commit 0862b9d083.
Since we cache ops we also need to check function calls work
when we reinit eo, not just class_get functions.
This commit essentially verifies that
5284b62e93 was done correctly.
A major typo (hard to find with the naked eye) was present in
elm_config's list of text & color classes. See D3487.
I'm pretty sure this feature has not been used at all.
warning: missing field 'desc' initializer
[-Wmissing-field-initializers]
Solution: use gcc extension to init structs with {}.
This is a bit ugly, but having too many warnings leads to
ignoring them and not noticing valid ones.
The warning is triggered because the first member of Eo_Event
is not a primitive type (it's a struct _Eo_Opaque *).
The function call resolve cache may be broken after an eo
shutdown + init cycle, leading to calls to invalid functions.
This adds an static uint for each and every single EO API
entry point, as well as an extra if() check.
Now I'm not sure if the previous commit 0862b9d083 is
still necessary.
It seems that calling a @class function with an EO object
(that was not the required Eo_Class) lead to a situation
where func->func was NULL. And that meant a crash after
call_resolve.
The proper fix is to properly call a @class function with a
class object.
Summary:
Added flip and orientation interface and used them in evas_image.
Removed efl_image_orientation_set API and used efl_orientation_set and efl_flip_set API.
In implementation part, converted enums back and forth in order to keep current implementation as it is.
Test Plan: src/examples/evas/evas-images5.c
Reviewers: singh.amitesh, raster, tasn, herdsman, woohyun, cedric, felipealmeida, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3844
Add ecore_thread_promise_run function that returns a Promise
and runs function in another thread which you can set the
value on a Eina_Promise_Owner.
Eina_Promise* promise;
Ecore_Thread* thread = ecore_thread_promise_run
( &function_heavy, &cancellation_function, private_data,
sizeof(ValueType), &promise);
This calls function_heavy on another thread and returns
the Ecore_Thread and a Eina_Promise as an out-parameter.
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Add a promise object that will allows Eolian interface to include promises
as a way to have asynchronous value return and composibility.
To understand better, let see the coming usage in a .eo file:
class Foo {
methods {
bar {
params {
@inout promise: Promise<int>;
}
}
}
}
Which will create the following API interface:
void foo_bar(Eo* obj, Eina_Promise** promise);
and the equivalent declaration for implementation.
However, the API function will instantiate the Promise for the user
and the implementer of the class automatically. So the user of this
function will treat it as a @out parameter, while the developer of the
function will treat it like a @inout parameter.
So, the user will use this function like this:
Eina_Promise* promise; // No need to instantiate
foo_bar(obj, &promise);
eina_promise_then(promise, callback);
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_crtc_panning_area_set function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_interface_type_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing function
ecore_x_randr_screen_backlight_level_set
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_dpms_off_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_dpms_standby_available_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_serial_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing
ecore_x_randr_edid_display_ascii_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_dpms_standby_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing function
ecore_x_randr_edid_dpms_available_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for missing API function
ecore_x_randr_edid_manufacturer_serial_number_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for ecore_x_randr_edid_model_get
function which was missing from ecore-xcb.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an xcb implementation for
ecore_x_randr_edid_manufacturer_model_get function
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
ecore_x_randr_edid_manufacturer_name_get
This patch adds an implementation inside ecore-xcb for missing API
function ecore_x_randr_manufacturer_name_get
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds an implementation for
ecore_x_randr_edid_info_has_valid_checksum which was missing in the
ecore-xcb codebase.
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch adds definition of missing API function
ecore_x_randr_output_crtc_set.
NB: This function also has no code in the xlib implementation
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
As portions of this code have been derived from existing code in
Weston, we should also be including their copyright/license text to
give credit.
Fixes T3421
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
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.
AFILL should be used only for certain images, which are
actually native external or dynamic content images.
All normal image don't need the AFILL flag, since they should
have proper argb and alpha flag.
this now allows vpath files to be looked uop using app directory
resources like @app.data/file.jpg ... if the object uses vpath to do
its hunting.
@feature
this inits a new vpath object and adds it at priority 0 to the vpath
manager so you can use the vpath manager to create vpath file objects
and look things up.
@feature