From a691b2ebf9899f3d424c18a60ba20385642ee04e Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 16 Jun 2014 19:37:15 +0900 Subject: [PATCH] Evas gl: Fix ETC2 texture atlasses ETC2 textures were allocated using the same empty slots pool as RGBA textures. ETC1 texture atlasses should still be tested. An extension string is required to avoid using the bad fallback in place right now. But there is no such thing yet. --- src/modules/evas/engines/gl_common/evas_gl_common.h | 2 +- src/modules/evas/engines/gl_common/evas_gl_texture.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h b/src/modules/evas/engines/gl_common/evas_gl_common.h index 01501c138a..4e45df0089 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -426,7 +426,7 @@ struct _Evas_GL_Shared struct { Eina_List *whole; - Eina_List *atlas[33][5]; + Eina_List *atlas[33][6]; } tex; Eina_Hash *native_pm_hash; diff --git a/src/modules/evas/engines/gl_common/evas_gl_texture.c b/src/modules/evas/engines/gl_common/evas_gl_texture.c index eb05b382d2..224b7dccad 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_texture.c +++ b/src/modules/evas/engines/gl_common/evas_gl_texture.c @@ -205,18 +205,25 @@ _tex_format_index(GLuint format) case GL_ALPHA12: case GL_ALPHA16: return 2; + case GL_ETC1_RGB8_OES: + return 3; + case GL_COMPRESSED_RGB8_ETC2: + return 4; + case GL_COMPRESSED_RGBA8_ETC2_EAC: + return 5; case GL_LUMINANCE: // never used in atlas case GL_LUMINANCE4: case GL_LUMINANCE8: case GL_LUMINANCE12: case GL_LUMINANCE16: - return 3; + return 6; case GL_LUMINANCE4_ALPHA4: case GL_LUMINANCE8_ALPHA8: case GL_LUMINANCE12_ALPHA12: case GL_LUMINANCE16_ALPHA16: - return 4; + return 7; default: + // abort? return 0; } return 0;