+ GLWRAP_DEFER (glGetCompressedTexImage, target, level, img);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetCompressedTexImageARB, target, level, img);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetCompressedTextureImageEXT (GLuint texture, GLenum target,
+ GLint lod, GLvoid *img)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetCompressedTextureImageEXT, texture,
+ target, lod, img);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum format, GLenum type, GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetMultiTexImageEXT, texunit,
+ target, level, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetnCompressedTexImageARB (GLenum target, GLint lod,
+ GLsizei bufSize, GLvoid *img)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetnCompressedTexImageARB, target, lod, bufSize, img);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetnTexImageARB (GLenum target, GLint level, GLenum format,
+ GLenum type, GLsizei bufSize, GLvoid *img)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetnTexImageARB, target, level,
+ format, type, bufSize, img);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type,
+ GLvoid *pixels )
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+
+ GLWRAP_DEFER (glGetTexImage, target, level, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+/* METRICS_OP_READ_PIXELS */
+void
+glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLvoid *pixels )
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
+
+ GLWRAP_DEFER (glReadPixels, x, y, width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height,
+ GLenum format, GLenum type, GLsizei bufSize, GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
+
+ GLWRAP_DEFER (glReadnPixelsARB, x, y, width, height,
+ format, type, bufSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+/* METRICS_OP_TEX_IMAGE */
+void
+glTexImage1D (GLenum target, GLint level, GLint internalFormat,
+ GLsizei width, GLint border, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage1D, target, level, internalFormat, width,
+ border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage2D (GLenum target, GLint level, GLint internalFormat,
+ GLsizei width, GLsizei height, GLint border, GLenum format,
+ GLenum type, const GLvoid *pixels )
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage2D, target, level, internalFormat,
+ width, height, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+
+void
+glTexImage2DMultisample (GLenum target, GLsizei samples,
+ GLint internalformat, GLsizei width, GLsizei height,
+ GLboolean fixedsamplelocations)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage2DMultisample, target, samples,
+ internalformat, width, height, fixedsamplelocations);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples,
+ GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height,
+ GLboolean fixedSampleLocations)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage2DMultisampleCoverageNV, target,
+ coverageSamples, colorSamples, internalFormat,
+ width, height, fixedSampleLocations);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage3D (GLenum target, GLint level, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage3D, target, level, internalformat,
+ width, height, depth, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth, GLint border,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage3DEXT, target, level, internalformat,
+ width, height, depth, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedsamplelocations)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage3DMultisample, target, samples,
+ internalformat, width, height, depth,
+ fixedsamplelocations);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples,
+ GLsizei colorSamples, GLint internalFormat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLboolean fixedSampleLocations)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage3DMultisampleCoverageNV, target,
+ coverageSamples, colorSamples, internalFormat,
+ width, height, depth, fixedSampleLocations);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLsizei size4d, GLint border, GLenum format,
+ GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexImage4DSGIS, target, level,
+ internalformat, width, height, depth,
+ size4d, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage1D (GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage1D, target, level, xoffset,
+ width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage1DEXT, target, level, xoffset,
+ width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage2D, target, level, xoffset, yoffset,
+ width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLsizei width, GLsizei height, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage2DEXT, target, level, xoffset, yoffset,
+ width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage3D, target, level, xoffset, yoffset,
+ zoffset, width, height, depth, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage3DEXT, target, level, xoffset, yoffset,
+ zoffset, width, height, depth, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset,
+ GLint zoffset, GLint woffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLsizei size4d,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glTexSubImage4DSGIS, target, level, xoffset,
+ yoffset, zoffset, woffset, width, height,
+ depth, size4d, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexImage1DEXT, texunit, target,
+ level, internalformat, width, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexImage2DEXT, texunit, target, level,
+ internalformat, width, height, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexImage3DEXT, texunit, target,
+ level, internalformat, width, height, depth,
+ border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLsizei width, GLenum format,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexSubImage1DEXT, texunit, target,
+ level, xoffset, width, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexSubImage2DEXT, texunit, target, level,
+ xoffset, yoffset, width, height, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedMultiTexSubImage3DEXT, texunit, target,
+ level, xoffset, yoffset, zoffset, width, height,
+ depth, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLint border, GLsizei imageSize,
+ const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage1D, target, level,
+ internalformat, width, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLint border, GLsizei imageSize,
+ const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage1DARB, target, level, internalformat,
+ width, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage2D, target, level, internalformat,
+ width, height, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLint border,
+ GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage2DARB, target, level, internalformat,
+ width, height, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage3D, target, level, internalformat,
+ width, height, depth, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLint border, GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexImage3DARB, target, level, internalformat,
+ width, height, depth, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLsizei imageSize,
+ const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage1D, target, level, xoffset,
+ width, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset,
+ GLsizei width, GLenum format, GLsizei imageSize,
+ const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage1DARB, target, level, xoffset,
+ width, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage2D, target, level, xoffset,
+ yoffset, width, height, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLsizei width, GLsizei height,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage2DARB, target, level, xoffset,
+ yoffset, width, height, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage3D, target, level, xoffset,
+ yoffset, zoffset, width, height, depth, format,
+ imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset,
+ GLint yoffset, GLint zoffset, GLsizei width,
+ GLsizei height, GLsizei depth, GLenum format,
+ GLsizei imageSize, const GLvoid *data)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTexSubImage3DARB, target, level, xoffset,
+ yoffset, zoffset, width, height, depth, format,
+ imageSize, data);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLint border, GLsizei imageSize,
+ const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureImage1DEXT, texture, target, level,
+ internalformat, width, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLint border,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureImage2DEXT, texture, target, level,
+ internalformat, width, height, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width,
+ GLsizei height, GLsizei depth, GLint border,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureImage3DEXT, texture, target,
+ level, internalformat, width, height, depth,
+ border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level,
+ GLint xoffset, GLsizei width, GLenum format,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureSubImage1DEXT, texture, target,
+ level, xoffset, width, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format,
+ GLsizei imageSize, const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureSubImage2DEXT, texture, target, level,
+ xoffset, yoffset, width, height, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLsizei imageSize,
+ const GLvoid *bits)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glCompressedTextureSubImage3DEXT, texture, target,
+ level, xoffset, yoffset, zoffset, width, height,
+ depth, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width, GLint border,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexImage1DEXT, texunit, target, level,
+ internalformat, width, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width, GLsizei height,
+ GLint border, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexImage2DEXT, texunit, target, level,
+ internalformat, width, height, border, format,
+ type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level,
+ GLenum internalformat, GLsizei width, GLsizei height,
+ GLsizei depth, GLint border, GLenum format,
+ GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexImage3DEXT, texunit, target, level,
+ internalformat, width, height, depth, border,
+ format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLsizei width, GLenum format,
+ GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexSubImage1DEXT, texunit, target, level,
+ xoffset, width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLsizei width,
+ GLsizei height, GLenum format, GLenum type,
+ const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexSubImage2DEXT, texunit, target, level, xoffset,
+ yoffset, width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
+}
+
+void
+glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level,
+ GLint xoffset, GLint yoffset, GLint zoffset,
+ GLsizei width, GLsizei height, GLsizei depth,
+ GLenum format, GLenum type, const GLvoid *pixels)
+{
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+
+ GLWRAP_DEFER (glMultiTexSubImage3DEXT, texunit, target, level,
+ xoffset, yoffset, zoffset, width, height, depth,
+ format, type, pixels);
+
+ RESTORE_METRICS_OP ();