[gtk] gl renderer: Ignore 0-sized fallback nodes
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] gl renderer: Ignore 0-sized fallback nodes
- Date: Tue, 26 Jun 2018 19:46:04 +0000 (UTC)
commit 165dab826540cf96aedc6f384b77b3a9ace56741
Author: Timm Bäder <mail baedert org>
Date: Tue Jun 26 21:40:59 2018 +0200
gl renderer: Ignore 0-sized fallback nodes
gsk/gl/gskglrenderer.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
---
diff --git a/gsk/gl/gskglrenderer.c b/gsk/gl/gskglrenderer.c
index 2be5fbeadc..ad2e8c5cf7 100644
--- a/gsk/gl/gskglrenderer.c
+++ b/gsk/gl/gskglrenderer.c
@@ -321,13 +321,19 @@ render_fallback_node (GskGLRenderer *self,
const GskQuadVertex *vertex_data)
{
const float scale = ops_get_scale (builder);
+ const int surface_width = ceilf (node->bounds.size.width) * scale;
+ const int surface_height = ceilf (node->bounds.size.height) * scale;
cairo_surface_t *surface;
cairo_t *cr;
int texture_id;
+ if (surface_width <= 0 ||
+ surface_height <= 0)
+ return;
+
surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
- ceilf (node->bounds.size.width) * scale,
- ceilf (node->bounds.size.height) * scale);
+ surface_width,
+ surface_height);
cairo_surface_set_device_scale (surface, scale, scale);
cr = cairo_create (surface);
@@ -349,8 +355,8 @@ render_fallback_node (GskGLRenderer *self,
/* Upload the Cairo surface to a GL texture */
texture_id = gsk_gl_driver_create_texture (self->gl_driver,
- cairo_image_surface_get_width (surface),
- cairo_image_surface_get_height (surface));
+ surface_width,
+ surface_height);
gsk_gl_driver_bind_source_texture (self->gl_driver, texture_id);
gsk_gl_driver_init_texture_with_surface (self->gl_driver,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]