gl renderer: Slightly change ops_offset behavior
authorTimm Bäder <mail@baedert.org>
Wed, 11 Apr 2018 16:09:30 +0000 (18:09 +0200)
committerTimm Bäder <mail@baedert.org>
Wed, 11 Apr 2018 17:14:54 +0000 (19:14 +0200)
Add the given delta to the current one instead of replacing it.

gsk/gl/gskglrenderer.c
gsk/gl/gskglrenderops.c

index bde136b75e8239dcd9fd3b91426066a3ed286c6e..9a9ae2ea61b3b1dfda124cb5ba4ccbae18ab7c7c 100644 (file)
@@ -1357,8 +1357,6 @@ render_shadow_node (GskGLRenderer       *self,
       const float dy = shadow->dy;
       int texture_id;
       gboolean is_offscreen;
-      float prev_dx;
-      float prev_dy;
 
       g_assert (shadow->radius <= 0);
 
@@ -1367,14 +1365,11 @@ render_shadow_node (GskGLRenderer       *self,
       max_x = min_x + shadow_child->bounds.size.width;
       max_y = min_y + shadow_child->bounds.size.height;
 
-      prev_dx = builder->dx;
-      prev_dy = builder->dy;
-
       if (gsk_render_node_get_node_type (shadow_child) == GSK_TEXT_NODE)
         {
           ops_offset (builder, dx, dy);
           render_text_node (self, shadow_child, builder, &shadow->color, TRUE);
-          ops_offset (builder, prev_dx, prev_dy);
+          ops_offset (builder, - dx, - dy);
           continue;
         }
 
@@ -1416,7 +1411,7 @@ render_shadow_node (GskGLRenderer       *self,
           ops_draw (builder, vertex_data);
         }
 
-      ops_offset (builder, prev_dx, prev_dy);
+      ops_offset (builder, - dx, - dy);
     }
 
   /* Now draw the child normally */
index ea5c525635927e45b0a9992f75429445140ceaff..d05ec61a0fa210d6ef9de94f959fce378c2fa33f 100644 (file)
@@ -429,8 +429,8 @@ ops_offset (RenderOpBuilder *builder,
             float            x,
             float            y)
 {
-  builder->dx = x;
-  builder->dy = y;
+  builder->dx += x;
+  builder->dy += y;
 }
 
 void