This fixes the bug where an operation such as glClear would
incorrectly accrue all subsequent time until the next call to
glUseProgram would change the op away from glClear.
Now, each non-shader operation that changes the metrics operation
restores it to its previous value immediately afterward.
+/* Switch metrics operation persistently, (until next SWITCH) */
#define SWITCH_METRICS_OP(op) \
metrics_counter_stop (); \
metrics_set_current_op (op); \
metrics_counter_start ();
#define SWITCH_METRICS_OP(op) \
metrics_counter_stop (); \
metrics_set_current_op (op); \
metrics_counter_start ();
+/* Switch metrics operation temporarily, see RESTORE_METRICS_OP */
+#define SAVE_THEN_SWITCH_METRICS_OP(op) \
+ metrics_op_t save = metrics_get_current_op (); \
+ SWITCH_METRICS_OP (op);
+
+/* Switch back to metrics operation saved by SAVE_THEN_SWITCH_METRICS_OP */
+#define RESTORE_METRICS_OP(op) \
+ SWITCH_METRICS_OP (save);
+
void
glwrap_set_gl_handle (void *handle)
{
void
glwrap_set_gl_handle (void *handle)
{
void
glAccum (GLenum op, GLfloat value)
{
void
glAccum (GLenum op, GLfloat value)
{
- SWITCH_METRICS_OP (METRICS_OP_ACCUM);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_ACCUM);
GLWRAP_DEFER (glAccum, op, value);
GLWRAP_DEFER (glAccum, op, value);
+
+ RESTORE_METRICS_OP ();
}
void
glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
}
void
glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
{
- SWITCH_METRICS_OP (METRICS_OP_ACCUM);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_ACCUM);
GLWRAP_DEFER (glClearAccum, red, green, blue, alpha);
GLWRAP_DEFER (glClearAccum, red, green, blue, alpha);
+
+ RESTORE_METRICS_OP ();
}
void
glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
{
}
void
glClearAccumxOES (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
{
- SWITCH_METRICS_OP (METRICS_OP_ACCUM);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_ACCUM);
GLWRAP_DEFER (glClearAccumxOES, red, green, blue, alpha);
GLWRAP_DEFER (glClearAccumxOES, red, green, blue, alpha);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_BUFFER_DATA */
void
glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
{
}
/* METRICS_OP_BUFFER_DATA */
void
glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glBufferData, target, size, data, usage);
GLWRAP_DEFER (glBufferData, target, size, data, usage);
+
+ RESTORE_METRICS_OP ();
}
void
glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const GLvoid *data,
GLenum usage)
{
}
void
glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const GLvoid *data,
GLenum usage)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glNamedBufferDataEXT, buffer, size, data, usage);
GLWRAP_DEFER (glNamedBufferDataEXT, buffer, size, data, usage);
+
+ RESTORE_METRICS_OP ();
}
void
glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size,
const GLvoid *data)
{
}
void
glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glBufferSubData, target, offset, size, data);
GLWRAP_DEFER (glBufferSubData, target, offset, size, data);
+
+ RESTORE_METRICS_OP ();
}
void
glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size,
const GLvoid *data)
{
}
void
glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glNamedBufferSubDataEXT, buffer, offset, size, data);
GLWRAP_DEFER (glNamedBufferSubDataEXT, buffer, offset, size, data);
+
+ RESTORE_METRICS_OP ();
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBuffer, target, access);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBuffer, target, access);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBufferARB, target, access);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBufferARB, target, access);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBufferRange, target, offset,
length, access);
GLWRAP_DEFER_WITH_RETURN (ret, glMapBufferRange, target, offset,
length, access);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapBuffer, target);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapBuffer, target);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapNamedBufferEXT, buffer);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapNamedBufferEXT, buffer);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapBufferARB, target);
GLWRAP_DEFER_WITH_RETURN (ret, glUnmapBufferARB, target);
+ RESTORE_METRICS_OP ();
+
return ret;
}
void
glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length)
{
return ret;
}
void
glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glFlushMappedBufferRange, target, offset, length);
GLWRAP_DEFER (glFlushMappedBufferRange, target, offset, length);
+
+ RESTORE_METRICS_OP ();
}
void
glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size)
{
}
void
glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glFlushMappedBufferRangeAPPLE, target, offset, size);
GLWRAP_DEFER (glFlushMappedBufferRangeAPPLE, target, offset, size);
+
+ RESTORE_METRICS_OP ();
}
void
glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset,
GLsizeiptr length)
{
}
void
glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset,
GLsizeiptr length)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER (glFlushMappedNamedBufferRangeEXT, buffer, offset, length);
GLWRAP_DEFER (glFlushMappedNamedBufferRangeEXT, buffer, offset, length);
+
+ RESTORE_METRICS_OP ();
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glMapNamedBufferEXT, buffer, access);
GLWRAP_DEFER_WITH_RETURN (ret, glMapNamedBufferEXT, buffer, access);
+ RESTORE_METRICS_OP ();
+
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_DATA);
GLWRAP_DEFER_WITH_RETURN (ret, glMapNamedBufferRangeEXT, buffer,
offset, length, access);
GLWRAP_DEFER_WITH_RETURN (ret, glMapNamedBufferRangeEXT, buffer,
offset, length, access);
+ RESTORE_METRICS_OP ();
+
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size)
{
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_SUB_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_SUB_DATA);
GLWRAP_DEFER (glCopyBufferSubData, readTarget, writeTarget,
readOffset, writeOffset, size);
GLWRAP_DEFER (glCopyBufferSubData, readTarget, writeTarget,
readOffset, writeOffset, size);
+
+ RESTORE_METRICS_OP ();
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size)
{
GLintptr readOffset, GLintptr writeOffset,
GLsizeiptr size)
{
- SWITCH_METRICS_OP (METRICS_OP_BUFFER_SUB_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BUFFER_SUB_DATA);
GLWRAP_DEFER (glNamedCopyBufferSubDataEXT, readBuffer,
writeBuffer, readOffset, writeOffset, size);
GLWRAP_DEFER (glNamedCopyBufferSubDataEXT, readBuffer,
writeBuffer, readOffset, writeOffset, size);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_BITMAP */
}
/* METRICS_OP_BITMAP */
glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig,
GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
{
glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig,
GLfloat xmove, GLfloat ymove, const GLubyte *bitmap)
{
- SWITCH_METRICS_OP (METRICS_OP_BITMAP);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BITMAP);
GLWRAP_DEFER (glBitmap, width, height, xorig, yorig,
xmove, ymove, bitmap);
GLWRAP_DEFER (glBitmap, width, height, xorig, yorig,
xmove, ymove, bitmap);
+
+ RESTORE_METRICS_OP ();
}
void
glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig,
GLfixed xmove, GLfixed ymove, const GLubyte *bitmap)
{
}
void
glBitmapxOES (GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig,
GLfixed xmove, GLfixed ymove, const GLubyte *bitmap)
{
- SWITCH_METRICS_OP (METRICS_OP_BITMAP);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BITMAP);
GLWRAP_DEFER (glBitmapxOES, width, height, xorig, yorig,
xmove, ymove, bitmap);
GLWRAP_DEFER (glBitmapxOES, width, height, xorig, yorig,
xmove, ymove, bitmap);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_BLIT_FRAMEBUFFER */
}
/* METRICS_OP_BLIT_FRAMEBUFFER */
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter)
{
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter)
{
- SWITCH_METRICS_OP (METRICS_OP_BLIT_FRAMEBUFFER);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BLIT_FRAMEBUFFER);
GLWRAP_DEFER (glBlitFramebuffer, srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, mask, filter);
GLWRAP_DEFER (glBlitFramebuffer, srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, mask, filter);
+
+ RESTORE_METRICS_OP ();
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter)
{
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
GLbitfield mask, GLenum filter)
{
- SWITCH_METRICS_OP (METRICS_OP_BLIT_FRAMEBUFFER);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_BLIT_FRAMEBUFFER);
GLWRAP_DEFER (glBlitFramebufferEXT, srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, mask, filter);
GLWRAP_DEFER (glBlitFramebufferEXT, srcX0, srcY0, srcX1, srcY1,
dstX0, dstY0, dstX1, dstY1, mask, filter);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_CLEAR */
void
glClear (GLbitfield mask)
{
}
/* METRICS_OP_CLEAR */
void
glClear (GLbitfield mask)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR);
GLWRAP_DEFER (glClear, mask);
GLWRAP_DEFER (glClear, mask);
+
+ RESTORE_METRICS_OP ();
}
void
glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
{
}
void
glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR);
GLWRAP_DEFER (glClearBufferfi, buffer, drawbuffer, depth, stencil);
GLWRAP_DEFER (glClearBufferfi, buffer, drawbuffer, depth, stencil);
+
+ RESTORE_METRICS_OP ();
}
void
glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value)
{
}
void
glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR);
GLWRAP_DEFER (glClearBufferfv, buffer, drawbuffer, value);
GLWRAP_DEFER (glClearBufferfv, buffer, drawbuffer, value);
+
+ RESTORE_METRICS_OP ();
}
void
glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value)
{
}
void
glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR);
GLWRAP_DEFER (glClearBufferiv, buffer, drawbuffer, value);
GLWRAP_DEFER (glClearBufferiv, buffer, drawbuffer, value);
+
+ RESTORE_METRICS_OP ();
}
void
glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value)
{
}
void
glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR);
GLWRAP_DEFER (glClearBufferuiv, buffer, drawbuffer, value);
GLWRAP_DEFER (glClearBufferuiv, buffer, drawbuffer, value);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_CLEAR_BUFFER_DATA */
}
/* METRICS_OP_CLEAR_BUFFER_DATA */
glClearBufferData (GLenum target, GLenum internalformat, GLenum format,
GLenum type, const void *data)
{
glClearBufferData (GLenum target, GLenum internalformat, GLenum format,
GLenum type, const void *data)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
GLWRAP_DEFER (glClearBufferData, target, internalformat, format,
type, data);
GLWRAP_DEFER (glClearBufferData, target, internalformat, format,
type, data);
+
+ RESTORE_METRICS_OP ();
GLsizeiptr size, GLenum format, GLenum type,
const void *data)
{
GLsizeiptr size, GLenum format, GLenum type,
const void *data)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
GLWRAP_DEFER (glClearBufferSubData, target, internalformat,
offset, size, format, type, data);
GLWRAP_DEFER (glClearBufferSubData, target, internalformat,
offset, size, format, type, data);
+
+ RESTORE_METRICS_OP ();
}
void
glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format,
GLenum type, const void *data)
{
}
void
glClearNamedBufferDataEXT (GLuint buffer, GLenum internalformat, GLenum format,
GLenum type, const void *data)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
GLWRAP_DEFER (glClearNamedBufferDataEXT, buffer, internalformat,
format, type, data);
GLWRAP_DEFER (glClearNamedBufferDataEXT, buffer, internalformat,
format, type, data);
+
+ RESTORE_METRICS_OP ();
GLenum format, GLenum type, GLsizeiptr offset,
GLsizeiptr size, const void *data)
{
GLenum format, GLenum type, GLsizeiptr offset,
GLsizeiptr size, const void *data)
{
- SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_CLEAR_BUFFER_DATA);
GLWRAP_DEFER (glClearNamedBufferSubDataEXT, buffer,
internalformat, format, type, offset, size, data);
GLWRAP_DEFER (glClearNamedBufferSubDataEXT, buffer,
internalformat, format, type, offset, size, data);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_CLEAR_TEX_IMAGE */
}
/* METRICS_OP_CLEAR_TEX_IMAGE */
void
glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type )
{
void
glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type )
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_PIXELS);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_PIXELS);
GLWRAP_DEFER (glCopyPixels, x, y, width, height, type);
GLWRAP_DEFER (glCopyPixels, x, y, width, height, type);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_COPY_TEX_IMAGE */
}
/* METRICS_OP_COPY_TEX_IMAGE */
glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat,
GLint x, GLint y, GLsizei width, GLint border)
{
glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat,
GLint x, GLint y, GLsizei width, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexImage1D, target, level, internalformat,
x, y, width, border);
GLWRAP_DEFER (glCopyTexImage1D, target, level, internalformat,
x, y, width, border);
+
+ RESTORE_METRICS_OP ();
}
void
glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat,
GLint x, GLint y, GLsizei width, GLint border)
{
}
void
glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat,
GLint x, GLint y, GLsizei width, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexImage1DEXT, target, level, internalformat,
x, y, width, border);
GLWRAP_DEFER (glCopyTexImage1DEXT, target, level, internalformat,
x, y, width, border);
+
+ RESTORE_METRICS_OP ();
GLint x, GLint y, GLsizei width, GLsizei height,
GLint border)
{
GLint x, GLint y, GLsizei width, GLsizei height,
GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexImage2D, target, level, internalformat,
x, y, width, height, border);
GLWRAP_DEFER (glCopyTexImage2D, target, level, internalformat,
x, y, width, height, border);
+
+ RESTORE_METRICS_OP ();
GLint x, GLint y, GLsizei width, GLsizei height,
GLint border)
{
GLint x, GLint y, GLsizei width, GLsizei height,
GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexImage2DEXT, target, level, internalformat,
x, y, width, height, border);
GLWRAP_DEFER (glCopyTexImage2DEXT, target, level, internalformat,
x, y, width, height, border);
+
+ RESTORE_METRICS_OP ();
}
void
glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset,
GLint x, GLint y, GLsizei width)
{
}
void
glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset,
GLint x, GLint y, GLsizei width)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage1D, target, level, xoffset,
x, y, width);
GLWRAP_DEFER (glCopyTexSubImage1D, target, level, xoffset,
x, y, width);
+
+ RESTORE_METRICS_OP ();
}
void
glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset,
GLint x, GLint y, GLsizei width)
{
}
void
glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset,
GLint x, GLint y, GLsizei width)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage1DEXT, target, level, xoffset,
x, y, width);
GLWRAP_DEFER (glCopyTexSubImage1DEXT, target, level, xoffset,
x, y, width);
+
+ RESTORE_METRICS_OP ();
GLint yoffset, GLint x, GLint y, GLsizei width,
GLsizei height)
{
GLint yoffset, GLint x, GLint y, GLsizei width,
GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage2D, target, level, xoffset, yoffset,
x, y, width, height);
GLWRAP_DEFER (glCopyTexSubImage2D, target, level, xoffset, yoffset,
x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLint yoffset, GLint x, GLint y, GLsizei width,
GLsizei height)
{
GLint yoffset, GLint x, GLint y, GLsizei width,
GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage2DEXT, target, level, xoffset, yoffset,
x, y, width, height);
GLWRAP_DEFER (glCopyTexSubImage2DEXT, target, level, xoffset, yoffset,
x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLint yoffset, GLint zoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
GLint yoffset, GLint zoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage3D, target, level, xoffset, yoffset,
zoffset, x, y, width, height);
GLWRAP_DEFER (glCopyTexSubImage3D, target, level, xoffset, yoffset,
zoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLint yoffset, GLint zoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
GLint yoffset, GLint zoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTexSubImage3DEXT, target, level, xoffset, yoffset,
zoffset, x, y, width, height);
GLWRAP_DEFER (glCopyTexSubImage3DEXT, target, level, xoffset, yoffset,
zoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLint border)
{
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTextureImage1DEXT, texture, target, level,
internalformat, x, y, width, border);
GLWRAP_DEFER (glCopyTextureImage1DEXT, texture, target, level,
internalformat, x, y, width, border);
+
+ RESTORE_METRICS_OP ();
GLenum internalformat, GLint x, GLint y, GLsizei width,
GLsizei height, GLint border)
{
GLenum internalformat, GLint x, GLint y, GLsizei width,
GLsizei height, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTextureImage2DEXT, texture, target,
level, internalformat, x, y, width, height, border);
GLWRAP_DEFER (glCopyTextureImage2DEXT, texture, target,
level, internalformat, x, y, width, height, border);
+
+ RESTORE_METRICS_OP ();
}
void
glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level,
GLint xoffset, GLint x, GLint y, GLsizei width)
{
}
void
glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level,
GLint xoffset, GLint x, GLint y, GLsizei width)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTextureSubImage1DEXT, texture, target, level,
xoffset, x, y, width);
GLWRAP_DEFER (glCopyTextureSubImage1DEXT, texture, target, level,
xoffset, x, y, width);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLint yoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
GLint xoffset, GLint yoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTextureSubImage2DEXT, texture, target, level,
xoffset, yoffset, x, y, width, height);
GLWRAP_DEFER (glCopyTextureSubImage2DEXT, texture, target, level,
xoffset, yoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height)
{
GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyTextureSubImage3DEXT, texture, target, level,
xoffset, yoffset, zoffset, x, y, width, height);
GLWRAP_DEFER (glCopyTextureSubImage3DEXT, texture, target, level,
xoffset, yoffset, zoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLint border)
{
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyMultiTexImage1DEXT, texunit, target, level,
internalformat, x, y, width, border);
GLWRAP_DEFER (glCopyMultiTexImage1DEXT, texunit, target, level,
internalformat, x, y, width, border);
+
+ RESTORE_METRICS_OP ();
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLsizei height, GLint border)
{
GLenum internalformat, GLint x, GLint y,
GLsizei width, GLsizei height, GLint border)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyMultiTexImage2DEXT, texunit, target, level,
internalformat, x, y, width, height, border);
GLWRAP_DEFER (glCopyMultiTexImage2DEXT, texunit, target, level,
internalformat, x, y, width, height, border);
+
+ RESTORE_METRICS_OP ();
}
void
glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level,
GLint xoffset, GLint x, GLint y, GLsizei width)
{
}
void
glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level,
GLint xoffset, GLint x, GLint y, GLsizei width)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyMultiTexSubImage1DEXT, texunit, target, level,
xoffset, x, y, width);
GLWRAP_DEFER (glCopyMultiTexSubImage1DEXT, texunit, target, level,
xoffset, x, y, width);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLint yoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
GLint xoffset, GLint yoffset, GLint x, GLint y,
GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyMultiTexSubImage2DEXT, texunit, target, level,
xoffset, yoffset, x, y, width, height);
GLWRAP_DEFER (glCopyMultiTexSubImage2DEXT, texunit, target, level,
xoffset, yoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height)
{
GLint xoffset, GLint yoffset, GLint zoffset,
GLint x, GLint y, GLsizei width, GLsizei height)
{
- SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_COPY_TEX_IMAGE);
GLWRAP_DEFER (glCopyMultiTexSubImage3DEXT, texunit, target, level,
xoffset, yoffset, zoffset, x, y, width, height);
GLWRAP_DEFER (glCopyMultiTexSubImage3DEXT, texunit, target, level,
xoffset, yoffset, zoffset, x, y, width, height);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_DRAW_PIXELS */
}
/* METRICS_OP_DRAW_PIXELS */
glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_DRAW_PIXELS);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_DRAW_PIXELS);
GLWRAP_DEFER (glDrawPixels, width, height, format, type, pixels);
GLWRAP_DEFER (glDrawPixels, width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_GET_TEX_IMAGE */
}
/* METRICS_OP_GET_TEX_IMAGE */
glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target,
GLint lod, GLvoid *img)
{
glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target,
GLint lod, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetCompressedMultiTexImageEXT, texunit,
target, lod, img);
GLWRAP_DEFER (glGetCompressedMultiTexImageEXT, texunit,
target, lod, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img)
{
}
void
glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetCompressedTexImage, target, level, img);
GLWRAP_DEFER (glGetCompressedTexImage, target, level, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img)
{
}
void
glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetCompressedTexImageARB, target, level, img);
GLWRAP_DEFER (glGetCompressedTexImageARB, target, level, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetCompressedTextureImageEXT (GLuint texture, GLenum target,
GLint lod, GLvoid *img)
{
}
void
glGetCompressedTextureImageEXT (GLuint texture, GLenum target,
GLint lod, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetCompressedTextureImageEXT, texture,
target, lod, img);
GLWRAP_DEFER (glGetCompressedTextureImageEXT, texture,
target, lod, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level,
GLenum format, GLenum type, GLvoid *pixels)
{
}
void
glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level,
GLenum format, GLenum type, GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetMultiTexImageEXT, texunit,
target, level, format, type, pixels);
GLWRAP_DEFER (glGetMultiTexImageEXT, texunit,
target, level, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
}
void
glGetnCompressedTexImageARB (GLenum target, GLint lod,
GLsizei bufSize, GLvoid *img)
{
}
void
glGetnCompressedTexImageARB (GLenum target, GLint lod,
GLsizei bufSize, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetnCompressedTexImageARB, target, lod, bufSize, img);
GLWRAP_DEFER (glGetnCompressedTexImageARB, target, lod, bufSize, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetnTexImageARB (GLenum target, GLint level, GLenum format,
GLenum type, GLsizei bufSize, GLvoid *img)
{
}
void
glGetnTexImageARB (GLenum target, GLint level, GLenum format,
GLenum type, GLsizei bufSize, GLvoid *img)
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetnTexImageARB, target, level,
format, type, bufSize, img);
GLWRAP_DEFER (glGetnTexImageARB, target, level,
format, type, bufSize, img);
+
+ RESTORE_METRICS_OP ();
}
void
glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type,
GLvoid *pixels )
{
}
void
glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type,
GLvoid *pixels )
{
- SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_GET_TEX_IMAGE);
GLWRAP_DEFER (glGetTexImage, target, level, format, type, pixels);
GLWRAP_DEFER (glGetTexImage, target, level, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_READ_PIXELS */
}
/* METRICS_OP_READ_PIXELS */
glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels )
{
glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLvoid *pixels )
{
- SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
GLWRAP_DEFER (glReadPixels, x, y, width, height, format, type, 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)
{
}
void
glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height,
GLenum format, GLenum type, GLsizei bufSize, GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_READ_PIXELS);
GLWRAP_DEFER (glReadnPixelsARB, x, y, width, height,
format, type, bufSize, data);
GLWRAP_DEFER (glReadnPixelsARB, x, y, width, height,
format, type, bufSize, data);
+
+ RESTORE_METRICS_OP ();
}
/* METRICS_OP_TEX_IMAGE */
}
/* METRICS_OP_TEX_IMAGE */
GLsizei width, GLint border, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei width, GLint border, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage1D, target, level, internalFormat, width,
border, format, type, pixels);
GLWRAP_DEFER (glTexImage1D, target, level, internalFormat, width,
border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLint border, GLenum format,
GLenum type, const GLvoid *pixels )
{
GLsizei width, GLsizei height, GLint border, GLenum format,
GLenum type, const GLvoid *pixels )
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage2D, target, level, internalFormat,
width, height, border, format, type, pixels);
GLWRAP_DEFER (glTexImage2D, target, level, internalFormat,
width, height, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint internalformat, GLsizei width, GLsizei height,
GLboolean fixedsamplelocations)
{
GLint internalformat, GLsizei width, GLsizei height,
GLboolean fixedsamplelocations)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage2DMultisample, target, samples,
internalformat, width, height, fixedsamplelocations);
GLWRAP_DEFER (glTexImage2DMultisample, target, samples,
internalformat, width, height, fixedsamplelocations);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height,
GLboolean fixedSampleLocations)
{
GLsizei width, GLsizei height,
GLboolean fixedSampleLocations)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage2DMultisampleCoverageNV, target,
coverageSamples, colorSamples, internalFormat,
width, height, fixedSampleLocations);
GLWRAP_DEFER (glTexImage2DMultisampleCoverageNV, target,
coverageSamples, colorSamples, internalFormat,
width, height, fixedSampleLocations);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLsizei width, GLsizei height, GLsizei depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage3D, target, level, internalformat,
width, height, depth, border, format, type, pixels);
GLWRAP_DEFER (glTexImage3D, target, level, internalformat,
width, height, depth, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLsizei width, GLsizei height, GLsizei depth, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage3DEXT, target, level, internalformat,
width, height, depth, border, format, type, pixels);
GLWRAP_DEFER (glTexImage3DEXT, target, level, internalformat,
width, height, depth, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth,
GLboolean fixedsamplelocations)
{
GLsizei width, GLsizei height, GLsizei depth,
GLboolean fixedsamplelocations)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage3DMultisample, target, samples,
internalformat, width, height, depth,
fixedsamplelocations);
GLWRAP_DEFER (glTexImage3DMultisample, target, samples,
internalformat, width, height, depth,
fixedsamplelocations);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth,
GLboolean fixedSampleLocations)
{
GLsizei width, GLsizei height, GLsizei depth,
GLboolean fixedSampleLocations)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage3DMultisampleCoverageNV, target,
coverageSamples, colorSamples, internalFormat,
width, height, depth, fixedSampleLocations);
GLWRAP_DEFER (glTexImage3DMultisampleCoverageNV, target,
coverageSamples, colorSamples, internalFormat,
width, height, depth, fixedSampleLocations);
+
+ RESTORE_METRICS_OP ();
GLsizei size4d, GLint border, GLenum format,
GLenum type, const GLvoid *pixels)
{
GLsizei size4d, GLint border, GLenum format,
GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexImage4DSGIS, target, level,
internalformat, width, height, depth,
size4d, border, format, type, pixels);
GLWRAP_DEFER (glTexImage4DSGIS, target, level,
internalformat, width, height, depth,
size4d, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage1D, target, level, xoffset,
width, format, type, pixels);
GLWRAP_DEFER (glTexSubImage1D, target, level, xoffset,
width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage1DEXT, target, level, xoffset,
width, format, type, pixels);
GLWRAP_DEFER (glTexSubImage1DEXT, target, level, xoffset,
width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage2D, target, level, xoffset, yoffset,
width, height, format, type, pixels);
GLWRAP_DEFER (glTexSubImage2D, target, level, xoffset, yoffset,
width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei width, GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage2DEXT, target, level, xoffset, yoffset,
width, height, format, type, pixels);
GLWRAP_DEFER (glTexSubImage2DEXT, target, level, xoffset, yoffset,
width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage3D, target, level, xoffset, yoffset,
zoffset, width, height, depth, format, type, pixels);
GLWRAP_DEFER (glTexSubImage3D, target, level, xoffset, yoffset,
zoffset, width, height, depth, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glTexSubImage3DEXT, target, level, xoffset, yoffset,
zoffset, width, height, depth, format, type, pixels);
GLWRAP_DEFER (glTexSubImage3DEXT, target, level, xoffset, yoffset,
zoffset, width, height, depth, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLsizei depth, GLsizei size4d,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLsizei height, GLsizei depth, GLsizei size4d,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ 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);
GLWRAP_DEFER (glTexSubImage4DSGIS, target, level, xoffset,
yoffset, zoffset, woffset, width, height,
depth, size4d, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint border, GLsizei imageSize,
const GLvoid *bits)
{
GLint border, GLsizei imageSize,
const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexImage1DEXT, texunit, target,
level, internalformat, width, border, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexImage1DEXT, texunit, target,
level, internalformat, width, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexImage2DEXT, texunit, target, level,
internalformat, width, height, border, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexImage2DEXT, texunit, target, level,
internalformat, width, height, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexImage3DEXT, texunit, target,
level, internalformat, width, height, depth,
border, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexImage3DEXT, texunit, target,
level, internalformat, width, height, depth,
border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
GLint xoffset, GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexSubImage1DEXT, texunit, target,
level, xoffset, width, format, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexSubImage1DEXT, texunit, target,
level, xoffset, width, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexSubImage2DEXT, texunit, target, level,
xoffset, yoffset, width, height, format, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexSubImage2DEXT, texunit, target, level,
xoffset, yoffset, width, height, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLenum format, GLsizei imageSize,
const GLvoid *bits)
{
GLenum format, GLsizei imageSize,
const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedMultiTexSubImage3DEXT, texunit, target,
level, xoffset, yoffset, zoffset, width, height,
depth, format, imageSize, bits);
GLWRAP_DEFER (glCompressedMultiTexSubImage3DEXT, texunit, target,
level, xoffset, yoffset, zoffset, width, height,
depth, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data)
{
GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage1D, target, level,
internalformat, width, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage1D, target, level,
internalformat, width, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data)
{
GLsizei width, GLint border, GLsizei imageSize,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage1DARB, target, level, internalformat,
width, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage1DARB, target, level, internalformat,
width, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *data)
{
GLsizei width, GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage2D, target, level, internalformat,
width, height, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage2D, target, level, internalformat,
width, height, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *data)
{
GLsizei width, GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage2DARB, target, level, internalformat,
width, height, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage2DARB, target, level, internalformat,
width, height, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth,
GLint border, GLsizei imageSize, const GLvoid *data)
{
GLsizei width, GLsizei height, GLsizei depth,
GLint border, GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage3D, target, level, internalformat,
width, height, depth, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage3D, target, level, internalformat,
width, height, depth, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth,
GLint border, GLsizei imageSize, const GLvoid *data)
{
GLsizei width, GLsizei height, GLsizei depth,
GLint border, GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexImage3DARB, target, level, internalformat,
width, height, depth, border, imageSize, data);
GLWRAP_DEFER (glCompressedTexImage3DARB, target, level, internalformat,
width, height, depth, border, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data)
{
GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage1D, target, level, xoffset,
width, format, imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage1D, target, level, xoffset,
width, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data)
{
GLsizei width, GLenum format, GLsizei imageSize,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage1DARB, target, level, xoffset,
width, format, imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage1DARB, target, level, xoffset,
width, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLint yoffset, GLsizei width, GLsizei height,
GLenum format, GLsizei imageSize, const GLvoid *data)
{
GLint yoffset, GLsizei width, GLsizei height,
GLenum format, GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage2D, target, level, xoffset,
yoffset, width, height, format, imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage2D, target, level, xoffset,
yoffset, width, height, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLenum format, GLsizei imageSize,
const GLvoid *data)
{
GLenum format, GLsizei imageSize,
const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage2DARB, target, level, xoffset,
yoffset, width, height, format, imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage2DARB, target, level, xoffset,
yoffset, width, height, format, imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data)
{
GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage3D, target, level, xoffset,
yoffset, zoffset, width, height, depth, format,
imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage3D, target, level, xoffset,
yoffset, zoffset, width, height, depth, format,
imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data)
{
GLsizei height, GLsizei depth, GLenum format,
GLsizei imageSize, const GLvoid *data)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTexSubImage3DARB, target, level, xoffset,
yoffset, zoffset, width, height, depth, format,
imageSize, data);
GLWRAP_DEFER (glCompressedTexSubImage3DARB, target, level, xoffset,
yoffset, zoffset, width, height, depth, format,
imageSize, data);
+
+ RESTORE_METRICS_OP ();
GLint border, GLsizei imageSize,
const GLvoid *bits)
{
GLint border, GLsizei imageSize,
const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureImage1DEXT, texture, target, level,
internalformat, width, border, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureImage1DEXT, texture, target, level,
internalformat, width, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureImage2DEXT, texture, target, level,
internalformat, width, height, border, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureImage2DEXT, texture, target, level,
internalformat, width, height, border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLsizei depth, GLint border,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureImage3DEXT, texture, target,
level, internalformat, width, height, depth,
border, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureImage3DEXT, texture, target,
level, internalformat, width, height, depth,
border, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
GLint xoffset, GLsizei width, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureSubImage1DEXT, texture, target,
level, xoffset, width, format, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureSubImage1DEXT, texture, target,
level, xoffset, width, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
GLsizei height, GLenum format,
GLsizei imageSize, const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureSubImage2DEXT, texture, target, level,
xoffset, yoffset, width, height, format, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureSubImage2DEXT, texture, target, level,
xoffset, yoffset, width, height, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLenum format, GLsizei imageSize,
const GLvoid *bits)
{
GLenum format, GLsizei imageSize,
const GLvoid *bits)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glCompressedTextureSubImage3DEXT, texture, target,
level, xoffset, yoffset, zoffset, width, height,
depth, format, imageSize, bits);
GLWRAP_DEFER (glCompressedTextureSubImage3DEXT, texture, target,
level, xoffset, yoffset, zoffset, width, height,
depth, format, imageSize, bits);
+
+ RESTORE_METRICS_OP ();
GLenum internalformat, GLsizei width, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLenum internalformat, GLsizei width, GLint border,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexImage1DEXT, texunit, target, level,
internalformat, width, border, format, type, pixels);
GLWRAP_DEFER (glMultiTexImage1DEXT, texunit, target, level,
internalformat, width, border, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint border, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLint border, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexImage2DEXT, texunit, target, level,
internalformat, width, height, border, format,
type, pixels);
GLWRAP_DEFER (glMultiTexImage2DEXT, texunit, target, level,
internalformat, width, height, border, format,
type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei depth, GLint border, GLenum format,
GLenum type, const GLvoid *pixels)
{
GLsizei depth, GLint border, GLenum format,
GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexImage3DEXT, texunit, target, level,
internalformat, width, height, depth, border,
format, type, pixels);
GLWRAP_DEFER (glMultiTexImage3DEXT, texunit, target, level,
internalformat, width, height, depth, border,
format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLint xoffset, GLsizei width, GLenum format,
GLenum type, const GLvoid *pixels)
{
GLint xoffset, GLsizei width, GLenum format,
GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexSubImage1DEXT, texunit, target, level,
xoffset, width, format, type, pixels);
GLWRAP_DEFER (glMultiTexSubImage1DEXT, texunit, target, level,
xoffset, width, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
GLsizei height, GLenum format, GLenum type,
const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexSubImage2DEXT, texunit, target, level, xoffset,
yoffset, width, height, format, type, pixels);
GLWRAP_DEFER (glMultiTexSubImage2DEXT, texunit, target, level, xoffset,
yoffset, width, height, format, type, pixels);
+
+ RESTORE_METRICS_OP ();
GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
GLsizei width, GLsizei height, GLsizei depth,
GLenum format, GLenum type, const GLvoid *pixels)
{
- SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
+ SAVE_THEN_SWITCH_METRICS_OP (METRICS_OP_TEX_IMAGE);
GLWRAP_DEFER (glMultiTexSubImage3DEXT, texunit, target, level,
xoffset, yoffset, zoffset, width, height, depth,
format, type, pixels);
GLWRAP_DEFER (glMultiTexSubImage3DEXT, texunit, target, level,
xoffset, yoffset, zoffset, width, height, depth,
format, type, pixels);
+
+ RESTORE_METRICS_OP ();
current_context.op = op;
}
current_context.op = op;
}
+metrics_op_t
+metrics_get_current_op (void)
+{
+ return current_context.op;
+}
+
static void
accumulate_program_time (metrics_op_t op, unsigned time_ns)
{
static void
accumulate_program_time (metrics_op_t op, unsigned time_ns)
{
void
metrics_set_current_op (metrics_op_t op);
void
metrics_set_current_op (metrics_op_t op);
+/* Return the current metrics_op_t value, (the value most-recently-set
+ * with a call to metrics_set_current_op).
+ */
+metrics_op_t
+metrics_get_current_op (void);
+
/* Should be called at the end of every function wrapper for a
* function that ends a frame, (glXSwapBuffers and similar).
*
/* Should be called at the end of every function wrapper for a
* function that ends a frame, (glXSwapBuffers and similar).
*