X-Git-Url: https://git.cworth.org/git?p=glenv;a=blobdiff_plain;f=glwrap.c;h=64fb95c2cee9c7a5d3e8d49f963b8fd06d94852d;hp=a229e4bcd28b0a64432554c3f3479ff7ca4ad9f1;hb=HEAD;hpb=07eb5e7a7a1098297bc49f822bb78c293980c02e diff --git a/glwrap.c b/glwrap.c index a229e4b..64fb95c 100644 --- a/glwrap.c +++ b/glwrap.c @@ -230,112 +230,79 @@ glenv_minor_version (void) return atoi (decimal + 1); } -void -glGetDoublev (GLenum pname, GLdouble *params) +/* Read the user-specified glenv value for 'name'. + * + * Returns true if a value is available and is written to 'value'. + */ +static int +glenv_get_integer (GLenum name, int *value) { - switch (pname) { + switch (name) { case GL_NUM_EXTENSIONS: if (glenv_gl_extensions) { - *params = glenv_num_gl_extensions; - return; + *value = glenv_num_gl_extensions; + return 1; } break; case GL_MAJOR_VERSION: if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_major_version(); - return; + *value = glenv_major_version(); + return 1; } break; case GL_MINOR_VERSION: if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_minor_version(); - return; + *value = glenv_minor_version(); + return 1; } break; } - GLAZE_DEFER (glGetDoublev, pname, params); + return 0; +} + +void +glGetDoublev (GLenum pname, GLdouble *params) +{ + int value; + + if (glenv_get_integer (pname, &value)) + *params = value; + else + GLAZE_DEFER (glGetDoublev, pname, params); } void glGetFloatv (GLenum pname, GLfloat *params) { - switch (pname) { - case GL_NUM_EXTENSIONS: - if (glenv_gl_extensions) { - *params = glenv_num_gl_extensions; - return; - } - break; - case GL_MAJOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_major_version(); - return; - } - break; - case GL_MINOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_minor_version(); - return; - } - break; - } + int value; - GLAZE_DEFER (glGetFloatv, pname, params); + if (glenv_get_integer (pname, &value)) + *params = value; + else + GLAZE_DEFER (glGetFloatv, pname, params); } void glGetIntegerv (GLenum pname, GLint *params) { - switch (pname) { - case GL_NUM_EXTENSIONS: - if (glenv_gl_extensions) { - *params = glenv_num_gl_extensions; - return; - } - break; - case GL_MAJOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_major_version(); - return; - } - break; - case GL_MINOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_minor_version(); - return; - } - break; - } + int value; - GLAZE_DEFER (glGetIntegerv, pname, params); + if (glenv_get_integer (pname, &value)) + *params = value; + else + GLAZE_DEFER (glGetIntegerv, pname, params); } void glGetInteger64v (GLenum pname, GLint64 * params) { - switch (pname) { - case GL_NUM_EXTENSIONS: - if (glenv_gl_extensions) { - *params = glenv_num_gl_extensions; - return; - } - break; - case GL_MAJOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_major_version(); - return; - } - break; - case GL_MINOR_VERSION: - if (getenv ("GLENV_GL_VERSION")) { - *params = glenv_minor_version(); - return; - } - break; - } + int value; - GLAZE_DEFER (glGetInteger64v, pname, params); + if (glenv_get_integer (pname, &value)) + *params = value; + else + GLAZE_DEFER (glGetInteger64v, pname, params); } const GLubyte *