diff --git a/cogl/cogl-pango/cogl-pango-display-list.c b/cogl/cogl-pango/cogl-pango-display-list.c index 72e381761..8615402b9 100644 --- a/cogl/cogl-pango/cogl-pango-display-list.c +++ b/cogl/cogl-pango/cogl-pango-display-list.c @@ -276,6 +276,7 @@ emit_vertex_buffer_geometry (CoglFramebuffer *fb, gboolean allocated = FALSE; CoglAttribute *attributes[2]; CoglPrimitive *prim; + CoglIndices *indices; int i; n_verts = node->d.texture.rectangles->len * 4; @@ -354,22 +355,11 @@ emit_vertex_buffer_geometry (CoglFramebuffer *fb, attributes, 2 /* n_attributes */); -#ifdef CLUTTER_COGL_HAS_GL - if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUADS)) - cogl_primitive_set_mode (prim, GL_QUADS); - else -#endif - { - /* GLES doesn't support GL_QUADS so instead we use a VBO - with indexed vertices to generate GL_TRIANGLES from the - quads */ + indices = + cogl_get_rectangle_indices (ctx, node->d.texture.rectangles->len); - CoglIndices *indices = - cogl_get_rectangle_indices (ctx, node->d.texture.rectangles->len); - - cogl_primitive_set_indices (prim, indices, - node->d.texture.rectangles->len * 6); - } + cogl_primitive_set_indices (prim, indices, + node->d.texture.rectangles->len * 6); node->d.texture.primitive = prim; diff --git a/cogl/cogl/cogl-journal.c b/cogl/cogl/cogl-journal.c index e09fa2cf2..484696d31 100644 --- a/cogl/cogl/cogl-journal.c +++ b/cogl/cogl/cogl-journal.c @@ -304,46 +304,30 @@ _cogl_journal_flush_modelview_and_entries (CoglJournalEntry *batch_start, if (!_cogl_pipeline_get_real_blend_enabled (state->pipeline)) draw_flags |= COGL_DRAW_COLOR_ATTRIBUTE_IS_OPAQUE; -#ifdef HAVE_COGL_GL - if (_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUADS)) + if (batch_len > 1) + { + CoglVerticesMode mode = COGL_VERTICES_MODE_TRIANGLES; + int first_vertex = state->current_vertex * 6 / 4; + _cogl_framebuffer_draw_indexed_attributes (framebuffer, + state->pipeline, + mode, + first_vertex, + batch_len * 6, + state->indices, + attributes, + state->attributes->len, + draw_flags); + } + else { - /* XXX: it's rather evil that we sneak in the GL_QUADS enum here... */ _cogl_framebuffer_draw_attributes (framebuffer, state->pipeline, - GL_QUADS, - state->current_vertex, batch_len * 4, + COGL_VERTICES_MODE_TRIANGLE_FAN, + state->current_vertex, 4, attributes, state->attributes->len, draw_flags); } - else -#endif /* HAVE_COGL_GL */ - { - if (batch_len > 1) - { - CoglVerticesMode mode = COGL_VERTICES_MODE_TRIANGLES; - int first_vertex = state->current_vertex * 6 / 4; - _cogl_framebuffer_draw_indexed_attributes (framebuffer, - state->pipeline, - mode, - first_vertex, - batch_len * 6, - state->indices, - attributes, - state->attributes->len, - draw_flags); - } - else - { - _cogl_framebuffer_draw_attributes (framebuffer, - state->pipeline, - COGL_VERTICES_MODE_TRIANGLE_FAN, - state->current_vertex, 4, - attributes, - state->attributes->len, - draw_flags); - } - } /* DEBUGGING CODE XXX: This path will cause all rectangles to be * drawn with a coloured outline. Each batch will be rendered with @@ -636,8 +620,7 @@ _cogl_journal_flush_vbo_offsets_and_entries (CoglJournalEntry *batch_start, 4, COGL_ATTRIBUTE_TYPE_UNSIGNED_BYTE); - if (!_cogl_has_private_feature (ctx, COGL_PRIVATE_FEATURE_QUADS)) - state->indices = cogl_get_rectangle_indices (ctx, batch_len); + state->indices = cogl_get_rectangle_indices (ctx, batch_len); /* We only create new Attributes when the stride within the * AttributeBuffer changes. (due to a change in the number of pipeline diff --git a/cogl/cogl/cogl-private.h b/cogl/cogl/cogl-private.h index c168fdf35..007f311ca 100644 --- a/cogl/cogl/cogl-private.h +++ b/cogl/cogl/cogl-private.h @@ -54,7 +54,6 @@ typedef enum COGL_PRIVATE_FEATURE_READ_PIXELS_ANY_FORMAT, COGL_PRIVATE_FEATURE_ALPHA_TEST, COGL_PRIVATE_FEATURE_FORMAT_CONVERSION, - COGL_PRIVATE_FEATURE_QUADS, COGL_PRIVATE_FEATURE_BLEND_CONSTANT, COGL_PRIVATE_FEATURE_QUERY_FRAMEBUFFER_BITS, COGL_PRIVATE_FEATURE_BUILTIN_POINT_SIZE_UNIFORM, diff --git a/cogl/cogl/driver/gl/gl/cogl-driver-gl.c b/cogl/cogl/driver/gl/gl/cogl-driver-gl.c index f94b9d5e7..6765b4f90 100644 --- a/cogl/cogl/driver/gl/gl/cogl-driver-gl.c +++ b/cogl/cogl/driver/gl/gl/cogl-driver-gl.c @@ -484,7 +484,6 @@ _cogl_driver_update_features (CoglContext *ctx, /* Features which are not available in GL 3 */ COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_GL_FIXED, TRUE); COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ALPHA_TEST, TRUE); - COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_QUADS, TRUE); COGL_FLAGS_SET (private_features, COGL_PRIVATE_FEATURE_ALPHA_TEXTURES, TRUE);