GlFunction(Void, "glGetProgramBinaryOES", [(GLprogram, "program"), (GLsizei, "bufSize"), Out(Pointer(GLsizei), "length"), Out(Pointer(GLenum), "binaryFormat"), Out(OpaqueBlob(GLvoid, "length ? *length : bufSize"), "binary")], sideeffects=False),
GlFunction(Void, "glProgramBinaryOES", [(GLprogram, "program"), (GLenum, "binaryFormat"), (Blob(Const(GLvoid), "length"), "binary"), (GLsizei, "length")]),
+ # GL_OES_draw_texture
+ GlFunction(Void, "glDrawTexfOES", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "width"), (GLfloat, "height")]),
+ GlFunction(Void, "glDrawTexfvOES", [(Array(Const(GLfloat), 4), "coords")]),
+ GlFunction(Void, "glDrawTexiOES", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "width"), (GLint, "height")]),
+ GlFunction(Void, "glDrawTexivOES", [(Array(Const(GLint), 4), "coords")]),
+ GlFunction(Void, "glDrawTexsOES", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "width"), (GLshort, "height")]),
+ GlFunction(Void, "glDrawTexsvOES", [(Array(Const(GLshort), 4), "coords")]),
+
# GL_EXT_discard_framebuffer
GlFunction(Void, "glDiscardFramebufferEXT", [(GLenum, "target"), (GLsizei, "numAttachments"), (Array(Const(GLenum), "numAttachments"), "attachments")]),
("glGet", E, 1, "GL_IMPLEMENTATION_COLOR_READ_TYPE"), # 0x8B9A
("glGet", E, 1, "GL_IMPLEMENTATION_COLOR_READ_FORMAT"), # 0x8B9B
#("", X, 1, "GL_POINT_SIZE_ARRAY_OES"), # 0x8B9C
- #("", X, 1, "GL_TEXTURE_CROP_RECT_OES"), # 0x8B9D
+ ("glGetTexParameter", I, 4, "GL_TEXTURE_CROP_RECT_OES"), # 0x8B9D
#("", X, 1, "GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"), # 0x8B9E
#("", X, 1, "GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"), # 0x8B9F
#("", X, 1, "GL_FRAGMENT_PROGRAM_POSITION_MESA"), # 0x8BB0