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 0cc7f30573..e902cd6b47 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_common.h +++ b/src/modules/evas/engines/gl_common/evas_gl_common.h @@ -736,6 +736,7 @@ void evas_gl_common_texture_rgb_a_pair_update(Evas_GL_Texture *tex, Evas_Colorspace evas_gl_common_gl_format_to_colorspace(GLuint f); void evas_gl_common_image_alloc_ensure(Evas_GL_Image *im); +Evas_GL_Image *evas_gl_common_image_load(Evas_Engine_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error); Evas_GL_Image *evas_gl_common_image_mmap(Evas_Engine_GL_Context *gc, Eina_File *f, const char *key, Evas_Image_Load_Opts *lo, int *error); Evas_GL_Image *evas_gl_common_image_new_from_copied_data(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, DATA32 *data, int alpha, Evas_Colorspace cspace); Evas_GL_Image *evas_gl_common_image_new(Evas_Engine_GL_Context *gc, unsigned int w, unsigned int h, int alpha, Evas_Colorspace cspace); diff --git a/src/modules/evas/engines/gl_common/evas_gl_image.c b/src/modules/evas/engines/gl_common/evas_gl_image.c index ffe29e39b2..37de0ba068 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_image.c +++ b/src/modules/evas/engines/gl_common/evas_gl_image.c @@ -281,6 +281,37 @@ found_cspace: return im; } +Evas_GL_Image * +evas_gl_common_image_load(Evas_Engine_GL_Context *gc, const char *file, const char *key, Evas_Image_Load_Opts *lo, int *error) +{ + RGBA_Image *im_im; + +#ifdef EVAS_CSERVE2 + if (evas_cserve2_use_get()) + { + im_im = (RGBA_Image *) evas_cache2_image_open + (evas_common_image_cache2_get(), file, key, lo, error); + if (im_im) + { + *error = evas_cache2_image_open_wait(&im_im->cache_entry); + if ((*error != EVAS_LOAD_ERROR_NONE) + && im_im->cache_entry.animated.animated) + { + evas_cache2_image_close(&im_im->cache_entry); + im_im = NULL; + } + else + return evas_gl_common_image_new_from_rgbaimage(gc, im_im, lo, error); + } + } +#endif + + im_im = evas_common_load_image_from_file(file, key, lo, error); + if (!im_im) return NULL; + + return evas_gl_common_image_new_from_rgbaimage(gc, im_im, lo, error); +} + Evas_GL_Image * evas_gl_common_image_mmap(Evas_Engine_GL_Context *gc, Eina_File *f, const char *key, Evas_Image_Load_Opts *lo, int *error) {