Enlightenment CVS committal Author : raster Project : e17 Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas Modified Files: evas_object_image.c Log Message: not complete yet - actually i need help with the fragment shader. in evas_gl_texture.c i have a frag shader, and it tries to use a set of 3 textures that act as the yuv planes, BUT the u and v textures (Utex and Vtex) are simply getting values from the Ytex - regardless of what i try. grrr. what's up with that? =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_image.c,v retrieving revision 1.46 retrieving revision 1.47 diff -u -3 -r1.46 -r1.47 --- evas_object_image.c 9 Dec 2006 09:02:43 -0000 1.46 +++ evas_object_image.c 17 Dec 2006 15:48:50 -0000 1.47 @@ -25,6 +25,7 @@ const char *file; const char *key; + int cspace; char smooth_scale : 1; char has_alpha :1; @@ -174,6 +175,8 @@ o->engine_data, &w, &h); o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, o->engine_data); + o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, + o->engine_data); o->cur.image.w = w; o->cur.image.h = h; } @@ -181,6 +184,7 @@ { o->load_error = EVAS_LOAD_ERROR_GENERIC; o->cur.has_alpha = 1; + o->cur.cspace = EVAS_COLORSPACE_ARGB8888; o->cur.image.w = 0; o->cur.image.h = 0; } @@ -508,12 +512,15 @@ o->engine_data, w, h); else - o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output, - w, h, NULL); + o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data + (obj->layer->evas->engine.data.output, w, h, NULL, o->cur.has_alpha, + o->cur.cspace); +/* FIXME - in engine call above if (o->engine_data) o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, o->engine_data, o->cur.has_alpha); + */ EVAS_OBJECT_IMAGE_FREE_FILE_AND_KEY(o); o->changed = 1; evas_object_change(obj); @@ -602,7 +609,9 @@ o->engine_data = obj->layer->evas->engine.func->image_new_from_data(obj->layer->evas->engine.data.output, o->cur.image.w, o->cur.image.h, - data); + data, + o->cur.has_alpha, + o->cur.cspace); } else { @@ -614,10 +623,12 @@ o->cur.image.h = 0; o->engine_data = NULL; } +/* FIXME - in engine call above if (o->engine_data) o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, o->engine_data, o->cur.has_alpha); + */ if (o->pixels_checked_out > 0) o->pixels_checked_out--; if (p_data != o->engine_data) { @@ -689,7 +700,9 @@ o->engine_data = obj->layer->evas->engine.func->image_new_from_copied_data(obj->layer->evas->engine.data.output, o->cur.image.w, o->cur.image.h, - data); + data, + o->cur.has_alpha, + o->cur.cspace); if (o->engine_data) o->engine_data = obj->layer->evas->engine.func->image_alpha_set(obj->layer->evas->engine.data.output, o->engine_data, @@ -1241,9 +1254,11 @@ MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE); return; MAGIC_CHECK_END(); - obj->layer->evas->engine.func->image_colorspace_set(obj->layer->evas->engine.data.output, - o->engine_data, - cspace); + o->cur.cspace = cspace; + if (o->engine_data) + obj->layer->evas->engine.func->image_colorspace_set(obj->layer->evas->engine.data.output, + o->engine_data, + cspace); } /** @@ -1452,6 +1467,7 @@ o->engine_data = NULL; o->load_error = EVAS_LOAD_ERROR_NONE; o->cur.has_alpha = 1; + o->cur.cspace = EVAS_COLORSPACE_ARGB8888; o->cur.image.w = 0; o->cur.image.h = 0; } @@ -1482,6 +1498,8 @@ o->engine_data, &w, &h); o->cur.has_alpha = obj->layer->evas->engine.func->image_alpha_get(obj->layer->evas->engine.data.output, o->engine_data); + o->cur.cspace = obj->layer->evas->engine.func->image_colorspace_get(obj->layer->evas->engine.data.output, + o->engine_data); o->cur.image.w = w; o->cur.image.h = h; } @@ -1571,6 +1589,7 @@ o->cur.fill.h = 32.0; o->cur.smooth_scale = 1; o->cur.border.fill = 1; + o->cur.cspace = EVAS_COLORSPACE_ARGB8888; o->prev = o->cur; return o; } @@ -1881,6 +1900,7 @@ if ((o->cur.image.w != o->prev.image.w) || (o->cur.image.h != o->prev.image.h) || (o->cur.has_alpha != o->prev.has_alpha) || + (o->cur.cspace != o->prev.cspace) || (o->cur.smooth_scale != o->prev.smooth_scale)) { updates = evas_object_render_pre_prev_cur_add(updates, obj); ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs