ecore_evas: Rename EAPI macro to ECORE_EVAS_API in Ecore Evas library

Patch 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
EAPI is the only solution that worked for MSVC.

Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
This commit is contained in:
Felipe Magno de Almeida 2020-10-28 18:32:52 -03:00
parent 33b59d04d0
commit 00246298a0
10 changed files with 699 additions and 719 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,34 @@
#ifndef _EFL_ECORE_EVAS_API_H
#define _EFL_ECORE_EVAS_API_H
#ifdef ECORE_EVAS_API
#error ECORE_EVAS_API should not be already defined
#endif
#ifdef _WIN32
# ifndef ECORE_EVAS_STATIC
# ifdef ECORE_EVAS_BUILD
# define ECORE_EVAS_API __declspec(dllexport)
# else
# define ECORE_EVAS_API __declspec(dllimport)
# endif
# else
# define ECORE_EVAS_API
# endif
# define ECORE_EVAS_API_WEAK
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define ECORE_EVAS_API __attribute__ ((visibility("default")))
# define ECORE_EVAS_API_WEAK __attribute__ ((weak))
# else
# define ECORE_EVAS_API
# define ECORE_EVAS_API_WEAK
# endif
# else
# define ECORE_EVAS_API
# define ECORE_EVAS_API_WEAK
# endif
#endif
#endif

View File

@ -209,7 +209,7 @@ _ecore_evas_buffer_update_image(void *data, Evas *e EINA_UNUSED, void *event_inf
bdata->lock_data = EINA_FALSE;
}
EAPI int
ECORE_EVAS_API int
ecore_evas_buffer_render(Ecore_Evas *ee)
{
int r;
@ -769,7 +769,7 @@ _ecore_evas_buffer_pix_free(void *data EINA_UNUSED, void *pix)
free(pix);
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_buffer_allocfunc_new(int w, int h,
void *(*alloc_func) (void *data, int size),
void (*free_func) (void *data, void *pix),
@ -892,7 +892,7 @@ ecore_evas_buffer_allocfunc_new(int w, int h,
return ee;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_buffer_new(int w, int h)
{
Ecore_Evas *ee;
@ -914,7 +914,7 @@ ecore_evas_buffer_new(int w, int h)
return ee;
}
EAPI const void *
ECORE_EVAS_API const void *
ecore_evas_buffer_pixels_get(Ecore_Evas *ee)
{
Ecore_Evas_Engine_Buffer_Data *bdata;
@ -927,7 +927,7 @@ ecore_evas_buffer_pixels_get(Ecore_Evas *ee)
return bdata->pixels;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_buffer_ecore_evas_parent_get(Ecore_Evas *ee)
{
Ecore_Evas_Engine_Buffer_Data *bdata;
@ -938,7 +938,7 @@ ecore_evas_buffer_ecore_evas_parent_get(Ecore_Evas *ee)
return evas_object_data_get(bdata->image, "Ecore_Evas_Parent");
}
EAPI Evas_Object *
ECORE_EVAS_API Evas_Object *
ecore_evas_object_image_new(Ecore_Evas *ee_target)
{
Evas_Object *o;

View File

@ -15,7 +15,7 @@
* to not break ABI.
*/
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_wince_new(Ecore_WinCE_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -25,7 +25,7 @@ ecore_evas_software_wince_new(Ecore_WinCE_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_wince_fb_new(Ecore_WinCE_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -35,7 +35,7 @@ ecore_evas_software_wince_fb_new(Ecore_WinCE_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_wince_gapi_new(Ecore_WinCE_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -45,7 +45,7 @@ ecore_evas_software_wince_gapi_new(Ecore_WinCE_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_wince_ddraw_new(Ecore_WinCE_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -55,7 +55,7 @@ ecore_evas_software_wince_ddraw_new(Ecore_WinCE_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_wince_gdi_new(Ecore_WinCE_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -65,7 +65,7 @@ ecore_evas_software_wince_gdi_new(Ecore_WinCE_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_direct3d_new(Ecore_Win32_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -75,7 +75,7 @@ ecore_evas_direct3d_new(Ecore_Win32_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_gl_glew_new(Ecore_Win32_Window *parent EINA_UNUSED,
int x EINA_UNUSED,
int y EINA_UNUSED,
@ -85,7 +85,7 @@ ecore_evas_gl_glew_new(Ecore_Win32_Window *parent EINA_UNUSED,
return NULL;
}
EAPI Ecore_WinCE_Window *
ECORE_EVAS_API Ecore_WinCE_Window *
ecore_evas_software_wince_window_get(const Ecore_Evas *ee EINA_UNUSED)
{
return NULL;
@ -95,13 +95,13 @@ ecore_evas_software_wince_window_get(const Ecore_Evas *ee EINA_UNUSED)
* to not break ABI.
*/
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_directfb_new(const char *disp_name EINA_UNUSED, int windowed EINA_UNUSED, int x EINA_UNUSED, int y EINA_UNUSED, int w EINA_UNUSED, int h EINA_UNUSED)
{
return NULL;
}
EAPI Ecore_DirectFB_Window *
ECORE_EVAS_API Ecore_DirectFB_Window *
ecore_evas_directfb_window_get(const Ecore_Evas *ee EINA_UNUSED)
{
return NULL;
@ -110,31 +110,31 @@ ecore_evas_directfb_window_get(const Ecore_Evas *ee EINA_UNUSED)
/* Ecore_Evas X11 16 bits support was removed. However we keep the functions
* to not break ABI.
*/
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_x11_16_new(const char *disp_name EINA_UNUSED, Ecore_X_Window parent EINA_UNUSED,
int x EINA_UNUSED, int y EINA_UNUSED, int w EINA_UNUSED, int h EINA_UNUSED)
{
return NULL;
}
EAPI Ecore_X_Window
ECORE_EVAS_API Ecore_X_Window
ecore_evas_software_x11_16_window_get(const Ecore_Evas *ee EINA_UNUSED)
{
return 0;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_software_x11_16_direct_resize_set(Ecore_Evas *ee EINA_UNUSED, Eina_Bool on EINA_UNUSED)
{
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_software_x11_16_direct_resize_get(const Ecore_Evas *ee EINA_UNUSED)
{
return EINA_FALSE;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee EINA_UNUSED, Ecore_X_Window win EINA_UNUSED)
{
}
@ -142,36 +142,36 @@ ecore_evas_software_x11_16_extra_event_window_add(Ecore_Evas *ee EINA_UNUSED, Ec
/* Ecore_Evas X11 8 bits support was removed. However we keep the functions
* to not break ABI.
*/
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_software_x11_8_new(const char *disp_name EINA_UNUSED, Ecore_X_Window parent EINA_UNUSED, int x EINA_UNUSED, int y EINA_UNUSED, int w EINA_UNUSED, int h EINA_UNUSED)
{
return NULL;
}
EAPI Ecore_X_Window
ECORE_EVAS_API Ecore_X_Window
ecore_evas_software_x11_8_window_get(const Ecore_Evas *ee EINA_UNUSED)
{
return 0;
}
EAPI Ecore_X_Window
ECORE_EVAS_API Ecore_X_Window
ecore_evas_software_x11_8_subwindow_get(const Ecore_Evas *ee EINA_UNUSED)
{
return 0;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_software_x11_8_direct_resize_set(Ecore_Evas *ee EINA_UNUSED, Eina_Bool on EINA_UNUSED)
{
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_software_x11_8_direct_resize_get(const Ecore_Evas *ee EINA_UNUSED)
{
return EINA_FALSE;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_software_x11_8_extra_event_window_add(Ecore_Evas *ee EINA_UNUSED, Ecore_X_Window win EINA_UNUSED)
{
return;
@ -180,31 +180,31 @@ ecore_evas_software_x11_8_extra_event_window_add(Ecore_Evas *ee EINA_UNUSED, Eco
/* Ecore_Evas XRender support was removed. However we keep the functions
* to not break ABI.
*/
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_xrender_x11_new(const char *disp_name EINA_UNUSED, Ecore_X_Window parent EINA_UNUSED,
int x EINA_UNUSED, int y EINA_UNUSED, int w EINA_UNUSED, int h EINA_UNUSED)
{
return NULL;
}
EAPI Ecore_X_Window
ECORE_EVAS_API Ecore_X_Window
ecore_evas_xrender_x11_window_get(const Ecore_Evas *ee EINA_UNUSED)
{
return 0;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_xrender_x11_direct_resize_set(Ecore_Evas *ee EINA_UNUSED, Eina_Bool on EINA_UNUSED)
{
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_xrender_x11_direct_resize_get(const Ecore_Evas *ee EINA_UNUSED)
{
return 0;
}
EAPI void
ECORE_EVAS_API void
ecore_evas_xrender_x11_extra_event_window_add(Ecore_Evas *ee EINA_UNUSED, Ecore_X_Window win EINA_UNUSED)
{
}

View File

@ -15,24 +15,24 @@
#include "Ecore_Evas.h"
#include "ecore_evas_private.h"
EAPI int ECORE_EVAS_EWS_EVENT_MANAGER_CHANGE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_ADD = 0;
EAPI int ECORE_EVAS_EWS_EVENT_DEL = 0;
EAPI int ECORE_EVAS_EWS_EVENT_RESIZE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_MOVE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_SHOW = 0;
EAPI int ECORE_EVAS_EWS_EVENT_HIDE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_FOCUS = 0;
EAPI int ECORE_EVAS_EWS_EVENT_UNFOCUS = 0;
EAPI int ECORE_EVAS_EWS_EVENT_RAISE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_LOWER = 0;
EAPI int ECORE_EVAS_EWS_EVENT_ACTIVATE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_MANAGER_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_ADD = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_DEL = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_RESIZE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_MOVE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_SHOW = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_HIDE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_FOCUS = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_UNFOCUS = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_RAISE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_LOWER = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_ACTIVATE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_ICONIFIED_CHANGE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_MAXIMIZED_CHANGE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_LAYER_CHANGE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_FULLSCREEN_CHANGE = 0;
EAPI int ECORE_EVAS_EWS_EVENT_CONFIG_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_ICONIFIED_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_MAXIMIZED_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_LAYER_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_FULLSCREEN_CHANGE = 0;
ECORE_EVAS_API int ECORE_EVAS_EWS_EVENT_CONFIG_CHANGE = 0;
#ifdef BUILD_ECORE_EVAS_EWS
static int _ecore_evas_init_count = 0;
@ -1091,7 +1091,7 @@ _ecore_evas_ews_cb_hide(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_U
}
#endif
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_ews_new(int x, int y, int w, int h)
{
// basically a copy of ecore_evas_buffer_new() keep in sync...
@ -1263,7 +1263,7 @@ ecore_evas_ews_new(int x, int y, int w, int h)
#endif
}
EAPI Evas_Object *
ECORE_EVAS_API Evas_Object *
ecore_evas_ews_backing_store_get(const Ecore_Evas *ee)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1280,7 +1280,7 @@ ecore_evas_ews_backing_store_get(const Ecore_Evas *ee)
#endif
}
EAPI void
ECORE_EVAS_API void
ecore_evas_ews_delete_request(Ecore_Evas *ee)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1298,7 +1298,7 @@ ecore_evas_ews_delete_request(Ecore_Evas *ee)
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_ews_engine_set(const char *engine, const char *options)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1328,7 +1328,7 @@ ecore_evas_ews_engine_set(const char *engine, const char *options)
#endif
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_ews_setup(int x, int y, int w, int h)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1370,7 +1370,7 @@ ecore_evas_ews_setup(int x, int y, int w, int h)
#endif
}
EAPI Ecore_Evas *
ECORE_EVAS_API Ecore_Evas *
ecore_evas_ews_ecore_evas_get(void)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1381,7 +1381,7 @@ ecore_evas_ews_ecore_evas_get(void)
#endif
}
EAPI Evas *
ECORE_EVAS_API Evas *
ecore_evas_ews_evas_get(void)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1391,7 +1391,7 @@ ecore_evas_ews_evas_get(void)
#endif
}
EAPI Evas_Object *
ECORE_EVAS_API Evas_Object *
ecore_evas_ews_background_get(void)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1410,7 +1410,7 @@ _ecore_evas_ews_background_free(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Eva
}
#endif
EAPI void
ECORE_EVAS_API void
ecore_evas_ews_background_set(Evas_Object *o)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1459,7 +1459,7 @@ ecore_evas_ews_background_set(Evas_Object *o)
}
EAPI const Eina_List *
ECORE_EVAS_API const Eina_List *
ecore_evas_ews_children_get(void)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1469,7 +1469,7 @@ ecore_evas_ews_children_get(void)
#endif
}
EAPI void
ECORE_EVAS_API void
ecore_evas_ews_manager_set(const void *manager)
{
#ifdef BUILD_ECORE_EVAS_EWS
@ -1481,7 +1481,7 @@ ecore_evas_ews_manager_set(const void *manager)
#endif
}
EAPI const void *
ECORE_EVAS_API const void *
ecore_evas_ews_manager_get(void)
{
#ifdef BUILD_ECORE_EVAS_EWS

View File

@ -5,8 +5,8 @@
#include <Ecore.h>
#include "Ecore_Evas.h"
EAPI int ECORE_EVAS_EXTN_CLIENT_ADD = 0;
EAPI int ECORE_EVAS_EXTN_CLIENT_DEL = 0;
ECORE_EVAS_API int ECORE_EVAS_EXTN_CLIENT_ADD = 0;
ECORE_EVAS_API int ECORE_EVAS_EXTN_CLIENT_DEL = 0;
void
_ecore_evas_extn_init(void)

View File

@ -1,41 +1,17 @@
#ifndef _ECORE_EVAS_PRIVATE_H
#define _ECORE_EVAS_PRIVATE_H
#ifdef EAPI
# undef EAPI
#endif
#ifdef _WIN32
# ifdef EFL_BUILD
# ifdef DLL_EXPORT
# define EAPI __declspec(dllexport)
# else
# define EAPI
# endif
# else
# define EAPI __declspec(dllimport)
# endif
#else
# ifdef __GNUC__
# if __GNUC__ >= 4
# define EAPI __attribute__ ((visibility("default")))
# else
# define EAPI
# endif
# else
# define EAPI
# endif
#endif
#include <ecore_evas_api.h>
#define ECORE_MAGIC_EVAS 0x76543211
/** Log domain macros and variables **/
EAPI extern int _ecore_evas_log_dom;
ECORE_EVAS_API extern int _ecore_evas_log_dom;
EAPI extern Eina_Error ecore_evas_no_matching_type;
EAPI extern Eina_Error ecore_evas_no_selection;
EAPI extern Eina_Error ecore_evas_request_replaced;
ECORE_EVAS_API extern Eina_Error ecore_evas_no_matching_type;
ECORE_EVAS_API extern Eina_Error ecore_evas_no_selection;
ECORE_EVAS_API extern Eina_Error ecore_evas_request_replaced;
#ifdef ECORE_EVAS_DEFAULT_LOG_COLOR
# undef ECORE_EVAS_DEFAULT_LOG_COLOR
@ -442,22 +418,22 @@ struct _Ecore_Evas_Aux_Hint
unsigned char notified : 1; // let caller know ee has got response for this aux hint
};
EAPI void _ecore_evas_ref(Ecore_Evas *ee);
EAPI void _ecore_evas_unref(Ecore_Evas *ee);
EAPI int ecore_evas_buffer_render(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_ref(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_unref(Ecore_Evas *ee);
ECORE_EVAS_API int ecore_evas_buffer_render(Ecore_Evas *ee);
EAPI void _ecore_evas_fps_debug_init(void);
EAPI void _ecore_evas_fps_debug_shutdown(void);
EAPI void _ecore_evas_fps_debug_rendertime_add(double t);
EAPI void _ecore_evas_register(Ecore_Evas *ee);
EAPI void _ecore_evas_subregister(Ecore_Evas *ee_target, Ecore_Evas *ee);
EAPI void _ecore_evas_register_animators(Ecore_Evas *ee);
EAPI void _ecore_evas_free(Ecore_Evas *ee);
EAPI void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
EAPI void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);
EAPI void _ecore_evas_mouse_device_move_process(Ecore_Evas *ee, Efl_Input_Device *pointer,
ECORE_EVAS_API void _ecore_evas_fps_debug_init(void);
ECORE_EVAS_API void _ecore_evas_fps_debug_shutdown(void);
ECORE_EVAS_API void _ecore_evas_fps_debug_rendertime_add(double t);
ECORE_EVAS_API void _ecore_evas_register(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_subregister(Ecore_Evas *ee_target, Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_register_animators(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_free(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);
ECORE_EVAS_API void _ecore_evas_mouse_device_move_process(Ecore_Evas *ee, Efl_Input_Device *pointer,
int x, int y, unsigned int timestamp);
EAPI void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
ECORE_EVAS_API void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
int x, int y,
double radius,
double radius_x, double radius_y,
@ -465,7 +441,7 @@ EAPI void _ecore_evas_mouse_multi_move_process(Ecore_Evas *ee, int device,
double angle,
double mx, double my,
unsigned int timestamp);
EAPI void _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
ECORE_EVAS_API void _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
int x, int y,
double radius,
double radius_x, double radius_y,
@ -474,7 +450,7 @@ EAPI void _ecore_evas_mouse_multi_down_process(Ecore_Evas *ee, int device,
double mx, double my,
Evas_Button_Flags flags,
unsigned int timestamp);
EAPI void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
ECORE_EVAS_API void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
int x, int y,
double radius,
double radius_x, double radius_y,
@ -483,26 +459,26 @@ EAPI void _ecore_evas_mouse_multi_up_process(Ecore_Evas *ee, int device,
double mx, double my,
Evas_Button_Flags flags,
unsigned int timestamp);
EAPI Eina_Bool _ecore_evas_input_direct_cb(void *window, int type, const void *info);
ECORE_EVAS_API Eina_Bool _ecore_evas_input_direct_cb(void *window, int type, const void *info);
EAPI extern Eina_Bool _ecore_evas_app_comp_sync;
ECORE_EVAS_API extern Eina_Bool _ecore_evas_app_comp_sync;
EAPI Ecore_Evas_Interface *_ecore_evas_interface_get(const Ecore_Evas *ee, const char *iname);
ECORE_EVAS_API Ecore_Evas_Interface *_ecore_evas_interface_get(const Ecore_Evas *ee, const char *iname);
/**
* @brief Free the string of the window profile.
*
* This is a helper function to free window profile.
*/
EAPI void _ecore_evas_window_profile_free(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_window_profile_free(Ecore_Evas *ee);
/**
* @brief Free the string array of available window profiles.
*
* This is a helper function to free available window profiles.
*/
EAPI void _ecore_evas_window_available_profiles_free(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_window_available_profiles_free(Ecore_Evas *ee);
#ifdef BUILD_ECORE_EVAS_EWS
void _ecore_evas_ews_events_init(void);
@ -513,7 +489,7 @@ int _ecore_evas_ews_shutdown(void);
void _ecore_evas_extn_init(void);
void _ecore_evas_extn_shutdown(void);
EAPI Eina_Strbuf *_ecore_evas_aux_hints_string_get(Ecore_Evas *ee);
ECORE_EVAS_API Eina_Strbuf *_ecore_evas_aux_hints_string_get(Ecore_Evas *ee);
void _ecore_evas_aux_hint_free(Ecore_Evas *ee);
Eina_Module *_ecore_evas_engine_load(const char *engine);
@ -521,32 +497,32 @@ const Eina_List *_ecore_evas_available_engines_get(void);
void _ecore_evas_engine_init(void);
void _ecore_evas_engine_shutdown(void);
EAPI void ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_time);
ECORE_EVAS_API void ecore_evas_animator_tick(Ecore_Evas *ee, Eina_Rectangle *viewport, double loop_time);
Eina_Module *_ecore_evas_vnc_server_module_load(void);
EAPI void _ecore_evas_focus_device_set(Ecore_Evas *ee, Efl_Input_Device *seat,
ECORE_EVAS_API void _ecore_evas_focus_device_set(Ecore_Evas *ee, Efl_Input_Device *seat,
Eina_Bool on);
EAPI Eina_Bool _ecore_evas_mouse_in_check(Ecore_Evas *ee, Efl_Input_Device *mouse);
EAPI void _ecore_evas_mouse_inout_set(Ecore_Evas *ee, Efl_Input_Device *mouse,
ECORE_EVAS_API Eina_Bool _ecore_evas_mouse_in_check(Ecore_Evas *ee, Efl_Input_Device *mouse);
ECORE_EVAS_API void _ecore_evas_mouse_inout_set(Ecore_Evas *ee, Efl_Input_Device *mouse,
Eina_Bool in, Eina_Bool force_out);
EAPI Evas_Object *_ecore_evas_default_cursor_image_get(Ecore_Evas *ee);
EAPI void _ecore_evas_default_cursor_hide(Ecore_Evas *ee);
ECORE_EVAS_API Evas_Object *_ecore_evas_default_cursor_image_get(Ecore_Evas *ee);
ECORE_EVAS_API void _ecore_evas_default_cursor_hide(Ecore_Evas *ee);
Eina_Bool _ecore_evas_cursors_init(Ecore_Evas *ee);
EAPI void ecore_evas_render_wait(Ecore_Evas *ee);
EAPI Eina_Bool ecore_evas_render(Ecore_Evas *ee);
ECORE_EVAS_API void ecore_evas_render_wait(Ecore_Evas *ee);
ECORE_EVAS_API Eina_Bool ecore_evas_render(Ecore_Evas *ee);
EAPI Evas *ecore_evas_evas_new(Ecore_Evas *ee, int w, int h);
EAPI void ecore_evas_done(Ecore_Evas *ee, Eina_Bool single_window);
EAPI void ecore_evas_dnd_mark_motion_used(Ecore_Evas *ee, unsigned int seat);
EAPI Eina_Bool ecore_evas_dnd_position_set(Ecore_Evas *ee, unsigned int seat, Eina_Position2D pos);
EAPI void ecore_evas_dnd_leave(Ecore_Evas *ee, unsigned int seat, Eina_Position2D pos);
EAPI void ecore_evas_dnd_enter(Ecore_Evas *ee, unsigned int seat, Eina_Iterator *available_types, Eina_Position2D pos);
EAPI Eina_Position2D ecore_evas_dnd_pos_get(Ecore_Evas *ee, unsigned int seat);
ECORE_EVAS_API Evas *ecore_evas_evas_new(Ecore_Evas *ee, int w, int h);
ECORE_EVAS_API void ecore_evas_done(Ecore_Evas *ee, Eina_Bool single_window);
ECORE_EVAS_API void ecore_evas_dnd_mark_motion_used(Ecore_Evas *ee, unsigned int seat);
ECORE_EVAS_API Eina_Bool ecore_evas_dnd_position_set(Ecore_Evas *ee, unsigned int seat, Eina_Position2D pos);
ECORE_EVAS_API void ecore_evas_dnd_leave(Ecore_Evas *ee, unsigned int seat, Eina_Position2D pos);
ECORE_EVAS_API void ecore_evas_dnd_enter(Ecore_Evas *ee, unsigned int seat, Eina_Iterator *available_types, Eina_Position2D pos);
ECORE_EVAS_API Eina_Position2D ecore_evas_dnd_pos_get(Ecore_Evas *ee, unsigned int seat);
void fallback_selection_init(Ecore_Evas *ee);
@ -558,8 +534,8 @@ Eina_Bool fallback_dnd_start(Ecore_Evas *ee, unsigned int seat, Eina_Array *avai
Eina_Bool fallback_dnd_stop(Ecore_Evas *ee, unsigned int seat);
#ifdef IPA_YLNO_ESU_LANRETNI_MLE
EAPI Ecore_Evas *_wayland_shm_new(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame);
EAPI Ecore_Evas *_wayland_egl_new(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame, const int *opt);
ECORE_EVAS_API Ecore_Evas *_wayland_shm_new(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame);
ECORE_EVAS_API Ecore_Evas *_wayland_egl_new(const char *disp_name, Ecore_Window parent, int x, int y, int w, int h, Eina_Bool frame, const int *opt);
#else
#define _wayland_shm_new DONT_USE_INTERNAL_API
#define _wayland_egl_new DONT_USE_INTERNAL_API
@ -591,7 +567,4 @@ ecore_evas_render_prepare(Ecore_Evas *ee)
return r;
}
#undef EAPI
#define EAPI
#endif

View File

@ -219,7 +219,7 @@ _ecore_evas_object_evas_check(const char *function EINA_UNUSED, const Ecore_Evas
return 0;
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_object_associate(Ecore_Evas *ee, Evas_Object *obj, Ecore_Evas_Object_Associate_Flags flags)
{
Ecore_Evas *old_ee;
@ -247,7 +247,7 @@ ecore_evas_object_associate(Ecore_Evas *ee, Evas_Object *obj, Ecore_Evas_Object_
return EINA_TRUE;
}
EAPI Eina_Bool
ECORE_EVAS_API Eina_Bool
ecore_evas_object_dissociate(Ecore_Evas *ee, Evas_Object *obj)
{
Ecore_Evas *old_ee;
@ -279,7 +279,7 @@ ecore_evas_object_dissociate(Ecore_Evas *ee, Evas_Object *obj)
return EINA_TRUE;
}
EAPI Evas_Object *
ECORE_EVAS_API Evas_Object *
ecore_evas_object_associate_get(const Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))

View File

@ -35,7 +35,7 @@ ecore_evas_ext_deps += declare_dependency(
ecore_evas_lib = library('ecore_evas',
ecore_evas_src, pub_eo_file_target,
c_args : package_c_args,
c_args : [package_c_args, '-DECORE_EVAS'],
dependencies: ecore_evas_deps + ecore_evas_ext_deps,
include_directories : config_dir,
install: true,