gl renderer: Fix fallback node scaling
authorTimm Bäder <mail@baedert.org>
Sun, 15 Apr 2018 16:20:52 +0000 (18:20 +0200)
committerTimm Bäder <mail@baedert.org>
Sat, 21 Apr 2018 08:06:57 +0000 (10:06 +0200)
gsk/gl/gskglrenderer.c

index a52d1811c5b3a9ac40f3ccb62a8c38a0c36c8f97..1c0c1186db8e40e7f4da7d6bf451eaadaa92f5a5 100644 (file)
@@ -263,14 +263,15 @@ render_fallback_node (GskGLRenderer       *self,
                       RenderOpBuilder     *builder,
                       const GskQuadVertex *vertex_data)
 {
+  const float scale = ops_get_scale (builder);
   cairo_surface_t *surface;
   cairo_t *cr;
   int texture_id;
 
   surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-                                        ceilf (node->bounds.size.width) * self->scale_factor,
-                                        ceilf (node->bounds.size.height) * self->scale_factor);
-  cairo_surface_set_device_scale (surface, self->scale_factor, self->scale_factor);
+                                        ceilf (node->bounds.size.width) * scale,
+                                        ceilf (node->bounds.size.height) * scale);
+  cairo_surface_set_device_scale (surface, scale, scale);
   cr = cairo_create (surface);
 
   cairo_save (cr);
@@ -291,8 +292,8 @@ render_fallback_node (GskGLRenderer       *self,
 
   /* Upload the Cairo surface to a GL texture */
   texture_id = gsk_gl_driver_create_texture (self->gl_driver,
-                                             node->bounds.size.width * self->scale_factor,
-                                             node->bounds.size.height * self->scale_factor);
+                                             cairo_image_surface_get_width (surface),
+                                             cairo_image_surface_get_height (surface));
 
   gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id);
   gsk_gl_driver_init_texture_with_surface (self->gl_driver,