want_ecore_evas_tbm="${have_evas_engine_tbm}"
want_ecore_evas_extn="yes"
want_ecore_evas_drm="${have_evas_engine_drm}"
-want_remote_surface="no"
+want_ecore_evas_extn_gl="${have_evas_engine_wayland_egl}"
if test "x${have_ecore_ipc}" = "xno" || \
test "x${efl_func_shm_open}" = "xno" || \
test "x${have_windows}" = "xyes" ; then
want_ecore_evas_extn="no"
+ want_ecore_evas_extn_gl="no"
fi
-want_remote_surface="${want_ecore_evas_extn}"
build_ecore_evas_tbm="no"
### Checks for programs
EFL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [eo])
EFL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [eina])
EFL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [emile])
-EFL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [ecore-wayland])
+if test "x${want_wayland}" = "xyes"; then
+ EFL_INTERNAL_DEPEND_PKG([ECORE_EVAS], [ecore-wayland])
+fi
+
## modules
ECORE_EVAS_MODULE([extn], [${want_ecore_evas_extn}])
ECORE_EVAS_MODULE([software-sdl], [${want_sdl}])
ECORE_EVAS_MODULE([opengl-sdl], [${want_gl_sdl}])
-ECORE_EVAS_MODULE([tizen-remote-surface-client],[${want_remote_surface}])
+ECORE_EVAS_MODULE([tizen-remote-surface-client],[${want_ecore_evas_extn_gl}])
build_ecore_evas_sdl="no"
if test "x${have_ecore_evas_software_sdl}" = "xyes" || \
AM_CONDITIONAL([BUILD_ECORE_EVAS_WIN32],
[test "${build_ecore_evas_win32}" = "yes"])
-PKG_CHECK_MODULES([TIZEN_REMOTE_SURFACE], [tizen-remote-surface-client])
+build_ecore_evas_extn_gl="no"
+if test "${want_ecore_evas_extn_gl}" = "yes"; then
+ PKG_CHECK_MODULES([TIZEN_REMOTE_SURFACE], [tizen-remote-surface-client],
+ [
+ build_ecore_evas_extn_gl="yes"
+ AC_DEFINE(BUILD_TIZEN_REMOTE_SURFACE, 1, [Support Tizen remote surface])
+ ])
+fi
+AM_CONDITIONAL([BUILD_TIZEN_REMOTE_SURFACE],
+ [test "${build_ecore_evas_extn_gl}" = "yes"])
# XXX TODO: ecore_evas_x11
modules_ecore_evas_engines_extn_module_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
@ECORE_EVAS_CFLAGS@ \
@ECORE_IPC_CFLAGS@ \
-@TIZEN_REMOTE_SURFACE_CFLAGS@ \
-I$(top_srcdir)/src/modules/evas/engines/buffer \
--I$(top_srcdir)/src/modules/evas/engines/wayland_egl \
-I$(top_srcdir)/src/modules/ecore_evas/engines/extn
+
modules_ecore_evas_engines_extn_module_la_LIBADD = \
@USE_ECORE_EVAS_LIBS@ \
@USE_ECORE_IPC_LIBS@ \
-@USE_ECORE_WAYLAND_LIBS@ \
-@TIZEN_REMOTE_SURFACE_LIBS@ \
@SHM_LIBS@
+
modules_ecore_evas_engines_extn_module_la_DEPENDENCIES = \
@USE_ECORE_EVAS_INTERNAL_LIBS@ \
@USE_ECORE_IPC_INTERNAL_LIBS@
modules_ecore_evas_engines_extn_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
modules_ecore_evas_engines_extn_module_la_LIBTOOLFLAGS = --tag=disable-static
+
+if BUILD_TIZEN_REMOTE_SURFACE
+modules_ecore_evas_engines_extn_module_la_CPPFLAGS += \
+@TIZEN_REMOTE_SURFACE_CFLAGS@ \
+-I$(top_srcdir)/src/modules/evas/engines/wayland_egl
+
+modules_ecore_evas_engines_extn_module_la_LIBADD += \
+@USE_ECORE_WAYLAND_LIBS@ \
+@TIZEN_REMOTE_SURFACE_LIBS@
+endif
endif
if BUILD_ECORE_EVAS_X11
static void *_ecore_evas_socket_switch(void *data, void *dest_buf);
/* Tizen Only : Callback function & listener for tizen remote surface */
+
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
// For Provider
static void _ecore_evas_extn_rsp_cb_resource_id(void *data, struct tizen_remote_surface_provider *provider, uint32_t res_id);
static void _ecore_evas_extn_rsp_cb_visibility(void *data, struct tizen_remote_surface_provider *provider, uint32_t visibility);
_ecore_evas_extn_rs_cb_missing,
};
+#endif
/* Tizen Only : --- End */
typedef struct _Extn Extn;
} profile;
/* Tizen Only : for tizen remote surface */
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
struct tizen_remote_surface_provider *tizen_rsp;
struct wayland_tbm_client *tbm_client;
struct tizen_remote_surface *tizen_rs;
uint32_t resource_id;
+#endif
int extn_type_client;
+
/* Tizen Only : --- End */
};
/* Tizen Only : for tizen remote surface */
/* local value for tizen remote manager */
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
struct tizen_remote_surface_manager *tizen_rsm = NULL;
-static int extn_type = EXTN_TYPE_NONE;
struct wl_buffer *pre_buffer; //pre_buffer for tizen remote surface
+#endif
+static int extn_type = EXTN_TYPE_NONE;
/* Tizen Only : Callback function & listener for tizen remote surface */
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
static void _ecore_evas_extn_rsp_cb_resource_id(void *data, struct tizen_remote_surface_provider *provider, uint32_t res_id)
{
/* to get resource id of this remote surface */
return EINA_TRUE;
}
-
+#endif
void
_ecore_evas_extn_type_set(int type)
if( extn_type != EXTN_TYPE_NONE)
return extn_type;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
extn_type = EXTN_TYPE_SHM;
engine = getenv("ECORE_EVAS_EXTN_SOCKET_ENGINE");
else
extn_type = EXTN_TYPE_SHM;
}
+#else
+ extn_type = EXTN_TYPE_SHM;
+#endif
+
return extn_type;
}
evas_object_image_pixels_dirty_set(bdata->image, EINA_TRUE);
}
bdata->pixels = NULL;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if(extn->extn_type_client == EXTN_TYPE_WAYLAND_EGL)
{
extn->resource_id = NULL;
if(tizen_rsm) tizen_remote_surface_manager_destroy(tizen_rsm);
}
else
+#endif
{
for (i = 0; i < NBUF; i++)
{
}
}
break;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
case OP_GL_REF:
{
// save resouce id
extn->extn_type_client = EXTN_TYPE_WAYLAND_EGL;
}
break;
+ #endif
case OP_RESIZE:
if ((e->data) && (e->size >= (int)sizeof(Ipc_Data_Resize)))
{
extn->svc.sys = svcsys;
extn->extn_type_client = EXTN_TYPE_SHM;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
extn->tizen_rs = NULL;
extn->tbm_client = NULL;
+#endif
if (extn->svc.sys) ipctype = ECORE_IPC_LOCAL_SYSTEM;
extn->ipc.server = ecore_ipc_server_connect(ipctype, (char *)extn->svc.name,
evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
extn = bdata->data;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if(_ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL)
{
if ( extn && extn->ipc.clients)
}
}
else if (extn)
+#else
+ if(extn)
+#endif
{
int i, last_try = 0;
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
cur_b = extn->cur_b;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if( _ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL )
{
updates = evas_render_updates(ee->evas);
}
}
else
+#endif
{
if (bdata->pixels)
{
extn->ipc.clients = eina_list_append(extn->ipc.clients, e->client);
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if (_ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL)
{
INF("[EXTN_GL] send resouce id to client ( %dx%d, resource_id:%u)",ee->w,ee->h,extn->resource_id);
0, 0, 0, &ipc, sizeof(ipc));
}
else
+#endif
{
for (i = 0; i < NBUF; i++)
{
extn = bdata->data;
if (extn)
{
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if (_ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL)
{
Evas_Engine_Info_Wayland_Egl *einfo;
}
}
else
+#endif
{
Evas_Engine_Info_Buffer *einfo;
Ecore_Evas *ee;
int rmethod;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
if (_ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL)
{
Ecore_Evas_Engine_Buffer_Data *bdata;
}
}
}
+#endif
if (_ecore_evas_extn_type_get() == EXTN_TYPE_SHM)
{
extn->svc.name = eina_stringshare_add(svcname);
extn->svc.num = svcnum;
extn->svc.sys = svcsys;
- extn->tizen_rsp = NULL;
+#ifdef BUILD_TIZEN_REMOTE_SURFACE
+ extn->tizen_rsp = NULL;
if (_ecore_evas_extn_type_get() == EXTN_TYPE_WAYLAND_EGL)
{
if (extn->svc.sys) ipctype = ECORE_IPC_LOCAL_SYSTEM;
}
}
else
+#endif
{
for (i = 0; i < NBUF; i++)
{