From a2d9ad21ef6f4319867700c0940065f1a6974930 Mon Sep 17 00:00:00 2001 From: Neil Roberts Date: Thu, 18 Feb 2010 15:04:06 +0000 Subject: [PATCH] cogl-pango-display-list: Don't use VBOs if the texture can't handle it If the texture can't be hardware repeated (ie, if it is sliced or it has waste) then Cogl will reject the layer when rendering with a VBO. In this case we should always fall back to rendering with cogl_rectangle. This commit is only needed temporarily because Cogl will end up putting atlas textures in the display list. A later commit in the series will make it so that the display list always has primitive textures in it so this commit can be reverted. --- pango/cogl-pango-display-list.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pango/cogl-pango-display-list.c b/pango/cogl-pango-display-list.c index 6226a81cd..7749058f5 100644 --- a/pango/cogl-pango-display-list.c +++ b/pango/cogl-pango-display-list.c @@ -27,6 +27,7 @@ #include #include +#include #include #include "cogl-pango-display-list.h" @@ -325,7 +326,10 @@ _cogl_pango_display_list_render_texture (CoglMaterial *material, * with other geometry. */ /* FIXME: 100 is a number I plucked out of thin air; it would be good * to determine this empirically! */ - if (node->d.texture.verts->len < 100) + if (node->d.texture.verts->len < 100 || + /* We can't use a VBO if the texture can't be hardware repeated + because Cogl will reject it */ + !_cogl_texture_can_hardware_repeat (node->d.texture.texture)) emit_rectangles_through_journal (node); else emit_vertex_buffer_geometry (node);