cogl-buffer: Use TEXTURE as the only value for CoglBufferUsageHint

We should try to use more explicit defines than GL for our hints. For
now we only support using a CoglBuffer to generate textures.
This commit is contained in:
Damien Lespiau 2010-02-08 17:11:43 +00:00
parent 54a6df22b0
commit c02dded0f6
4 changed files with 19 additions and 45 deletions

View File

@ -147,33 +147,13 @@ GLenum
_cogl_buffer_hints_to_gl_enum (CoglBufferUsageHint usage_hint, _cogl_buffer_hints_to_gl_enum (CoglBufferUsageHint usage_hint,
CoglBufferUpdateHint update_hint) CoglBufferUpdateHint update_hint)
{ {
if (usage_hint == COGL_BUFFER_USAGE_HINT_DRAW) /* usage hint is always TEXTURE for now */
{ if (update_hint == COGL_BUFFER_UPDATE_HINT_STATIC)
if (update_hint == COGL_BUFFER_UPDATE_HINT_STATIC) return GL_STATIC_DRAW;
return GL_STATIC_DRAW; if (update_hint == COGL_BUFFER_UPDATE_HINT_DYNAMIC)
if (update_hint == COGL_BUFFER_UPDATE_HINT_DYNAMIC) return GL_DYNAMIC_DRAW;
return GL_DYNAMIC_DRAW; if (update_hint == COGL_BUFFER_UPDATE_HINT_STREAM)
if (update_hint == COGL_BUFFER_UPDATE_HINT_STREAM) return GL_STREAM_DRAW;
return GL_STREAM_DRAW;
}
if (usage_hint == COGL_BUFFER_USAGE_HINT_READ)
{
if (update_hint == COGL_BUFFER_UPDATE_HINT_STATIC)
return GL_STATIC_READ;
if (update_hint == COGL_BUFFER_UPDATE_HINT_DYNAMIC)
return GL_DYNAMIC_READ;
if (update_hint == COGL_BUFFER_UPDATE_HINT_STREAM)
return GL_STREAM_READ;
}
if (usage_hint == COGL_BUFFER_USAGE_HINT_COPY)
{
if (update_hint == COGL_BUFFER_UPDATE_HINT_STATIC)
return GL_STATIC_COPY;
if (update_hint == COGL_BUFFER_UPDATE_HINT_DYNAMIC)
return GL_DYNAMIC_COPY;
if (update_hint == COGL_BUFFER_UPDATE_HINT_STREAM)
return GL_STREAM_COPY;
}
return GL_STATIC_DRAW; return GL_STATIC_DRAW;
} }
@ -219,8 +199,8 @@ cogl_buffer_set_usage_hint_EXP (CoglHandle handle,
if (!cogl_is_buffer (handle)) if (!cogl_is_buffer (handle))
return; return;
if (G_UNLIKELY (hint > COGL_BUFFER_USAGE_HINT_COPY)) if (G_UNLIKELY (hint > COGL_BUFFER_USAGE_HINT_TEXTURE))
hint = COGL_BUFFER_USAGE_HINT_DRAW; hint = COGL_BUFFER_USAGE_HINT_TEXTURE;
COGL_BUFFER (handle)->usage_hint = hint; COGL_BUFFER (handle)->usage_hint = hint;
} }

View File

@ -75,12 +75,8 @@ cogl_buffer_get_size (CoglHandle handle);
/** /**
* CoglBufferUsageHint: * CoglBufferUsageHint:
* @COGL_BUFFER_USAGE_HINT_DRAW: the buffer will be used as a source for * @COGL_BUFFER_USAGE_HINT_TEXTURE: the buffer will be used as a source data
* drawing commands (e.g. texture), the data coming from the application * for a texture
* @COGL_BUFFER_USAGE_HINT_READ: the buffer will be read by the application,
* the data store being modified by the GPU
* @COGL_BUFFER_USAGE_HINT_COPY: the buffer will be used as a source for
* drawing commands, the data coming from the GPU
* *
* The usage hint on a buffer allows the user to give some clue on how the * The usage hint on a buffer allows the user to give some clue on how the
* buffer will be used. * buffer will be used.
@ -89,9 +85,7 @@ cogl_buffer_get_size (CoglHandle handle);
* Stability: Unstable * Stability: Unstable
*/ */
typedef enum { /*< prefix=COGL_BUFFER_USAGE_HINT >*/ typedef enum { /*< prefix=COGL_BUFFER_USAGE_HINT >*/
COGL_BUFFER_USAGE_HINT_DRAW, COGL_BUFFER_USAGE_HINT_TEXTURE,
COGL_BUFFER_USAGE_HINT_READ,
COGL_BUFFER_USAGE_HINT_COPY,
} CoglBufferUsageHint; } CoglBufferUsageHint;
/** /**

View File

@ -148,7 +148,7 @@ cogl_pixel_buffer_new_EXP (guint size)
/* parent's constructor */ /* parent's constructor */
_cogl_buffer_initialize (buffer, _cogl_buffer_initialize (buffer,
size, size,
COGL_BUFFER_USAGE_HINT_DRAW, COGL_BUFFER_USAGE_HINT_TEXTURE,
COGL_BUFFER_UPDATE_HINT_STATIC); COGL_BUFFER_UPDATE_HINT_STATIC);
/* malloc version only for GLES */ /* malloc version only for GLES */

View File

@ -72,10 +72,10 @@ create_map_tile (TestTile *tile)
g_assert (cogl_is_buffer (buffer)); g_assert (cogl_is_buffer (buffer));
/* while at it, set/get the hints */ /* while at it, set/get the hints */
cogl_buffer_set_usage_hint (buffer, COGL_BUFFER_USAGE_HINT_DRAW); cogl_buffer_set_usage_hint (buffer, COGL_BUFFER_USAGE_HINT_TEXTURE);
g_assert_cmpint (cogl_buffer_get_usage_hint (buffer), g_assert_cmpint (cogl_buffer_get_usage_hint (buffer),
==, ==,
COGL_BUFFER_USAGE_HINT_DRAW); COGL_BUFFER_USAGE_HINT_TEXTURE);
cogl_buffer_set_update_hint (buffer, COGL_BUFFER_UPDATE_HINT_DYNAMIC); cogl_buffer_set_update_hint (buffer, COGL_BUFFER_UPDATE_HINT_DYNAMIC);
g_assert_cmpint (cogl_buffer_get_update_hint (buffer), g_assert_cmpint (cogl_buffer_get_update_hint (buffer),
==, ==,
@ -112,8 +112,8 @@ create_set_region_tile (TestTile *tile)
g_assert (cogl_is_buffer (buffer)); g_assert (cogl_is_buffer (buffer));
/* while at it, set/get the hint */ /* while at it, set/get the hint */
cogl_buffer_set_hint (buffer, COGL_BUFFER_HINT_STATIC_DRAW); cogl_buffer_set_hint (buffer, COGL_BUFFER_HINT_STATIC_TEXTURE);
g_assert (cogl_buffer_get_hint (buffer) == COGL_BUFFER_HINT_STATIC_DRAW); g_assert (cogl_buffer_get_hint (buffer) == COGL_BUFFER_HINT_STATIC_TEXTURE);
data = g_malloc (TILE_SIZE * TILE_SIZE * 4); data = g_malloc (TILE_SIZE * TILE_SIZE * 4);
/* create a buffer with the data we want to copy to the buffer */ /* create a buffer with the data we want to copy to the buffer */
@ -161,10 +161,10 @@ create_set_data_tile (TestTile *tile)
g_assert_cmpint (cogl_buffer_get_size (buffer), ==, rowstride * TILE_SIZE); g_assert_cmpint (cogl_buffer_get_size (buffer), ==, rowstride * TILE_SIZE);
/* while at it, set/get the hint */ /* while at it, set/get the hint */
cogl_buffer_set_usage_hint (buffer, COGL_BUFFER_USAGE_HINT_DRAW); cogl_buffer_set_usage_hint (buffer, COGL_BUFFER_USAGE_HINT_TEXTURE);
g_assert_cmpint (cogl_buffer_get_usage_hint (buffer), g_assert_cmpint (cogl_buffer_get_usage_hint (buffer),
==, ==,
COGL_BUFFER_USAGE_HINT_DRAW); COGL_BUFFER_USAGE_HINT_TEXTURE);
/* create a buffer with the data we want to copy to the buffer */ /* create a buffer with the data we want to copy to the buffer */
data = g_malloc (TILE_SIZE * TILE_SIZE * 4); data = g_malloc (TILE_SIZE * TILE_SIZE * 4);