diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c b/src/modules/evas/engines/gl_common/evas_gl_core.c index 85a1ddce7f..f3ecc9b265 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core.c +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c @@ -1667,9 +1667,6 @@ evgl_engine_init(void *eng_data, const EVGL_Interface *efunc) // Clear Function Pointers if (!gl_funcs) gl_funcs = calloc(1, EVAS_GL_API_STRUCT_SIZE); - // Direct surfaces map texid->Evas_GL_Surface - evgl_engine->direct_surfaces = eina_hash_int32_new(NULL); - return evgl_engine; error: @@ -1706,12 +1703,6 @@ evgl_engine_shutdown(void *eng_data) // Destroy internal resources _evgl_tls_resource_destroy(eng_data); - if (evgl_engine->direct_surfaces) - { - eina_hash_free(evgl_engine->direct_surfaces); - evgl_engine->direct_surfaces = NULL; - } - LKD(evgl_engine->resource_lock); // Free engine @@ -1791,20 +1782,6 @@ evgl_surface_create(void *eng_data, Evas_GL_Config *cfg, int w, int h) // Keep track of all the created surfaces LKL(evgl_engine->resource_lock); evgl_engine->surfaces = eina_list_prepend(evgl_engine->surfaces, sfc); - - if (sfc->direct_fb_opt) - { - if (!sfc->indirect) - { - eina_hash_add(evgl_engine->direct_surfaces, &sfc->color_buf, sfc); - DBG("Added tex %d as direct surface: %p", sfc->color_buf, sfc); - } - else - { - eina_hash_add(evgl_engine->direct_surfaces, &sfc->indirect_sfc_native, sfc); - DBG("Added native %p as direct surface: %p", sfc->indirect_sfc_native, sfc); - } - } LKU(evgl_engine->resource_lock); if (dbg) DBG("Created surface sfc %p (eng %p)", sfc, eng_data); @@ -2045,20 +2022,6 @@ evgl_surface_destroy(void *eng_data, EVGL_Surface *sfc) // Remove it from the list LKL(evgl_engine->resource_lock); evgl_engine->surfaces = eina_list_remove(evgl_engine->surfaces, sfc); - - if (sfc->direct_fb_opt) - { - if (!sfc->indirect) - { - eina_hash_del(evgl_engine->direct_surfaces, &sfc->color_buf, sfc); - DBG("Removed tex %d as direct surface: %p", sfc->color_buf, sfc); - } - else - { - eina_hash_del(evgl_engine->direct_surfaces, &sfc->indirect_sfc_native, sfc); - DBG("Removed native %p as direct surface: %p", sfc->indirect_sfc_native, sfc); - } - } LKU(evgl_engine->resource_lock); free(sfc); @@ -2623,19 +2586,10 @@ evgl_native_surface_get(EVGL_Surface *sfc, Evas_Native_Surface *ns) return 0; } - if (!sfc->indirect) - { - ns->type = EVAS_NATIVE_SURFACE_EVASGL; - ns->version = EVAS_NATIVE_SURFACE_VERSION; - ns->data.evasgl.surface = sfc; - } - else - { - ns->type = EVAS_NATIVE_SURFACE_X11; - ns->version = EVAS_NATIVE_SURFACE_VERSION; - ns->data.x11.pixmap = (unsigned long)(intptr_t)sfc->indirect_sfc_native; - ns->data.x11.visual = sfc->indirect_sfc_visual; - } + ns->type = EVAS_NATIVE_SURFACE_EVASGL; + ns->version = EVAS_NATIVE_SURFACE_VERSION; + ns->data.evasgl.surface = sfc; + return 1; } @@ -2669,38 +2623,14 @@ evgl_native_surface_direct_opts_get(Evas_Native_Surface *ns, if (!evgl_engine) return EINA_FALSE; if (!ns) return EINA_FALSE; - if (ns->type == EVAS_NATIVE_SURFACE_OPENGL && - ns->data.opengl.texture_id) - { - sfc = eina_hash_find(evgl_engine->direct_surfaces, &ns->data.opengl.texture_id); - if (!sfc) - { - if (evgl_engine->api_debug_mode) - DBG("Native surface %p (color_buf %d) was not found.", - ns, ns->data.opengl.texture_id); - return EINA_FALSE; - } - } - else if (ns->type == EVAS_NATIVE_SURFACE_X11 && - ns->data.x11.pixmap) - { - sfc = eina_hash_find(evgl_engine->direct_surfaces, &ns->data.x11.pixmap); - if (!sfc) - { - if (evgl_engine->api_debug_mode) - DBG("Native surface %p (pixmap %lx) was not found.", - ns, ns->data.x11.pixmap); - return EINA_FALSE; - } - } - else if (ns->type == EVAS_NATIVE_SURFACE_EVASGL && + if (ns->type == EVAS_NATIVE_SURFACE_EVASGL && ns->data.evasgl.surface) { sfc = ns->data.evasgl.surface; } else { - ERR("Only EVAS_NATIVE_SURFACE_OPENGL or EVAS_NATIVE_SURFACE_X11 can be used for direct rendering"); + ERR("Only EVAS_NATIVE_SURFACE_EVASGL can be used for direct rendering"); return EINA_FALSE; } diff --git a/src/modules/evas/engines/gl_common/evas_gl_core_private.h b/src/modules/evas/engines/gl_common/evas_gl_core_private.h index 0dc64a34db..0a3d20e1a2 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core_private.h +++ b/src/modules/evas/engines/gl_common/evas_gl_core_private.h @@ -326,7 +326,6 @@ struct _EVGL_Engine // Keep track of all the current surfaces/contexts Eina_List *surfaces; Eina_List *contexts; - Eina_Hash *direct_surfaces; // unsigned (texid) --> EVGL_Surface* //void *engine_data; Eina_Hash *safe_extensions; diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index 45e8ded8f1..0de8e2a378 100644 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -837,11 +837,7 @@ eng_image_draw(void *data, void *context, void *surface, void *image, int src_x, evgl_direct_partial_info_set(gl_context->preserve_bit); } - if (n->type == EVAS_NATIVE_SURFACE_OPENGL) - direct_surface = eina_hash_find(evgl_engine->direct_surfaces, &n->data.opengl.texture_id); - else if (n->type == EVAS_NATIVE_SURFACE_X11) - direct_surface = eina_hash_find(evgl_engine->direct_surfaces, &n->data.x11.pixmap); - else if (n->type == EVAS_NATIVE_SURFACE_EVASGL) + if (n->type == EVAS_NATIVE_SURFACE_EVASGL) direct_surface = n->data.evasgl.surface; else {