diff options
author | Felipe Magno de Almeida <felipe@expertise.dev> | 2020-12-15 23:02:20 -0300 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertise.dev> | 2020-12-15 23:06:12 -0300 |
commit | 0363fd8238c3df734c856a48cbb831b9651ed089 (patch) | |
tree | 951895156f0a5dd6aa7e88d8a602c58d79251c50 /src/lib/evas/canvas/evas_canvas_eo.legacy.c | |
parent | 75f07e41c0242123f9e4e5dcbc303ad46ea0849b (diff) | |
download | efl-0363fd8238c3df734c856a48cbb831b9651ed089.tar.gz |
evas: Rename EAPI macro to EVAS_API in Evas library
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
This patch is from a series of patches to rename EAPI symbols to
specific library DSOs.
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
LIBAPI is the only solution that works for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Reviewers: vtorri, woohyun, jptiz, lucas
Reviewed By: vtorri, lucas
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12214
Diffstat (limited to 'src/lib/evas/canvas/evas_canvas_eo.legacy.c')
-rw-r--r-- | src/lib/evas/canvas/evas_canvas_eo.legacy.c | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/src/lib/evas/canvas/evas_canvas_eo.legacy.c b/src/lib/evas/canvas/evas_canvas_eo.legacy.c index 93578fbba1..767d0e46f6 100644 --- a/src/lib/evas/canvas/evas_canvas_eo.legacy.c +++ b/src/lib/evas/canvas/evas_canvas_eo.legacy.c @@ -1,383 +1,383 @@ -EAPI void +EVAS_API void evas_image_cache_set(Evas_Canvas *obj, int size) { evas_canvas_image_cache_set(obj, size); } -EAPI int +EVAS_API int evas_image_cache_get(const Evas_Canvas *obj) { return evas_canvas_image_cache_get(obj); } -EAPI void +EVAS_API void evas_event_default_flags_set(Evas_Canvas *obj, Evas_Event_Flags flags) { evas_canvas_event_default_flags_set(obj, flags); } -EAPI Evas_Event_Flags +EVAS_API Evas_Event_Flags evas_event_default_flags_get(const Evas_Canvas *obj) { return (Evas_Event_Flags)evas_canvas_event_default_flags_get(obj); } -EAPI void +EVAS_API void evas_font_cache_set(Evas_Canvas *obj, int size) { evas_canvas_font_cache_set(obj, size); } -EAPI int +EVAS_API int evas_font_cache_get(const Evas_Canvas *obj) { return evas_canvas_font_cache_get(obj); } -EAPI void +EVAS_API void evas_data_attach_set(Evas_Canvas *obj, void *data) { evas_canvas_data_attach_set(obj, data); } -EAPI void * +EVAS_API void * evas_data_attach_get(const Evas_Canvas *obj) { return evas_canvas_data_attach_get(obj); } -EAPI Efl_Canvas_Object * +EVAS_API Efl_Canvas_Object * evas_focus_get(const Evas_Canvas *obj) { return evas_canvas_focus_get(obj); } -EAPI Efl_Canvas_Object * +EVAS_API Efl_Canvas_Object * evas_seat_focus_get(const Evas_Canvas *obj, Evas_Device *seat) { return evas_canvas_seat_focus_get(obj, seat); } -EAPI Efl_Canvas_Object * +EVAS_API Efl_Canvas_Object * evas_object_top_get(const Evas_Canvas *obj) { return evas_canvas_object_top_get(obj); } -EAPI void +EVAS_API void evas_pointer_canvas_xy_by_device_get(const Evas_Canvas *obj, Evas_Device *dev, int *x, int *y) { evas_canvas_pointer_canvas_xy_by_device_get(obj, dev, x, y); } -EAPI void +EVAS_API void evas_pointer_canvas_xy_get(const Evas_Canvas *obj, int *x, int *y) { evas_canvas_pointer_canvas_xy_get(obj, x, y); } -EAPI int +EVAS_API int evas_event_down_count_get(const Evas_Canvas *obj) { return evas_canvas_event_down_count_get(obj); } -EAPI int +EVAS_API int evas_smart_objects_calculate_count_get(const Evas_Canvas *obj) { return evas_canvas_smart_objects_calculate_count_get(obj); } -EAPI Eina_Bool +EVAS_API Eina_Bool evas_focus_state_get(const Evas_Canvas *obj) { return evas_canvas_focus_state_get(obj); } -EAPI Eina_Bool +EVAS_API Eina_Bool evas_seat_focus_state_get(const Evas_Canvas *obj, Evas_Device *seat) { return evas_canvas_seat_focus_state_get(obj, seat); } -EAPI Eina_Bool +EVAS_API Eina_Bool evas_changed_get(const Evas_Canvas *obj) { return evas_canvas_changed_get(obj); } -EAPI void +EVAS_API void evas_pointer_output_xy_by_device_get(const Evas_Canvas *obj, Evas_Device *dev, int *x, int *y) { evas_canvas_pointer_output_xy_by_device_get(obj, dev, x, y); } -EAPI void +EVAS_API void evas_pointer_output_xy_get(const Evas_Canvas *obj, int *x, int *y) { evas_canvas_pointer_output_xy_get(obj, x, y); } -EAPI Efl_Canvas_Object * +EVAS_API Efl_Canvas_Object * evas_object_bottom_get(const Evas_Canvas *obj) { return evas_canvas_object_bottom_get(obj); } -EAPI unsigned int +EVAS_API unsigned int evas_pointer_button_down_mask_by_device_get(const Evas_Canvas *obj, Evas_Device *dev) { return evas_canvas_pointer_button_down_mask_by_device_get(obj, dev); } -EAPI unsigned int +EVAS_API unsigned int evas_pointer_button_down_mask_get(const Evas_Canvas *obj) { return evas_canvas_pointer_button_down_mask_get(obj); } -EAPI Eina_List * +EVAS_API Eina_List * evas_tree_objects_at_xy_get(Evas_Canvas *obj, Efl_Canvas_Object *stop, int x, int y) { return evas_canvas_tree_objects_at_xy_get(obj, stop, x, y); } -EAPI void +EVAS_API void evas_key_lock_on(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_lock_on(obj, keyname); } -EAPI void +EVAS_API void evas_seat_key_lock_on(Evas_Canvas *obj, const char *keyname, Evas_Device *seat) { evas_canvas_seat_key_lock_on(obj, keyname, seat); } -EAPI void +EVAS_API void evas_seat_key_lock_off(Evas_Canvas *obj, const char *keyname, Evas_Device *seat) { evas_canvas_seat_key_lock_off(obj, keyname, seat); } -EAPI void +EVAS_API void evas_key_modifier_add(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_modifier_add(obj, keyname); } -EAPI void +EVAS_API void evas_key_modifier_off(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_modifier_off(obj, keyname); } -EAPI Eina_Bool +EVAS_API Eina_Bool evas_render_async(Evas_Canvas *obj) { return evas_canvas_render_async(obj); } -EAPI void +EVAS_API void evas_focus_out(Evas_Canvas *obj) { evas_canvas_focus_out(obj); } -EAPI void +EVAS_API void evas_norender(Evas_Canvas *obj) { evas_canvas_norender(obj); } -EAPI void +EVAS_API void evas_nochange_pop(Evas_Canvas *obj) { evas_canvas_nochange_pop(obj); } -EAPI void +EVAS_API void evas_key_lock_off(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_lock_off(obj, keyname); } -EAPI void +EVAS_API void evas_nochange_push(Evas_Canvas *obj) { evas_canvas_nochange_push(obj); } -EAPI void +EVAS_API void evas_font_cache_flush(Evas_Canvas *obj) { evas_canvas_font_cache_flush(obj); } -EAPI void +EVAS_API void evas_key_modifier_on(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_modifier_on(obj, keyname); } -EAPI void +EVAS_API void evas_seat_key_modifier_on(Evas_Canvas *obj, const char *keyname, Evas_Device *seat) { evas_canvas_seat_key_modifier_on(obj, keyname, seat); } -EAPI void +EVAS_API void evas_seat_key_modifier_off(Evas_Canvas *obj, const char *keyname, Evas_Device *seat) { evas_canvas_seat_key_modifier_off(obj, keyname, seat); } -EAPI Eina_List * +EVAS_API Eina_List * evas_font_available_list(const Evas_Canvas *obj) { return evas_canvas_font_available_list(obj); } -EAPI Efl_Canvas_Object * +EVAS_API Efl_Canvas_Object * evas_object_name_find(const Evas_Canvas *obj, const char *name) { return evas_canvas_object_name_find(obj, name); } -EAPI void +EVAS_API void evas_font_path_append(Evas_Canvas *obj, const char *path) { evas_canvas_font_path_append(obj, path); } -EAPI void +EVAS_API void evas_font_path_clear(Evas_Canvas *obj) { evas_canvas_font_path_clear(obj); } -EAPI void +EVAS_API void evas_key_lock_del(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_lock_del(obj, keyname); } -EAPI void +EVAS_API void evas_damage_rectangle_add(Evas_Canvas *obj, int x, int y, int w, int h) { evas_canvas_damage_rectangle_add(obj, x, y, w, h); } -EAPI void +EVAS_API void evas_sync(Evas_Canvas *obj) { evas_canvas_sync(obj); } -EAPI const Eina_List * +EVAS_API const Eina_List * evas_font_path_list(const Evas_Canvas *obj) { return evas_canvas_font_path_list(obj); } -EAPI void +EVAS_API void evas_image_cache_reload(Evas_Canvas *obj) { evas_canvas_image_cache_reload(obj); } -EAPI int +EVAS_API int evas_coord_world_x_to_screen(const Evas_Canvas *obj, int x) { return evas_canvas_coord_world_x_to_screen(obj, x); } -EAPI Eina_List * +EVAS_API Eina_List * evas_render_updates(Evas_Canvas *obj) { return evas_canvas_render_updates(obj); } -EAPI void +EVAS_API void evas_image_cache_flush(Evas_Canvas *obj) { evas_canvas_image_cache_flush(obj); } -EAPI int +EVAS_API int evas_coord_screen_y_to_world(const Evas_Canvas *obj, int y) { return evas_canvas_coord_screen_y_to_world(obj, y); } -EAPI void +EVAS_API void evas_key_modifier_del(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_modifier_del(obj, keyname); } -EAPI void +EVAS_API void evas_focus_in(Evas_Canvas *obj) { evas_canvas_focus_in(obj); } -EAPI void +EVAS_API void evas_obscured_rectangle_add(Evas_Canvas *obj, int x, int y, int w, int h) { evas_canvas_obscured_rectangle_add(obj, x, y, w, h); } -EAPI void +EVAS_API void evas_render_dump(Evas_Canvas *obj) { evas_canvas_render_dump(obj); } -EAPI void +EVAS_API void evas_render(Evas_Canvas *obj) { evas_canvas_render(obj); } -EAPI void +EVAS_API void evas_font_path_prepend(Evas_Canvas *obj, const char *path) { evas_canvas_font_path_prepend(obj, path); } -EAPI void +EVAS_API void evas_obscured_clear(Evas_Canvas *obj) { evas_canvas_obscured_clear(obj); } -EAPI int +EVAS_API int evas_coord_screen_x_to_world(const Evas_Canvas *obj, int x) { return evas_canvas_coord_screen_x_to_world(obj, x); } -EAPI void +EVAS_API void evas_key_lock_add(Evas_Canvas *obj, const char *keyname) { evas_canvas_key_lock_add(obj, keyname); } -EAPI void +EVAS_API void evas_render_idle_flush(Evas_Canvas *obj) { evas_canvas_render_idle_flush(obj); } -EAPI Evas_Device * +EVAS_API Evas_Device * evas_default_device_get(const Evas_Canvas *obj, Evas_Device_Class type) { return evas_canvas_default_device_get(obj, type); } -EAPI int +EVAS_API int evas_coord_world_y_to_screen(const Evas_Canvas *obj, int y) { return evas_canvas_coord_world_y_to_screen(obj, y); |