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 *