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

Reply via email to