A comparison of gl/cogl-texture.c and gles/cogl-texture.c, to reduce
differences and improve maintainability. * clutter/cogl/gl/cogl-context.h: Adds a CoglTextureGLVertex typedef + texture_vertices and texture_vertices_size members to CoglContext for using vertex arrays like GLES does * clutter/cogl/gl/cogl-context.c: Initializes texture_vertices + texture_vertices_size members * clutter/cogl/gl/cogl-internal.h: Adds COGL_ENABLE_COLOR_ARRAY * clutter/cogl/gl/cogl.c: Add COGL_ENABLE_COLOR_ARRAY support to cogl_enable * clutter/cogl/gles/cogl-context.h: Change the CoglTextureGLVertex to use GLfloat for the position and texture coord attributes and GLubyte for the color. * clutter/cogl/gles/cogl-texture-private.h: Adds a wrap_mode member like GL has. * clutter/cogl/gl/cogl-texture.c * clutter/cogl/gles/cogl-texture.c: Improves the comparability of the files, such that the remaining differences, better reflect the fundamental differences needed between GL and GLES. Notably GL no longer uses glBegin/glEnd for submitting vertices, it uses vertex arrays like GLES and this gives a small but measurable fps improvement for test-text.
This commit is contained in:
@ -28,6 +28,13 @@
|
||||
|
||||
#include "cogl-primitives.h"
|
||||
|
||||
typedef struct
|
||||
{
|
||||
GLfloat v[3];
|
||||
GLfloat t[2];
|
||||
GLubyte c[4];
|
||||
} CoglTextureGLVertex;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
/* Features cache */
|
||||
@ -56,7 +63,9 @@ typedef struct
|
||||
GLfloat inverse_projection[16];
|
||||
|
||||
/* Textures */
|
||||
GArray *texture_handles;
|
||||
GArray *texture_handles;
|
||||
CoglTextureGLVertex *texture_vertices;
|
||||
gulong texture_vertices_size;
|
||||
|
||||
/* Framebuffer objects */
|
||||
GArray *fbo_handles;
|
||||
|
Reference in New Issue
Block a user