enums for this extension, the changes to gl.h can be removed.
#endif /* GL_ATI_blend_equation_separate */
+/* As soon as the official glext.h is updated to include this, it will be
+ * removed from here.
+ */
+#ifndef GL_OES_read_format
+#define GL_OES_read_format 1
+
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B
+
+#endif /* GL_OES_read_format */
+
/**
** NOTE!!!!! If you add new functions to this file, or update
** glext.h be sure to regenerate the gl_mangle.h file. See comments
static void
Init( GLboolean ciMode )
{
+ GLboolean have_read_format = GL_FALSE;
+
printf("GL_VERSION = %s\n", (char *) glGetString(GL_VERSION));
printf("GL_RENDERER = %s\n", (char *) glGetString(GL_RENDERER));
}
}
+#ifdef GL_OES_read_format
+ if ( glutExtensionSupported( "GL_OES_read_format" ) ) {
+ glGetIntegerv( GL_IMPLEMENTATION_COLOR_READ_TYPE_OES, & ReadType );
+ glGetIntegerv( GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES, & ReadFormat );
+
+ have_read_format = GL_TRUE;
+ }
+#endif
+
+ printf( "GL_OES_read_format %ssupported. "
+ "Using type / format = 0x%04x / 0x%04x\n",
+ (have_read_format) ? "" : "not ",
+ ReadType, ReadFormat );
+
printf("Loaded %d by %d image\n", ImgWidth, ImgHeight );
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
ctx->Const.MaxDrawBuffers = MAX_DRAW_BUFFERS;
+ ctx->Const.ColorReadFormat = GL_RGBA;
+ ctx->Const.ColorReadType = GL_UNSIGNED_BYTE;
+
/* sanity checks */
ASSERT(ctx->Const.MaxTextureUnits == MAX2(ctx->Const.MaxTextureImageUnits, ctx->Const.MaxTextureCoordUnits));
}
{ ON, "GL_NV_texgen_reflection", F(NV_texgen_reflection) },
{ OFF, "GL_NV_vertex_program", F(NV_vertex_program) },
{ OFF, "GL_NV_vertex_program1_1", F(NV_vertex_program1_1) },
+ { ON, "GL_OES_read_format", F(OES_read_format) },
{ OFF, "GL_SGI_color_matrix", F(SGI_color_matrix) },
{ OFF, "GL_SGI_color_table", F(SGI_color_table) },
{ OFF, "GL_SGI_texture_color_table", F(SGI_texture_color_table) },
}
break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
+ *params = INT_TO_BOOL(ctx->Const.ColorReadType);
+ return;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
+ *params = INT_TO_BOOL(ctx->Const.ColorReadFormat);
+ return;
+
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetBooleanv(pname=0x%x)", pname);
}
}
break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
+ *params = (GLdouble) ctx->Const.ColorReadType;
+ return;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
+ *params = (GLdouble) ctx->Const.ColorReadFormat;
+ return;
+
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetDoublev(pname=0x%x)", pname);
}
}
break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
+ *params = (GLfloat) ctx->Const.ColorReadType;
+ return;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
+ *params = (GLfloat) ctx->Const.ColorReadFormat;
+ return;
+
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetFloatv(0x%x)", pname);
}
}
break;
+ case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES:
+ *params = ctx->Const.ColorReadType;
+ return;
+ case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES:
+ *params = ctx->Const.ColorReadFormat;
+ return;
+
default:
_mesa_error(ctx, GL_INVALID_ENUM, "glGetIntegerv(pname=0x%x)", pname);
}
GLboolean CheckArrayBounds;
/* GL_ARB_draw_buffers */
GLuint MaxDrawBuffers;
+ /* GL_OES_read_format */
+ GLenum ColorReadFormat;
+ GLenum ColorReadType;
};
GLboolean NV_texture_rectangle;
GLboolean NV_vertex_program;
GLboolean NV_vertex_program1_1;
+ GLboolean OES_read_format;
GLboolean SGI_color_matrix;
GLboolean SGI_color_table;
GLboolean SGI_texture_color_table;