[clutter/wip/pango-share-atlas: 2/14] cogl-pango-display-list: Don't use VBOs if the texture can't handle it



commit 32c91793e46e0625a19c0d2bc98d6cd147dff702
Author: Neil Roberts <neil linux intel com>
Date:   Thu Feb 18 15:04:06 2010 +0000

    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.

 clutter/cogl/pango/cogl-pango-display-list.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/clutter/cogl/pango/cogl-pango-display-list.c b/clutter/cogl/pango/cogl-pango-display-list.c
index 6226a81..7749058 100644
--- a/clutter/cogl/pango/cogl-pango-display-list.c
+++ b/clutter/cogl/pango/cogl-pango-display-list.c
@@ -27,6 +27,7 @@
 
 #include <glib.h>
 #include <cogl/cogl.h>
+#include <cogl/cogl-texture-private.h>
 #include <string.h>
 
 #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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]