From dfd0a7997fcc5309ccffd7ce289d74a3382e6320 Mon Sep 17 00:00:00 2001 From: Shinwoo Kim Date: Fri, 20 Nov 2020 11:22:54 +0900 Subject: [PATCH] evas gl: make 9 patch work Summary: The 9 patch is using image_stretch_region_get, but GL did not override it. So the 9 patch did not work for GL engine at all. Test Plan: Evas_Object*img = evas_object_image_filled_add(evas); evas_object_image_file_set(img, "test.9.png", 0); evas_object_show(img); Reviewers: Hermet, jsuya, herb, cedric Reviewed By: Hermet Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12192 Change-Id: I3e455a9d0b89a82c3cf2f16683454d2e7c120e43 --- src/modules/evas/engines/gl_generic/evas_engine.c | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c b/src/modules/evas/engines/gl_generic/evas_engine.c index a7df0cf..0a9202d 100755 --- a/src/modules/evas/engines/gl_generic/evas_engine.c +++ b/src/modules/evas/engines/gl_generic/evas_engine.c @@ -2486,6 +2486,29 @@ eng_image_can_region_get(void *engine EINA_UNUSED, void *image) return ((Evas_Image_Load_Func*) im->info.loader)->do_region; } +static Eina_Bool +eng_image_stretch_region_get(void *engine EINA_UNUSED, void *image, + uint8_t **horizontal, uint8_t **vertical) +{ + Evas_GL_Image *gim = image; + RGBA_Image *im; + + if (!gim || !gim->im) return EINA_FALSE; + + im = (RGBA_Image *)gim->im; + + if (!im->cache_entry.need_data) return EINA_FALSE; + + if (!im->image.data) evas_cache_image_load_data(&im->cache_entry); + + if (!im->cache_entry.stretch.horizontal.region || + !im->cache_entry.stretch.vertical.region) + return EINA_FALSE; + + *horizontal = im->cache_entry.stretch.horizontal.region; + *vertical = im->cache_entry.stretch.vertical.region; + return EINA_TRUE; +} static void eng_image_max_size_get(void *engine, int *maxw, int *maxh) @@ -3413,6 +3436,7 @@ module_open(Evas_Module *em) ORD(image_colorspace_get); ORD(image_file_colorspace_get); ORD(image_can_region_get); + ORD(image_stretch_region_get); ORD(image_native_init); ORD(image_native_shutdown); ORD(image_native_set); -- 2.7.4