mirror of
https://github.com/brl/mutter.git
synced 2025-01-11 20:22:23 +00:00
test-cogl-materials: Use glGetString to determine cogl driver
Rather than using the #ifdefs and assuming that only one Cogl driver is compiled in (which is no longer true), the test now calls glGetString to check the GL_VERSION. This is kind of a hack but the test is already calling GL functions directly anyway.
This commit is contained in:
parent
2bb4c2c6cb
commit
fa336ab57f
@ -126,6 +126,15 @@ test_invalid_texture_layers (TestState *state, int x, int y)
|
|||||||
test_material_with_primitives (state, x, y, 0xffffffff);
|
test_material_with_primitives (state, x, y, 0xffffffff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
using_gles2_driver (void)
|
||||||
|
{
|
||||||
|
/* FIXME: This should probably be replaced with some way to query
|
||||||
|
the driver from Cogl */
|
||||||
|
return g_str_has_prefix ((const char *) glGetString (GL_VERSION),
|
||||||
|
"OpenGL ES 2");
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
test_using_all_layers (TestState *state, int x, int y)
|
test_using_all_layers (TestState *state, int x, int y)
|
||||||
{
|
{
|
||||||
@ -154,6 +163,7 @@ test_using_all_layers (TestState *state, int x, int y)
|
|||||||
/* FIXME: Cogl doesn't provide a way to query the maximum number of
|
/* FIXME: Cogl doesn't provide a way to query the maximum number of
|
||||||
texture layers so for now we'll just ask GL directly. */
|
texture layers so for now we'll just ask GL directly. */
|
||||||
#ifdef COGL_HAS_GLES2
|
#ifdef COGL_HAS_GLES2
|
||||||
|
if (using_gles2_driver ())
|
||||||
{
|
{
|
||||||
GLint n_image_units, n_attribs;
|
GLint n_image_units, n_attribs;
|
||||||
/* GLES 2 doesn't have GL_MAX_TEXTURE_UNITS and it uses
|
/* GLES 2 doesn't have GL_MAX_TEXTURE_UNITS and it uses
|
||||||
@ -167,9 +177,14 @@ test_using_all_layers (TestState *state, int x, int y)
|
|||||||
n_attribs -= 2;
|
n_attribs -= 2;
|
||||||
n_layers = MIN (n_attribs, n_image_units);
|
n_layers = MIN (n_attribs, n_image_units);
|
||||||
}
|
}
|
||||||
#else
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
#if defined(COGL_HAS_GLES1) || defined(COGL_HAS_GL)
|
||||||
glGetIntegerv (GL_MAX_TEXTURE_UNITS, &n_layers);
|
glGetIntegerv (GL_MAX_TEXTURE_UNITS, &n_layers);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
/* FIXME: is this still true? */
|
/* FIXME: is this still true? */
|
||||||
/* Cogl currently can't cope with more than 32 layers so we'll also
|
/* Cogl currently can't cope with more than 32 layers so we'll also
|
||||||
limit the maximum to that. */
|
limit the maximum to that. */
|
||||||
|
Loading…
Reference in New Issue
Block a user