forked from enlightenment/efl
ecore_evas: refactor logic for creating Ecore_Evas.
This commit is contained in:
parent
94433af83a
commit
a44697c37a
|
@ -3746,12 +3746,7 @@ ecore_evas_sub_ecore_evas_list_get(const Ecore_Evas *ee)
|
|||
EAPI void
|
||||
ecore_evas_input_event_register(Ecore_Evas *ee)
|
||||
{
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set((Ecore_Window)ee, _ecore_evas_input_direct_cb);
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
@ -5089,3 +5084,45 @@ ecore_evas_callback_device_mouse_in_set(Ecore_Evas *ee,
|
|||
IFE;
|
||||
ee->func.fn_device_mouse_in = func;
|
||||
}
|
||||
|
||||
EAPI Evas *
|
||||
ecore_evas_evas_new(Ecore_Evas *ee, int w, int h)
|
||||
{
|
||||
Evas *e;
|
||||
|
||||
if (ee->evas) return ee->evas;
|
||||
|
||||
e = evas_new();
|
||||
if (!e) return NULL;
|
||||
|
||||
ee->evas = e;
|
||||
evas_data_attach_set(e, ee);
|
||||
|
||||
if (ECORE_EVAS_PORTRAIT(ee))
|
||||
{
|
||||
evas_output_size_set(e, w, h);
|
||||
evas_output_viewport_set(e, 0, 0, w, h);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_output_size_set(e, h, w);
|
||||
evas_output_viewport_set(e, 0, 0, h, w);
|
||||
}
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
ecore_evas_done(Ecore_Evas *ee, Eina_Bool single_window)
|
||||
{
|
||||
_ecore_evas_register(ee);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
|
||||
if (single_window)
|
||||
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
|
||||
}
|
||||
|
|
|
@ -487,6 +487,9 @@ 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);
|
||||
|
||||
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);
|
||||
|
||||
static inline Eina_Bool
|
||||
ecore_evas_render_prepare(Ecore_Evas *ee)
|
||||
{
|
||||
|
|
|
@ -561,16 +561,12 @@ ecore_evas_cocoa_new_internal(Ecore_Cocoa_Window *parent EINA_UNUSED, int x, int
|
|||
ee->prop.withdrawn = EINA_TRUE;
|
||||
ee->can_async_render = EINA_FALSE;
|
||||
|
||||
ee->evas = evas_new();
|
||||
ecore_evas_evas_new(ee, w, h);
|
||||
INF("ecore_evas: %p, evas: %p", ee, ee->evas);
|
||||
|
||||
if (!ee->evas)
|
||||
goto free_name;
|
||||
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
ee->prop.window = (Ecore_Window)ecore_cocoa_window_new(x, y, w, h);
|
||||
|
||||
if (!ee->prop.window)
|
||||
|
@ -600,15 +596,7 @@ ecore_evas_cocoa_new_internal(Ecore_Cocoa_Window *parent EINA_UNUSED, int x, int
|
|||
iface->window_get = _ecore_evas_cocoa_window_get;
|
||||
ee->engine.ifaces = eina_list_append(ee->engine.ifaces, iface);
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
|
||||
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
|
||||
ecore_evas_done(ee, EINA_TRUE);
|
||||
|
||||
return ee;
|
||||
|
||||
|
|
|
@ -1027,11 +1027,13 @@ _ecore_evas_new_internal(const char *device, int x, int y, int w, int h, Eina_Bo
|
|||
if (getenv("ECORE_EVAS_FORCE_SYNC_RENDER"))
|
||||
ee->can_async_render = 0;
|
||||
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create a Canvas.");
|
||||
goto eng_err;
|
||||
}
|
||||
|
||||
evas_output_method_set(ee->evas, method);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
if (ee->can_async_render)
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
|
@ -1086,13 +1088,7 @@ _ecore_evas_new_internal(const char *device, int x, int y, int w, int h, Eina_Bo
|
|||
|
||||
ecore_evas_data_set(ee, "device", edata->dev);
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
ecore_drm2_output_info_get(edata->output, NULL, NULL, &mw, &mh, NULL);
|
||||
|
||||
|
|
|
@ -2155,11 +2155,13 @@ ecore_evas_extn_socket_new_internal(int w, int h)
|
|||
ee->prop.sticky = EINA_FALSE;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Failed to create the canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST, _ecore_evas_ews_update_image, ee);
|
||||
|
||||
einfo = (Evas_Engine_Info_Buffer *)evas_engine_info_get(ee->evas);
|
||||
|
|
|
@ -616,23 +616,17 @@ ecore_evas_fb_new_internal(const char *disp_name, int rotation, int w, int h)
|
|||
ee->prop.fullscreen = EINA_FALSE;
|
||||
ee->prop.withdrawn = EINA_TRUE;
|
||||
ee->prop.sticky = EINA_FALSE;
|
||||
ee->prop.window = 1;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Could not create the canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
|
||||
if (ECORE_EVAS_PORTRAIT(ee))
|
||||
{
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_output_size_set(ee->evas, h, w);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, h, w);
|
||||
}
|
||||
|
||||
einfo = (Evas_Engine_Info_FB *)evas_engine_info_get(ee->evas);
|
||||
if (einfo && disp_name)
|
||||
{
|
||||
|
@ -654,15 +648,7 @@ ecore_evas_fb_new_internal(const char *disp_name, int rotation, int w, int h)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
ecore_evas_input_event_register(ee);
|
||||
ecore_evas_done(ee, EINA_TRUE);
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_event_window_register(1, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(1, _ecore_evas_input_direct_cb);
|
||||
evas_event_feed_mouse_in(ee->evas, (unsigned int)((unsigned long long)(ecore_time_get() * 1000.0) & 0xffffffff), NULL);
|
||||
return ee;
|
||||
}
|
||||
|
|
|
@ -510,12 +510,13 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
|
|||
ee->prop.hwsurface = hwsurface;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
goto on_error;
|
||||
}
|
||||
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
|
||||
gl = !(rmethod == evas_render_method_lookup("buffer"));
|
||||
ee->can_async_render = gl ? EINA_FALSE : EINA_TRUE;
|
||||
|
@ -611,19 +612,13 @@ _ecore_evas_internal_sdl_new(int rmethod, const char* name, int w, int h, int fu
|
|||
}
|
||||
|
||||
_ecore_evas_sdl_init(w, h);
|
||||
ee->prop.window = SDL_GetWindowID(swd->w);
|
||||
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
ecore_event_window_register(SDL_GetWindowID(swd->w), ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(SDL_GetWindowID(swd->w), _ecore_evas_input_direct_cb);
|
||||
SDL_SetWindowData(swd->w, "_Ecore_Evas", ee);
|
||||
|
||||
SDL_ShowCursor(SDL_ENABLE);
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
|
||||
_ecore_evas_focus_device_set(ee, NULL, EINA_TRUE);
|
||||
ecore_evas_sdl_count++;
|
||||
return ee;
|
||||
|
|
|
@ -2529,11 +2529,13 @@ _ecore_evas_wl_common_new_internal(const char *disp_name, unsigned int parent, i
|
|||
ee->prop.aux_hint.supported_list = ecore_wl2_window_aux_hints_supported_get(wdata->win);
|
||||
ecore_evas_aux_hint_add(ee, "wm.policy.win.msg.use", "1");
|
||||
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
if (!ecore_evas_evas_new(ee, ee->w + fw, ee->h + fh))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
goto eng_err;
|
||||
}
|
||||
|
||||
evas_output_method_set(ee->evas, method);
|
||||
evas_output_size_set(ee->evas, ee->w + fw, ee->h + fh);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, ee->w + fw, ee->h + fh);
|
||||
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
_ecore_evas_wl_common_render_updates, ee);
|
||||
|
@ -2573,16 +2575,7 @@ _ecore_evas_wl_common_new_internal(const char *disp_name, unsigned int parent, i
|
|||
|
||||
_ecore_evas_wl_common_wm_rotation_protocol_set(ee);
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_evas_input_event_register(ee);
|
||||
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window,
|
||||
_ecore_evas_input_direct_cb);
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
wdata->sync_handler =
|
||||
ecore_event_handler_add(ECORE_WL2_EVENT_SYNC_DONE, _ee_cb_sync_done, ee);
|
||||
|
|
|
@ -1450,10 +1450,12 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_backend_init)(Ecore_Evas
|
|||
ee->prop.withdrawn = EINA_TRUE;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_size_set(ee->evas, width, height);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, width, height);
|
||||
if (!ecore_evas_evas_new(ee, width, height))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
free(ee);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
wdata->parent = parent;
|
||||
ee->prop.window = (Ecore_Window)ecore_win32_window_new(parent, x, y, width, height);
|
||||
|
@ -1471,13 +1473,7 @@ _ecore_evas_win32_new_internal(int (*_ecore_evas_engine_backend_init)(Ecore_Evas
|
|||
return NULL;
|
||||
}
|
||||
|
||||
_ecore_evas_register(ee);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
return ee;
|
||||
}
|
||||
|
|
|
@ -4089,7 +4089,13 @@ ecore_evas_software_x11_new_internal(const char *disp_name, Ecore_X_Window paren
|
|||
ee->can_async_render = 1;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create a Canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
_ecore_evas_x_flush_pre, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
|
||||
|
@ -4097,10 +4103,7 @@ ecore_evas_software_x11_new_internal(const char *disp_name, Ecore_X_Window paren
|
|||
if (ee->can_async_render)
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
_ecore_evas_x_render_updates, ee);
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
edata->win_root = parent;
|
||||
edata->screen_num = 0;
|
||||
|
@ -4216,14 +4219,9 @@ ecore_evas_software_x11_new_internal(const char *disp_name, Ecore_X_Window paren
|
|||
_ecore_evas_x_sync_set(ee);
|
||||
|
||||
ee->engine.func->fn_render = _ecore_evas_x_render;
|
||||
_ecore_evas_register(ee);
|
||||
|
||||
ecore_x_input_multi_select(ee->prop.window);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
return ee;
|
||||
}
|
||||
|
@ -4292,22 +4290,24 @@ ecore_evas_software_x11_pixmap_new_internal(const char *disp_name, Ecore_X_Windo
|
|||
ee->can_async_render = 1;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
_ecore_evas_x_flush_pre, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
|
||||
_ecore_evas_x_flush_post, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
_ecore_evas_x_render_pre, ee);
|
||||
|
||||
if (ee->can_async_render)
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
_ecore_evas_x_render_updates, ee);
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
edata->win_root = parent;
|
||||
edata->screen_num = 0;
|
||||
|
@ -4611,13 +4611,15 @@ ecore_evas_gl_x11_options_new_internal(const char *disp_name, Ecore_X_Window par
|
|||
edata->state.sticky = 0;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE, _ecore_evas_x_flush_pre, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST, _ecore_evas_x_flush_post, ee);
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
if (parent == 0) parent = ecore_x_window_root_first_get();
|
||||
edata->win_root = parent;
|
||||
|
@ -4664,14 +4666,9 @@ ecore_evas_gl_x11_options_new_internal(const char *disp_name, Ecore_X_Window par
|
|||
_ecore_evas_x_sync_set(ee);
|
||||
|
||||
ee->engine.func->fn_render = _ecore_evas_x_render;
|
||||
_ecore_evas_register(ee);
|
||||
ecore_x_input_multi_select(ee->prop.window);
|
||||
ecore_event_window_register(ee->prop.window, ee, ee->evas,
|
||||
(Ecore_Event_Mouse_Move_Cb)_ecore_evas_mouse_move_process,
|
||||
(Ecore_Event_Multi_Move_Cb)_ecore_evas_mouse_multi_move_process,
|
||||
(Ecore_Event_Multi_Down_Cb)_ecore_evas_mouse_multi_down_process,
|
||||
(Ecore_Event_Multi_Up_Cb)_ecore_evas_mouse_multi_up_process);
|
||||
_ecore_event_window_direct_cb_set(ee->prop.window, _ecore_evas_input_direct_cb);
|
||||
|
||||
ecore_evas_done(ee, EINA_FALSE);
|
||||
|
||||
return ee;
|
||||
}
|
||||
|
@ -4752,17 +4749,19 @@ ecore_evas_gl_x11_pixmap_new_internal(const char *disp_name, Ecore_X_Window pare
|
|||
edata->state.sticky = 0;
|
||||
|
||||
/* init evas here */
|
||||
ee->evas = evas_new();
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
if (!ecore_evas_evas_new(ee, w, h))
|
||||
{
|
||||
ERR("Can not create Canvas.");
|
||||
ecore_evas_free(ee);
|
||||
return NULL;
|
||||
}
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_PRE,
|
||||
_ecore_evas_x_flush_pre, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_FLUSH_POST,
|
||||
_ecore_evas_x_flush_post, ee);
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_PRE,
|
||||
_ecore_evas_x_render_pre, ee);
|
||||
evas_data_attach_set(ee->evas, ee);
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
evas_output_size_set(ee->evas, w, h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, w, h);
|
||||
|
||||
if (ee->can_async_render)
|
||||
evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
|
||||
|
|
Loading…
Reference in New Issue