Touch for evas gl direct rendering partial rendering/swap fix.
authorSung W. Park <dunamis.park@samsung.com>
Tue, 11 Jun 2013 04:53:44 +0000 (13:53 +0900)
committerSung W. Park <dunamis.park@samsung.com>
Mon, 17 Jun 2013 08:52:16 +0000 (17:52 +0900)
src/lib/evas/canvas/evas_object_image.c
src/modules/evas/engines/gl_common/evas_gl_api.c

index 1a319ac..bced46c 100644 (file)
@@ -3868,7 +3868,7 @@ evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, v
 
                                  if (obj->layer->evas->engine.func->gl_get_pixels_set)
                                    {
-                                      obj->layer->evas->engine.func->gl_get_pixels_set(output, o->pixels->func.get_pixels, o->pixels->func.get_pixels_data, obj);
+                                      obj->layer->evas->engine.func->gl_get_pixels_set(output, o->pixels->func.get_pixels, o->pixels->func.get_pixels_data, eo_obj);
                                    }
 
                                  o->direct_render = EINA_TRUE;
@@ -3906,38 +3906,6 @@ evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, v
                }
           }
 
-        /*
-           if (obj->layer->evas->engine.func->context_flush)
-           obj->layer->evas->engine.func->context_flush(output);
-
-                  // Set img object for direct rendering optimization
-                  // Check for image w/h against image geometry w/h
-                  // Check for image color r,g,b,a = {255,255,255,255}
-                  // Check and make sure that there are no maps.
-                  if ( (obj->cur->geometry.w == o->cur->image.w) &&
-                       (obj->cur->geometry.h == o->cur->image.h) &&
-                       (obj->cur->color.r == 255) &&
-                       (obj->cur->color.g == 255) &&
-                       (obj->cur->color.b == 255) &&
-                       (obj->cur->color.a == 255) &&
-                       (!obj->map->cur.map) )
-                    {
-                       if (obj->layer->evas->engine.func->gl_img_obj_set)
-                         {
-                            obj->layer->evas->engine.func->gl_img_obj_set(output, eo_obj, o->cur->has_alpha);
-                            img_set = 1;
-                         }
-                    }
-
-                  o->pixels->func.get_pixels(o->pixels->func.get_pixels_data, eo_obj);
-                  if (o->engine_data != pixels)
-                    pixels = o->engine_data;
-                  o->engine_data = obj->layer->evas->engine.func->image_dirty_region
-                     (obj->layer->evas->engine.data.output, o->engine_data,
-                      0, 0, o->cur->image.w, o->cur->image.h);
-               }
-             o->dirty_pixels = EINA_FALSE;
-*/
         if ((obj->map->cur.map) && (obj->map->cur.map->count > 3) && (obj->map->cur.usemap))
           {
              evas_object_map_update(eo_obj, x, y, imagew, imageh, uvw, uvh);
@@ -4176,6 +4144,7 @@ evas_object_image_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, v
                   if (dobreak_w) break;
                }
           }
+     }
 }
 
 static void
index 9406043..968f7e1 100644 (file)
@@ -169,10 +169,10 @@ compute_gl_coordinates(Evas_Object *obj, int rot, int clip_image,
    int out_w, out_h;
 
    // Original Coordinates
-   obj_x = pd->cur->geometry->x;
-   obj_y = pd->cur->geometry->y;
-   obj_w = pd->cur->geometry->w;
-   obj_h = pd->cur->geometry->h;
+   obj_x = pd->cur->geometry.x;
+   obj_y = pd->cur->geometry.y;
+   obj_w = pd->cur->geometry.w;
+   obj_h = pd->cur->geometry.h;
 
    // Clip Region
    clip_x = clip[0];