diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-11-17 10:23:25 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2013-11-17 10:23:25 +0900 |
commit | b676a979606aa796408951e7d6283d0c07bf0f1b (patch) | |
tree | b86b5d67e7f5504c222bcfc740b7337782587689 | |
parent | 3411fccc1eededc349d8e131643e77015c9fde24 (diff) |
evas - evasgl ... make osmesa sw render support work again
-rw-r--r-- | src/modules/evas/engines/software_generic/evas_engine.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 5cb07c7892..8930136ef5 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c | |||
@@ -920,10 +920,17 @@ eng_image_native_set(void *data EINA_UNUSED, void *image, void *native) | |||
920 | 920 | ||
921 | if (!im || !ns) return im; | 921 | if (!im || !ns) return im; |
922 | 922 | ||
923 | im2 = evas_cache_image_data(evas_common_image_cache_get(), | 923 | if ((ns->type == EVAS_NATIVE_SURFACE_OPENGL) && |
924 | im->w, im->h, | 924 | (ns->version == EVAS_NATIVE_SURFACE_VERSION)) |
925 | NULL, 1, | 925 | im2 = evas_cache_image_data(evas_common_image_cache_get(), |
926 | EVAS_COLORSPACE_ARGB8888); | 926 | im->w, im->h, |
927 | ns->data.x11.visual, 1, | ||
928 | EVAS_COLORSPACE_ARGB8888); | ||
929 | else | ||
930 | im2 = evas_cache_image_data(evas_common_image_cache_get(), | ||
931 | im->w, im->h, | ||
932 | NULL, 1, | ||
933 | EVAS_COLORSPACE_ARGB8888); | ||
927 | if (im->references > 1) | 934 | if (im->references > 1) |
928 | ERR("Setting native with more than one references for im=%p", im); | 935 | ERR("Setting native with more than one references for im=%p", im); |
929 | 936 | ||
@@ -2347,6 +2354,7 @@ eng_gl_surface_destroy(void *data EINA_UNUSED, void *surface) | |||
2347 | 2354 | ||
2348 | if (!sfc) return 0; | 2355 | if (!sfc) return 0; |
2349 | 2356 | ||
2357 | printf("free buf %p\n", sfc->buffer); | ||
2350 | if (sfc->buffer) free(sfc->buffer); | 2358 | if (sfc->buffer) free(sfc->buffer); |
2351 | 2359 | ||
2352 | free(sfc); | 2360 | free(sfc); |
@@ -2522,7 +2530,7 @@ eng_gl_native_surface_get(void *data EINA_UNUSED, void *surface, void *native_su | |||
2522 | ns->type = EVAS_NATIVE_SURFACE_OPENGL; | 2530 | ns->type = EVAS_NATIVE_SURFACE_OPENGL; |
2523 | ns->version = EVAS_NATIVE_SURFACE_VERSION; | 2531 | ns->version = EVAS_NATIVE_SURFACE_VERSION; |
2524 | ns->data.x11.visual = sfc->buffer; | 2532 | ns->data.x11.visual = sfc->buffer; |
2525 | 2533 | ||
2526 | return 1; | 2534 | return 1; |
2527 | #else | 2535 | #else |
2528 | (void) surface; | 2536 | (void) surface; |