evas/gl: don't go forward if the format is not supported.
This commit is contained in:
parent
65cebb614c
commit
5f52f5c9e5
|
@ -130,7 +130,7 @@ _evas_gl_texture_search_format(Eina_Bool alpha, Eina_Bool bgra, Evas_Colorspace
|
||||||
matching_format[i].cspace == cspace)
|
matching_format[i].cspace == cspace)
|
||||||
return i;
|
return i;
|
||||||
|
|
||||||
ERR("Texture doesn't support the image format! colorspace(%s) alpha(%d) bgra(%d)", cspace, alpha, bgra);
|
ERR("Texture doesn't support the image format! colorspace(%d) alpha(%d) bgra(%d)", cspace, alpha, bgra);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,13 +438,15 @@ evas_gl_common_texture_new(Evas_Engine_GL_Context *gc, RGBA_Image *im)
|
||||||
int u = 0, v = 0, yoffset = 0;
|
int u = 0, v = 0, yoffset = 0;
|
||||||
int lformat;
|
int lformat;
|
||||||
|
|
||||||
|
lformat = _evas_gl_texture_search_format(im->cache_entry.flags.alpha, gc->shared->info.bgra, im->cache_entry.space);
|
||||||
|
if (lformat < 0) return NULL;
|
||||||
|
|
||||||
tex = evas_gl_common_texture_alloc(gc, im->cache_entry.w, im->cache_entry.h, im->cache_entry.flags.alpha);
|
tex = evas_gl_common_texture_alloc(gc, im->cache_entry.w, im->cache_entry.h, im->cache_entry.flags.alpha);
|
||||||
if (!tex) return NULL;
|
if (!tex) return NULL;
|
||||||
|
|
||||||
#define TEX_HREP 1
|
#define TEX_HREP 1
|
||||||
#define TEX_VREP 1
|
#define TEX_VREP 1
|
||||||
|
|
||||||
lformat = _evas_gl_texture_search_format(im->cache_entry.flags.alpha, gc->shared->info.bgra, im->cache_entry.space);
|
|
||||||
switch (im->cache_entry.space)
|
switch (im->cache_entry.space)
|
||||||
{
|
{
|
||||||
case EVAS_COLORSPACE_ETC1:
|
case EVAS_COLORSPACE_ETC1:
|
||||||
|
@ -879,10 +881,12 @@ evas_gl_common_texture_native_new(Evas_Engine_GL_Context *gc, unsigned int w, un
|
||||||
Evas_GL_Texture *tex;
|
Evas_GL_Texture *tex;
|
||||||
int lformat;
|
int lformat;
|
||||||
|
|
||||||
|
lformat = _evas_gl_texture_search_format(alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
||||||
|
if (lformat < 0) return NULL;
|
||||||
|
|
||||||
tex = evas_gl_common_texture_alloc(gc, w, h, alpha);
|
tex = evas_gl_common_texture_alloc(gc, w, h, alpha);
|
||||||
if (!tex) return NULL;
|
if (!tex) return NULL;
|
||||||
|
|
||||||
lformat = _evas_gl_texture_search_format(alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
|
||||||
tex->pt = _pool_tex_native_new(gc, w, h,
|
tex->pt = _pool_tex_native_new(gc, w, h,
|
||||||
*matching_format[lformat].intformat,
|
*matching_format[lformat].intformat,
|
||||||
*matching_format[lformat].format,
|
*matching_format[lformat].format,
|
||||||
|
@ -902,10 +906,12 @@ evas_gl_common_texture_render_new(Evas_Engine_GL_Context *gc, unsigned int w, un
|
||||||
Evas_GL_Texture *tex;
|
Evas_GL_Texture *tex;
|
||||||
int lformat;
|
int lformat;
|
||||||
|
|
||||||
|
lformat = _evas_gl_texture_search_format(alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
||||||
|
if (lformat < 0) return NULL;
|
||||||
|
|
||||||
tex = evas_gl_common_texture_alloc(gc, w, h, alpha);
|
tex = evas_gl_common_texture_alloc(gc, w, h, alpha);
|
||||||
if (!tex) return NULL;
|
if (!tex) return NULL;
|
||||||
|
|
||||||
lformat = _evas_gl_texture_search_format(alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
|
||||||
tex->pt = _pool_tex_render_new(gc, w, h,
|
tex->pt = _pool_tex_render_new(gc, w, h,
|
||||||
*matching_format[lformat].intformat,
|
*matching_format[lformat].intformat,
|
||||||
*matching_format[lformat].format);
|
*matching_format[lformat].format);
|
||||||
|
@ -924,10 +930,12 @@ evas_gl_common_texture_dynamic_new(Evas_Engine_GL_Context *gc, Evas_GL_Image *im
|
||||||
Evas_GL_Texture *tex;
|
Evas_GL_Texture *tex;
|
||||||
int lformat;
|
int lformat;
|
||||||
|
|
||||||
|
lformat = _evas_gl_texture_search_format(tex->alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
||||||
|
if (lformat < 0) return NULL;
|
||||||
|
|
||||||
tex = evas_gl_common_texture_alloc(gc, im->w, im->h, im->alpha);
|
tex = evas_gl_common_texture_alloc(gc, im->w, im->h, im->alpha);
|
||||||
if (!tex) return NULL;
|
if (!tex) return NULL;
|
||||||
|
|
||||||
lformat = _evas_gl_texture_search_format(tex->alpha, gc->shared->info.bgra, EVAS_COLORSPACE_ARGB8888);
|
|
||||||
tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h,
|
tex->pt = _pool_tex_dynamic_new(gc, tex->w, tex->h,
|
||||||
*matching_format[lformat].intformat,
|
*matching_format[lformat].intformat,
|
||||||
*matching_format[lformat].format);
|
*matching_format[lformat].format);
|
||||||
|
@ -1079,11 +1087,13 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
|
||||||
{
|
{
|
||||||
int lformat;
|
int lformat;
|
||||||
|
|
||||||
|
lformat = _evas_gl_texture_search_format(tex->alpha, tex->gc->shared->info.bgra, im->cache_entry.space);
|
||||||
|
if (lformat < 0) return;
|
||||||
|
|
||||||
tex->pt->allocations = eina_list_remove(tex->pt->allocations, tex->apt);
|
tex->pt->allocations = eina_list_remove(tex->pt->allocations, tex->apt);
|
||||||
if (tex->apt)
|
if (tex->apt)
|
||||||
eina_rectangle_pool_release(tex->apt);
|
eina_rectangle_pool_release(tex->apt);
|
||||||
|
|
||||||
lformat = _evas_gl_texture_search_format(tex->alpha, tex->gc->shared->info.bgra, im->cache_entry.space);
|
|
||||||
// FIXME: why a 'render' new here ??? Should already have been allocated, quite a weird path.
|
// FIXME: why a 'render' new here ??? Should already have been allocated, quite a weird path.
|
||||||
tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h,
|
tex->pt = _pool_tex_render_new(tex->gc, tex->w, tex->h,
|
||||||
*matching_format[lformat].intformat,
|
*matching_format[lformat].intformat,
|
||||||
|
@ -1228,6 +1238,8 @@ evas_gl_common_texture_update(Evas_GL_Texture *tex, RGBA_Image *im)
|
||||||
|
|
||||||
// Creating the mini picture texture
|
// Creating the mini picture texture
|
||||||
lformat = _evas_gl_texture_search_format(tex->alpha, tex->gc->shared->info.bgra, im->cache_entry.space);
|
lformat = _evas_gl_texture_search_format(tex->alpha, tex->gc->shared->info.bgra, im->cache_entry.space);
|
||||||
|
if (lformat < 0) return;
|
||||||
|
|
||||||
tex->ptt = _pool_tex_find(tex->gc, EVAS_GL_TILE_SIZE, EVAS_GL_TILE_SIZE,
|
tex->ptt = _pool_tex_find(tex->gc, EVAS_GL_TILE_SIZE, EVAS_GL_TILE_SIZE,
|
||||||
*matching_format[lformat].intformat,
|
*matching_format[lformat].intformat,
|
||||||
*matching_format[lformat].format,
|
*matching_format[lformat].format,
|
||||||
|
|
Loading…
Reference in New Issue