clean up engines - put idle entere handlign in core. same with lists. quyartz

looks broken to me. sdl looks like it could be much more complete - like
multiple sdl windows/instances.

anyway - allow rendering to be manual.



SVN revision: 44938
This commit is contained in:
Carsten Haitzler 2010-01-07 05:29:06 +00:00
parent 288b812d44
commit 30939bf353
11 changed files with 290 additions and 339 deletions

View File

@ -321,6 +321,10 @@ EAPI void ecore_evas_sticky_set(Ecore_Evas *ee, int sticky);
EAPI int ecore_evas_sticky_get(const Ecore_Evas *ee);
EAPI void ecore_evas_ignore_events_set(Ecore_Evas *ee, int ignore);
EAPI int ecore_evas_ignore_events_get(const Ecore_Evas *ee);
EAPI void ecore_evas_manual_render_set(Ecore_Evas *ee, int manual_render);
EAPI int ecore_evas_manual_render_get(const Ecore_Evas *ee);
EAPI void ecore_evas_manual_render(Ecore_Evas *ee);
EAPI Ecore_Window ecore_evas_window_get(const Ecore_Evas *ee);

View File

@ -22,6 +22,40 @@ static int _ecore_evas_init_count = 0;
static Ecore_Fd_Handler *_ecore_evas_async_events_fd = NULL;
static int _ecore_evas_async_events_fd_handler(void *data, Ecore_Fd_Handler *fd_handler);
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
static Ecore_Evas *ecore_evases = NULL;
static int _ecore_evas_fps_debug = 0;
static int
_ecore_evas_idle_enter(void *data __UNUSED__)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
int rend = 0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
{
if (!ee->manual_render)
{
if (ee->engine.func->fn_render)
rend |= ee->engine.func->fn_render(ee);
}
}
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
if (rend)
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
}
return 1;
}
/**
* Query if a particular renginering engine target has support
* @param engine The engine to check support for
@ -178,6 +212,12 @@ ecore_evas_init(void)
ECORE_FD_READ,
_ecore_evas_async_events_fd_handler, NULL,
NULL, NULL);
ecore_evas_idle_enterer =
ecore_idle_enterer_add(_ecore_evas_idle_enter, NULL);
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
return _ecore_evas_init_count;
shutdown_ecore:
@ -197,6 +237,12 @@ ecore_evas_init(void)
EAPI int
ecore_evas_shutdown(void)
{
while (ecore_evases) _ecore_evas_free(ecore_evases);
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
if (--_ecore_evas_init_count != 0)
return _ecore_evas_init_count;
@ -2284,12 +2330,12 @@ EAPI void
ecore_evas_withdrawn_set(Ecore_Evas *ee, int withdrawn)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_withdrawn_set");
return;
}
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_withdrawn_set");
return;
}
IFC(ee, fn_withdrawn_set) (ee, withdrawn);
IFE;
}
@ -2304,12 +2350,12 @@ EAPI int
ecore_evas_withdrawn_get(const Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_withdrawn_get");
return 0;
} else
return ee->prop.withdrawn ? 1:0;
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_withdrawn_get");
return 0;
} else
return ee->prop.withdrawn ? 1:0;
}
/**
@ -2323,12 +2369,12 @@ EAPI void
ecore_evas_sticky_set(Ecore_Evas *ee, int sticky)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_sticky_set");
return;
}
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_sticky_set");
return;
}
IFC(ee, fn_sticky_set) (ee, sticky);
IFE;
}
@ -2344,12 +2390,12 @@ EAPI int
ecore_evas_sticky_get(const Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_sticky_get");
return 0;
} else
return ee->prop.sticky ? 1:0;
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_sticky_get");
return 0;
} else
return ee->prop.sticky ? 1:0;
}
/**
@ -2363,12 +2409,12 @@ EAPI void
ecore_evas_ignore_events_set(Ecore_Evas *ee, int ignore)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_ignore_events_set");
return;
}
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_ignore_events_set");
return;
}
IFC(ee, fn_ignore_events_set) (ee, ignore);
IFE;
}
@ -2384,12 +2430,49 @@ EAPI int
ecore_evas_ignore_events_get(const Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_ignore_events_get");
return 0;
} else
return ee->ignore_events ? 1 : 0;
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_ignore_events_get");
return 0;
}
return ee->ignore_events ? 1 : 0;
}
EAPI void
ecore_evas_manual_render_set(Ecore_Evas *ee, int manual_render)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_manual_render_set");
return;
}
ee->manual_render = manual_render;
}
EAPI int
ecore_evas_manual_render_get(const Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_manual_render_get");
return 0;
}
return ee->manual_render ? 1 : 0;
}
EAPI void
ecore_evas_manual_render(Ecore_Evas *ee)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_manual_render");
return;
}
if (ee->engine.func->fn_render)
ee->engine.func->fn_render(ee);
}
EAPI Ecore_Window
@ -2491,6 +2574,14 @@ _ecore_evas_fps_debug_rendertime_add(double t)
}
}
void
_ecore_evas_register(Ecore_Evas *ee)
{
ee->registered = 1;
ecore_evases = (Ecore_Evas *)eina_inlist_prepend
(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
}
void
_ecore_evas_free(Ecore_Evas *ee)
{
@ -2518,6 +2609,11 @@ _ecore_evas_free(Ecore_Evas *ee)
if (ee->engine.idle_flush_timer)
ecore_timer_del(ee->engine.idle_flush_timer);
if (ee->engine.func->fn_free) ee->engine.func->fn_free(ee);
if (ee->registered)
{
ecore_evases = (Ecore_Evas *)eina_inlist_remove
(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
}
free(ee);
}

View File

@ -12,17 +12,11 @@
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static Ecore_Evas *ecore_evases = NULL;
static int
_ecore_evas_buffer_init(void)
{
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
return _ecore_evas_init_count;
}
@ -39,8 +33,6 @@ _ecore_evas_buffer_free(Ecore_Evas *ee)
}
else
{
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
free(ee->engine.buffer.pixels);
}
_ecore_evas_buffer_shutdown();
@ -91,11 +83,6 @@ _ecore_evas_buffer_shutdown(void)
_ecore_evas_init_count--;
if (_ecore_evas_init_count == 0)
{
while (ecore_evases)
{
_ecore_evas_free(ecore_evases);
}
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
}
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
return _ecore_evas_init_count;
@ -372,7 +359,7 @@ _ecore_evas_buffer_cb_hide(void *data, Evas *e __UNUSED__, Evas_Object *obj __UN
if (ee->func.fn_hide) ee->func.fn_hide(ee);
}
static const Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
static Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
{
_ecore_evas_buffer_free,
NULL,
@ -418,7 +405,9 @@ static const Ecore_Evas_Engine_Func _ecore_buffer_engine_func =
NULL,
NULL,
NULL,
NULL
NULL,
NULL // render
};
#endif
@ -499,7 +488,9 @@ ecore_evas_buffer_new(int w, int h)
evas_event_feed_mouse_in(ee->evas, 0, NULL);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_buffer_render;
_ecore_evas_register(ee);
return ee;
#else
return NULL;
@ -636,6 +627,9 @@ ecore_evas_object_image_new(Ecore_Evas *ee_target)
evas_key_lock_add(ee->evas, "Scroll_Lock");
ee_target->sub_ecore_evas = eina_list_append(ee_target->sub_ecore_evas, ee);
ee->engine.func->fn_render = _ecore_evas_buffer_render;
return o;
#else
return NULL;

View File

@ -19,14 +19,10 @@
#ifdef BUILD_ECORE_EVAS_DIRECTFB
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static Ecore_Event_Handler *ecore_evas_event_handlers[13];
static Ecore_Evas *ecore_evases = NULL;
static Eina_Hash *ecore_evases_hash = NULL;
static Ecore_Idle_Enterer *ecore_evas_directfb_idle_enterer = NULL;
static void
_ecore_evas_directfb_render(Ecore_Evas *ee)
{
@ -51,28 +47,6 @@ _ecore_evas_directfb_render(Ecore_Evas *ee)
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
static int
_ecore_evas_directfb_idle_enter(void *data __UNUSED__)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
_ecore_evas_directfb_render(ee);
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
}
return 1;
}
static char *
_ecore_evas_directfb_winid_str_get(Ecore_X_Window win)
{
@ -258,12 +232,8 @@ _ecore_evas_directfb_shutdown(void)
{
int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < 8; i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_idle_enterer_del(ecore_evas_directfb_idle_enterer);
ecore_evas_directfb_idle_enterer = NULL;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
}
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
return _ecore_evas_init_count;
@ -278,9 +248,6 @@ _ecore_evas_directfb_init(void)
{
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
ecore_evas_directfb_idle_enterer = ecore_idle_enterer_add(_ecore_evas_directfb_idle_enter, NULL);
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_DOWN, _ecore_evas_directfb_event_key_down, NULL);
ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_DIRECTFB_EVENT_KEY_UP, _ecore_evas_directfb_event_key_up, NULL);
@ -307,7 +274,6 @@ _ecore_evas_directfb_free(Ecore_Evas *ee)
{
eina_hash_del(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);
ecore_directfb_window_free(ee->engine.directfb.window);
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
_ecore_evas_directfb_shutdown();
ecore_directfb_shutdown();
}
@ -469,7 +435,7 @@ _ecore_evas_directfb_window_get(const Ecore_Evas *ee)
#endif
#ifdef BUILD_ECORE_EVAS_DIRECTFB
static const Ecore_Evas_Engine_Func _ecore_directfb_engine_func =
static Ecore_Evas_Engine_Func _ecore_directfb_engine_func =
{
_ecore_evas_directfb_free, /* free an ecore_evas */
NULL, /* cb resize */
@ -515,7 +481,9 @@ static const Ecore_Evas_Engine_Func _ecore_directfb_engine_func =
NULL, /* withdrawn */
NULL, /* sticky */
NULL, /* ignore events */
NULL /* alpha */
NULL, /* alpha */
NULL // render
};
#endif
@ -572,7 +540,10 @@ ecore_evas_directfb_new(const char *disp_name, int windowed, int x, int y, int w
einfo->info.surface = window->surface;
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
}
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_directfb_render;
_ecore_evas_register(ee);
if (!ecore_evases_hash)
ecore_evases_hash = eina_hash_string_superfast_new(NULL);
eina_hash_add(ecore_evases_hash, _ecore_evas_directfb_winid_str_get(ee->engine.directfb.window->id), ee);

View File

@ -22,12 +22,9 @@
#ifdef BUILD_ECORE_EVAS_FB
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static char *ecore_evas_default_display = "0";
static Eina_List *ecore_evas_input_devices = NULL;
static Ecore_Evas *ecore_evases = NULL;
static Ecore_Event_Handler *ecore_evas_event_handlers[6] = {NULL, NULL, NULL, NULL, NULL, NULL};
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
static void
_ecore_evas_mouse_move_process_fb(Ecore_Evas *ee, int x, int y, unsigned int timestamp)
@ -67,10 +64,12 @@ _ecore_evas_mouse_move_process_fb(Ecore_Evas *ee, int x, int y, unsigned int tim
evas_event_feed_mouse_move(ee->evas, y, (fbw - ee->w) + ee->w - x - 1, timestamp, NULL);
}
static Ecore_Evas *fb_ee = NULL;
static Ecore_Evas *
_ecore_evas_fb_match(void)
{
return ecore_evases;
return fb_ee;
}
static void
@ -80,8 +79,7 @@ _ecore_evas_fb_lose(void *data __UNUSED__)
Eina_List *ll;
Ecore_Fb_Input_Device *dev;
EINA_INLIST_FOREACH(ecore_evases, ee)
ee->visible = 0;
if (fb_ee) fb_ee->visible = 0;
EINA_LIST_FOREACH(ecore_evas_input_devices, ll, dev)
ecore_fb_input_device_listen(dev, 0);
@ -94,8 +92,10 @@ _ecore_evas_fb_gain(void *data __UNUSED__)
Eina_List *ll;
Ecore_Fb_Input_Device *dev;
EINA_INLIST_FOREACH(ecore_evases,ee)
if (fb_ee)
{
ee = fb_ee;
ee->visible = 1;
if ((ee->rotation == 90) || (ee->rotation == 270))
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
@ -191,53 +191,39 @@ _ecore_evas_event_mouse_wheel(void *data __UNUSED__, int type __UNUSED__, void *
}
static int
_ecore_evas_idle_enter(void *data __UNUSED__)
_ecore_evas_fb_render(Ecore_Evas *ee)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
int rend = 0;
if (ee->visible)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
{
if (ee->visible)
{
Eina_List *updates;
Eina_List *updates;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
Ecore_Evas *ee2;
Eina_List *ll;
Ecore_Evas *ee2;
#endif
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif
updates = evas_render_updates(ee->evas);
if (updates)
{
evas_render_updates_free(updates);
_ecore_evas_idle_timeout_update(ee);
}
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
else
evas_norender(ee->evas);
updates = evas_render_updates(ee->evas);
if (updates)
{
evas_render_updates_free(updates);
_ecore_evas_idle_timeout_update(ee);
rend = 1;
}
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
}
return 1;
else
evas_norender(ee->evas);
return rend;
}
static int
@ -254,9 +240,6 @@ _ecore_evas_fb_init(int w, int h)
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_idle_enter, NULL);
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
/* register all input devices */
input_dir = opendir("/dev/input/");
if (!input_dir) return _ecore_evas_init_count;
@ -322,7 +305,7 @@ _ecore_evas_fb_init(int w, int h)
static void
_ecore_evas_fb_free(Ecore_Evas *ee)
{
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
if (fb_ee == ee) fb_ee = NULL;
_ecore_evas_fb_shutdown();
ecore_fb_shutdown();
}
@ -521,19 +504,15 @@ _ecore_evas_fb_shutdown(void)
{
int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < 5; i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
ecore_fb_ts_shutdown();
}
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
return _ecore_evas_init_count;
}
static const Ecore_Evas_Engine_Func _ecore_fb_engine_func =
static Ecore_Evas_Engine_Func _ecore_fb_engine_func =
{
_ecore_evas_fb_free,
NULL,
@ -579,7 +558,9 @@ static const Ecore_Evas_Engine_Func _ecore_fb_engine_func =
NULL,
NULL,
NULL,
NULL
NULL,
NULL // render
};
#endif
@ -673,7 +654,10 @@ ecore_evas_fb_new(const char *disp_name, int rotation, int w, int h)
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_buffer_render;
_ecore_evas_register(ee);
fb_ee = ee;
return ee;
}
#else

View File

@ -183,6 +183,8 @@ struct _Ecore_Evas_Engine_Func
void (*fn_sticky_set) (Ecore_Evas *ee, int sticky);
void (*fn_ignore_events_set) (Ecore_Evas *ee, int ignore);
void (*fn_alpha_set) (Ecore_Evas *ee, int alpha);
int (*fn_render) (Ecore_Evas *ee);
};
struct _Ecore_Evas_Engine
@ -331,6 +333,8 @@ struct _Ecore_Evas
Eina_List *sub_ecore_evas;
unsigned char ignore_events : 1;
unsigned char manual_render : 1;
unsigned char registered : 1;
};
#ifdef BUILD_ECORE_EVAS_X11
@ -356,6 +360,7 @@ int _ecore_evas_wince_shutdown(void);
void _ecore_evas_fps_debug_init(void);
void _ecore_evas_fps_debug_shutdown(void);
void _ecore_evas_fps_debug_rendertime_add(double t);
void _ecore_evas_register(Ecore_Evas *ee);
void _ecore_evas_free(Ecore_Evas *ee);
void _ecore_evas_idle_timeout_update(Ecore_Evas *ee);
void _ecore_evas_mouse_move_process(Ecore_Evas *ee, int x, int y, unsigned int timestamp);

View File

@ -21,6 +21,8 @@
#include "Ecore_Quartz.h"
#include "Evas_Engine_Quartz.h"
// FIXME: this engine has lots of problems. only 1 window at a time, drawRect looks wrong, doesnt handle resizes and more
static int _ecore_evas_init_count = 0;
static Ecore_Evas *ecore_evases = NULL;
static Ecore_Event_Handler *ecore_evas_event_handlers[4] = {
@ -292,7 +294,7 @@ _ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int h
evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _ecore_evas_object_cursor_del, ee);
}
static const Ecore_Evas_Engine_Func _ecore_quartz_engine_func =
static Ecore_Evas_Engine_Func _ecore_quartz_engine_func =
{
_ecore_evas_quartz_free,
NULL,
@ -336,7 +338,9 @@ static const Ecore_Evas_Engine_Func _ecore_quartz_engine_func =
NULL,
NULL,
NULL,
NULL
NULL,
NULL // render
};
#endif

View File

@ -16,28 +16,26 @@
#include "ecore_evas_private.h"
#include "Ecore_Evas.h"
// fixme: 1 sdl window only at a time? seems wrong
#ifdef BUILD_ECORE_EVAS_SOFTWARE_SDL
/* static char *ecore_evas_default_display = "0"; */
/* static Ecore_List *ecore_evas_input_devices = NULL; */
static int _ecore_evas_init_count = 0;
#ifndef _WIN32
static int _ecore_evas_fps_debug = 0;
#endif /* _WIN32 */
static Ecore_Evas *ecore_evases = NULL;
static Ecore_Evas *sdl_ee = NULL;
static Ecore_Event_Handler *ecore_evas_event_handlers[4] = {
NULL, NULL, NULL, NULL
};
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
static Ecore_Poller *ecore_evas_event = NULL;
static const char *ecore_evas_sdl_default = "EFL SDL";
static Ecore_Evas *
_ecore_evas_sdl_match(void)
{
return ecore_evases;
return sdl_ee;
}
static int
@ -99,7 +97,7 @@ _ecore_evas_sdl_event_video_expose(void *data __UNUSED__, int type __UNUSED__, v
return 0;
}
static void
static int
_ecore_evas_render(Ecore_Evas *ee)
{
Eina_List *updates;
@ -110,63 +108,44 @@ _ecore_evas_render(Ecore_Evas *ee)
evas_render_updates_free(updates);
_ecore_evas_idle_timeout_update(ee);
}
return (int)updates;
}
static int
_ecore_evas_idle_enter(void *data __UNUSED__)
ecore_evas_sdl_render(Ecore_Evas *ee)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
if (!ecore_evases) return 1;
#ifndef _WIN32
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
#endif /* _WIN32 */
EINA_INLIST_FOREACH(ecore_evases, ee)
{
int rend = 0;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
Ecore_Evas *ee2;
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
if (ee->prop.avoid_damage) _ecore_evas_render(ee);
else if ((ee->visible) ||
((ee->should_be_visible) && (ee->prop.fullscreen)) ||
((ee->should_be_visible) && (ee->prop.override)))
_ecore_evas_render(ee);
else
evas_norender(ee->evas);
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
#ifndef _WIN32
if (_ecore_evas_fps_debug)
Eina_List *ll;
Ecore_Evas *ee2;
EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2)
{
t2 = ecore_time_get();
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2);
_ecore_evas_buffer_render(ee2);
if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2);
}
#endif /* _WIN32 */
return 1;
#endif
if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
if (ee->prop.avoid_damage) rend = _ecore_evas_render(ee);
else if ((ee->visible) ||
((ee->should_be_visible) && (ee->prop.fullscreen)) ||
((ee->should_be_visible) && (ee->prop.override)))
rend = _ecore_evas_render(ee);
else
evas_norender(ee->evas);
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
return rend;
}
static int
_ecore_evas_sdl_event(void *data __UNUSED__)
{
ecore_sdl_feed_events();
return 1;
}
@ -179,7 +158,10 @@ _ecore_evas_sdl_init(int w __UNUSED__, int h __UNUSED__)
#ifndef _WIN32
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
#endif /* _WIN32 */
ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_idle_enter, NULL);
// this is pretty bad: poller? and set poll time? pol time is meant to be
// adjustable for things like polling battery state, or amoutn of spare
// memory etc.
//
ecore_evas_event = ecore_poller_add(ECORE_POLLER_CORE, 1, _ecore_evas_sdl_event, NULL);
ecore_poller_poll_interval_set(ECORE_POLLER_CORE, 0.006);
#ifndef _WIN32
@ -204,13 +186,9 @@ _ecore_evas_sdl_shutdown(void)
{
int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < sizeof (ecore_evas_event_handlers) / sizeof (Ecore_Event_Handler*); i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_event_evas_shutdown();
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
ecore_poller_del(ecore_evas_event);
ecore_evas_event = NULL;
#ifndef _WIN32
@ -224,7 +202,8 @@ _ecore_evas_sdl_shutdown(void)
static void
_ecore_evas_sdl_free(Ecore_Evas *ee)
{
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
if (sdl_ee == ee) sdl_ee = NULL;
ecore_event_window_unregister(0);
_ecore_evas_sdl_shutdown();
ecore_sdl_shutdown();
@ -300,7 +279,7 @@ _ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int h
evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _ecore_evas_object_cursor_del, ee);
}
static const Ecore_Evas_Engine_Func _ecore_sdl_engine_func =
static Ecore_Evas_Engine_Func _ecore_sdl_engine_func =
{
_ecore_evas_sdl_free,
NULL,
@ -346,7 +325,9 @@ static const Ecore_Evas_Engine_Func _ecore_sdl_engine_func =
NULL,
NULL,
NULL,
NULL
NULL,
NULL // render
};
static Ecore_Evas*
@ -423,7 +404,11 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
SDL_ShowCursor(SDL_DISABLE);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_sdl_render;
_ecore_evas_register(ee);
sdl_ee = ee;
return ee;
}
#endif

View File

@ -26,11 +26,8 @@
#define ECORE_EVAS_EVENT_COUNT 8
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static Ecore_Event_Handler *ecore_evas_event_handlers[ECORE_EVAS_EVENT_COUNT];
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
static Ecore_Evas *ecore_evases = NULL;
static int _ecore_evas_win32_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
@ -50,10 +47,11 @@ static int _ecore_evas_win32_event_window_delete_request(void *data __UNUSED__,
/* Private functions */
static void
static int
_ecore_evas_win32_render(Ecore_Evas *ee)
{
Eina_List *updates;
int rend = 0;
Eina_List *updates = NULL;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
Ecore_Evas *ee2;
@ -88,31 +86,9 @@ _ecore_evas_win32_render(Ecore_Evas *ee)
}
else
evas_norender(ee->evas);
if (updates) rend = 1;
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
static int
_ecore_evas_win32_idle_enter(void *data __UNUSED__)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
_ecore_evas_win32_render(ee);
/* ecore_x_flush(); */
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
/* _ecore_evas_fps_debug_rendertime_add(t2 - t1); */
}
return 1;
return rend;
}
static int
@ -121,12 +97,7 @@ _ecore_evas_win32_init(void)
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1)
return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG"))
_ecore_evas_fps_debug = 1;
ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_win32_idle_enter, NULL);
ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_WIN32_EVENT_MOUSE_IN, _ecore_evas_win32_event_mouse_in, NULL);
ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_WIN32_EVENT_MOUSE_OUT, _ecore_evas_win32_event_mouse_out, NULL);
ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_WIN32_EVENT_WINDOW_DAMAGE, _ecore_evas_win32_event_window_damage, NULL);
@ -148,11 +119,8 @@ _ecore_evas_win32_shutdown(void)
{
int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < ECORE_EVAS_EVENT_COUNT; i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
ecore_event_evas_shutdown();
}
@ -401,7 +369,6 @@ _ecore_evas_win32_free(Ecore_Evas *ee)
ecore_win32_window_free((struct _Ecore_Win32_Window *)ee->prop.window);
ecore_event_window_unregister(ee->prop.window);
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
_ecore_evas_win32_shutdown();
ecore_win32_shutdown();
}
@ -835,7 +802,7 @@ _ecore_evas_win32_fullscreen_set(Ecore_Evas *ee, int on)
}
static const Ecore_Evas_Engine_Func _ecore_win32_engine_func =
static Ecore_Evas_Engine_Func _ecore_win32_engine_func =
{
_ecore_evas_win32_free,
NULL,
@ -881,7 +848,9 @@ static const Ecore_Evas_Engine_Func _ecore_win32_engine_func =
NULL, /* _ecore_evas_x_withdrawn_set */
NULL, /* _ecore_evas_x_sticky_set */
NULL, /* _ecore_evas_x_ignore_events_set */
NULL /* _ecore_evas_x_alpha_set */
NULL, /* _ecore_evas_x_alpha_set */
NULL // render
};
#endif /* BUILD_ECORE_EVAS_WIN32 */
@ -1108,9 +1077,10 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_init)(Ecore_Evas *ee),
return NULL;
}
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_win32_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, _ecore_evas_mouse_move_process);
return ee;
}

View File

@ -26,11 +26,8 @@
#define ECORE_EVAS_EVENT_COUNT 7
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static Ecore_Event_Handler *ecore_evas_event_handlers[ECORE_EVAS_EVENT_COUNT];
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
static Ecore_Evas *ecore_evases = NULL;
static int _ecore_evas_wince_event_mouse_in(void *data __UNUSED__, int type __UNUSED__, void *event);
@ -48,9 +45,10 @@ static int _ecore_evas_wince_event_window_delete_request(void *data __UNUSED__,
/* Private functions */
static void
static int
_ecore_evas_wince_render(Ecore_Evas *ee)
{
int rend = 0;
Eina_List *updates = NULL;
#ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER
Eina_List *ll;
@ -86,30 +84,9 @@ _ecore_evas_wince_render(Ecore_Evas *ee)
}
else
evas_norender(ee->evas);
if (updates) rend = 1;
if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
}
static int
_ecore_evas_wince_idle_enter(void *data __UNUSED__)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
_ecore_evas_wince_render(ee);
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
}
return 1;
return rend;
}
static int
@ -118,12 +95,7 @@ _ecore_evas_wince_init(void)
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1)
return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG"))
_ecore_evas_fps_debug = 1;
ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_wince_idle_enter, NULL);
ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_WINCE_EVENT_MOUSE_IN, _ecore_evas_wince_event_mouse_in, NULL);
ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_WINCE_EVENT_MOUSE_OUT, _ecore_evas_wince_event_mouse_out, NULL);
ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_WINCE_EVENT_WINDOW_DAMAGE, _ecore_evas_wince_event_window_damage, NULL);
@ -132,8 +104,6 @@ _ecore_evas_wince_init(void)
ecore_evas_event_handlers[5] = ecore_event_handler_add(ECORE_WINCE_EVENT_WINDOW_HIDE, _ecore_evas_wince_event_window_hide, NULL);
ecore_evas_event_handlers[6] = ecore_event_handler_add(ECORE_WINCE_EVENT_WINDOW_DELETE_REQUEST, _ecore_evas_wince_event_window_delete_request, NULL);
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
ecore_event_evas_init();
return _ecore_evas_init_count;
}
@ -146,12 +116,8 @@ _ecore_evas_wince_shutdown(void)
{
int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < ECORE_EVAS_EVENT_COUNT; i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
ecore_event_evas_shutdown();
}
@ -708,7 +674,7 @@ _ecore_evas_wince_fullscreen_set(Ecore_Evas *ee, int on)
}
}
static const Ecore_Evas_Engine_Func _ecore_wince_engine_func =
static Ecore_Evas_Engine_Func _ecore_wince_engine_func =
{
_ecore_evas_wince_free,
NULL,
@ -754,7 +720,9 @@ static const Ecore_Evas_Engine_Func _ecore_wince_engine_func =
NULL, /* _ecore_evas_x_withdrawn_set */
NULL, /* _ecore_evas_x_sticky_set */
NULL, /* _ecore_evas_x_ignore_events_set */
NULL /* _ecore_evas_x_alpha_set */
NULL, /* _ecore_evas_x_alpha_set */
NULL // render
};
/* API */
@ -848,7 +816,8 @@ ecore_evas_software_wince_new_internal(int backend,
ecore_wince_window_resume_set((Ecore_WinCE_Window *)ee->prop.window, einfo->func.resume);
}
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_wince_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process);
return ee;

View File

@ -21,11 +21,7 @@
#ifdef BUILD_ECORE_EVAS_X11
static int _ecore_evas_init_count = 0;
static int _ecore_evas_fps_debug = 0;
static Ecore_Evas *ecore_evases = NULL;
static Ecore_Event_Handler *ecore_evas_event_handlers[12];
static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL;
#ifdef HAVE_ECORE_X_XCB
static xcb_visualtype_t *
@ -997,38 +993,11 @@ _ecore_evas_x_layer_update(Ecore_Evas *ee)
/* FIXME: Set gnome layer */
}
static int
_ecore_evas_x_idle_enter(void *data __UNUSED__)
{
Ecore_Evas *ee;
double t1 = 0.0;
double t2 = 0.0;
int rend = 0;
if (!ecore_evases) return 1;
if (_ecore_evas_fps_debug)
{
t1 = ecore_time_get();
}
EINA_INLIST_FOREACH(ecore_evases, ee)
rend |= _ecore_evas_x_render(ee);
ecore_x_flush();
if (_ecore_evas_fps_debug)
{
t2 = ecore_time_get();
if (rend)
_ecore_evas_fps_debug_rendertime_add(t2 - t1);
}
return 1;
}
static int
_ecore_evas_x_init(void)
{
_ecore_evas_init_count++;
if (_ecore_evas_init_count > 1) return _ecore_evas_init_count;
if (getenv("ECORE_EVAS_FPS_DEBUG")) _ecore_evas_fps_debug = 1;
ecore_evas_idle_enterer = ecore_idle_enterer_add(_ecore_evas_x_idle_enter, NULL);
ecore_evas_event_handlers[0] = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_IN, _ecore_evas_x_event_mouse_in, NULL);
ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_X_EVENT_MOUSE_OUT, _ecore_evas_x_event_mouse_out, NULL);
ecore_evas_event_handlers[2] = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, _ecore_evas_x_event_window_focus_in, NULL);
@ -1042,7 +1011,6 @@ _ecore_evas_x_init(void)
ecore_evas_event_handlers[10] = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_PROPERTY, _ecore_evas_x_event_property_change, NULL);
ecore_evas_event_handlers[11] = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_VISIBILITY_CHANGE, _ecore_evas_x_event_visibility_change, NULL);
ecore_event_evas_init();
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_init();
return _ecore_evas_init_count;
}
@ -1058,7 +1026,7 @@ _ecore_evas_x_free(Ecore_Evas *ee)
ee->engine.x.mask = 0;
ee->engine.x.gc = 0;
ee->engine.x.damages = NULL;
ecore_event_window_unregister(ee->prop.window);
ecore_event_window_unregister(ee->prop.window);
while (ee->engine.x.win_extra)
{
Ecore_X_Window *winp;
@ -1068,7 +1036,6 @@ _ecore_evas_x_free(Ecore_Evas *ee)
ecore_event_window_unregister(*winp);
free(winp);
}
ecore_evases = (Ecore_Evas *) eina_inlist_remove(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
_ecore_evas_x_shutdown();
ecore_x_shutdown();
}
@ -2179,19 +2146,15 @@ _ecore_evas_x_shutdown(void)
{
unsigned int i;
while (ecore_evases) _ecore_evas_free(ecore_evases);
for (i = 0; i < sizeof(ecore_evas_event_handlers) / sizeof(Ecore_Event_Handler*); i++)
ecore_event_handler_del(ecore_evas_event_handlers[i]);
ecore_idle_enterer_del(ecore_evas_idle_enterer);
ecore_evas_idle_enterer = NULL;
if (_ecore_evas_fps_debug) _ecore_evas_fps_debug_shutdown();
ecore_event_evas_shutdown();
}
if (_ecore_evas_init_count < 0) _ecore_evas_init_count = 0;
return _ecore_evas_init_count;
}
static const Ecore_Evas_Engine_Func _ecore_x_engine_func =
static Ecore_Evas_Engine_Func _ecore_x_engine_func =
{
_ecore_evas_x_free,
NULL,
@ -2237,7 +2200,9 @@ static const Ecore_Evas_Engine_Func _ecore_x_engine_func =
_ecore_evas_x_withdrawn_set,
_ecore_evas_x_sticky_set,
_ecore_evas_x_ignore_events_set,
_ecore_evas_x_alpha_set
_ecore_evas_x_alpha_set,
NULL // render
};
#endif /* BUILD_ECORE_EVAS_X11 */
@ -2485,7 +2450,8 @@ ecore_evas_software_x11_new(const char *disp_name, Ecore_X_Window parent,
0 /* window_group */,
0 /* is_urgent */);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}
@ -2674,7 +2640,8 @@ ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent,
0 /* window_group */,
0 /* is_urgent */);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
# endif /* HAVE_ECORE_X_XCB */
@ -2922,7 +2889,8 @@ ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent,
0 /* window_group */,
0 /* is_urgent */);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}
@ -3134,7 +3102,8 @@ ecore_evas_software_x11_16_new(const char *disp_name, Ecore_X_Window parent,
0 /* window_group */,
0 /* is_urgent */);
ecore_evases = (Ecore_Evas *) eina_inlist_prepend(EINA_INLIST_GET(ecore_evases), EINA_INLIST_GET(ee));
ee->engine.func->fn_render = _ecore_evas_x_render;
_ecore_evas_register(ee);
ecore_event_window_register(ee->prop.window, ee, ee->evas, (Ecore_Event_Mouse_Move_Cb) _ecore_evas_mouse_move_process);
return ee;
}