mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-23 06:56:40 +00:00
Implement other EXT_dsa functions relevant to GL3.2 and above core
* None of these require extra serialisation functions, but some upgraded to DSA style serialise instead of selector serialise functions. * There's a lot of duplication here now (expecially for MultiTex calls). This could really do with cleanup soon.
This commit is contained in:
@@ -1834,19 +1834,19 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glCopyImageSubData(0, eGL_NONE, 0, 0, 0, 0, 0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case COPY_IMAGE1D:
|
||||
Serialise_glCopyTexImage1D(eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
|
||||
Serialise_glCopyTextureImage1DEXT(0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
|
||||
break;
|
||||
case COPY_IMAGE2D:
|
||||
Serialise_glCopyTexImage2D(eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0, 0);
|
||||
Serialise_glCopyTextureImage2DEXT(0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case COPY_SUBIMAGE1D:
|
||||
Serialise_glCopyTexSubImage1D(eGL_NONE, 0, 0, 0, 0, 0);
|
||||
Serialise_glCopyTextureSubImage1DEXT(0, eGL_NONE, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case COPY_SUBIMAGE2D:
|
||||
Serialise_glCopyTexSubImage2D(eGL_NONE, 0, 0, 0, 0, 0, 0, 0);
|
||||
Serialise_glCopyTextureSubImage2DEXT(0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case COPY_SUBIMAGE3D:
|
||||
Serialise_glCopyTexSubImage3D(eGL_NONE, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
Serialise_glCopyTextureSubImage3DEXT(0, eGL_NONE, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||
break;
|
||||
case TEXTURE_VIEW:
|
||||
Serialise_glTextureView(0, eGL_NONE, 0, eGL_NONE, 0, 0, 0, 0);
|
||||
@@ -1999,16 +1999,16 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glClearBufferfi(eGL_NONE, 0, 0, 0);
|
||||
break;
|
||||
case CLEARBUFFERDATA:
|
||||
Serialise_glClearBufferData(eGL_NONE, eGL_NONE, eGL_NONE, eGL_NONE, NULL);
|
||||
Serialise_glClearNamedBufferDataEXT(0, eGL_NONE, eGL_NONE, eGL_NONE, NULL);
|
||||
break;
|
||||
case CLEARBUFFERSUBDATA:
|
||||
Serialise_glClearBufferSubData(eGL_NONE, eGL_NONE, 0, 0, eGL_NONE, eGL_NONE, NULL);
|
||||
Serialise_glClearNamedBufferSubDataEXT(0, eGL_NONE, 0, 0, eGL_NONE, eGL_NONE, NULL);
|
||||
break;
|
||||
case CLEARTEXIMAGE:
|
||||
Serialise_glClearTexImage(0, 0, eGL_NONE, eGL_NONE, NULL);
|
||||
break;
|
||||
case CLEARTEXSUBIMAGE:
|
||||
Serialise_glClearBufferSubData(eGL_NONE, eGL_NONE, 0, 0, eGL_NONE, eGL_NONE, NULL);
|
||||
Serialise_glClearTexSubImage(0, 0, 0, 0, 0, 0, 0, 0, eGL_NONE, eGL_NONE, NULL);
|
||||
break;
|
||||
case POLYGON_MODE:
|
||||
Serialise_glPolygonMode(eGL_NONE, eGL_NONE);
|
||||
@@ -2170,13 +2170,13 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glScissorArrayv(0, 0, 0);
|
||||
break;
|
||||
case BIND_VERTEXBUFFER:
|
||||
Serialise_glBindVertexBuffer(0, 0, 0, 0);
|
||||
Serialise_glVertexArrayBindVertexBufferEXT(0, 0, 0, 0, 0);
|
||||
break;
|
||||
case BIND_VERTEXBUFFERS:
|
||||
Serialise_glBindVertexBuffers(0, 0, NULL, NULL, NULL);
|
||||
break;
|
||||
case VERTEXBINDINGDIVISOR:
|
||||
Serialise_glVertexBindingDivisor(0, 0);
|
||||
Serialise_glVertexArrayVertexBindingDivisorEXT(0, 0, 0);
|
||||
break;
|
||||
case DISPATCH_COMPUTE:
|
||||
Serialise_glDispatchCompute(0, 0, 0);
|
||||
@@ -2285,13 +2285,13 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glNamedFramebufferParameteriEXT(0, eGL_NONE, 0);
|
||||
break;
|
||||
case READ_BUFFER:
|
||||
Serialise_glReadBuffer(eGL_NONE);
|
||||
Serialise_glFramebufferReadBufferEXT(0, eGL_NONE);
|
||||
break;
|
||||
case BIND_FRAMEBUFFER:
|
||||
Serialise_glBindFramebuffer(eGL_NONE, 0);
|
||||
break;
|
||||
case DRAW_BUFFER:
|
||||
Serialise_glDrawBuffer(eGL_NONE);
|
||||
Serialise_glFramebufferDrawBufferEXT(0, eGL_NONE);
|
||||
break;
|
||||
case DRAW_BUFFERS:
|
||||
Serialise_glFramebufferDrawBuffersEXT(0, 0, NULL);
|
||||
@@ -2304,10 +2304,10 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glGenRenderbuffers(0, NULL);
|
||||
break;
|
||||
case RENDERBUFFER_STORAGE:
|
||||
Serialise_glRenderbufferStorage(eGL_NONE, eGL_NONE, 0, 0);
|
||||
Serialise_glNamedRenderbufferStorageEXT(0, eGL_NONE, 0, 0);
|
||||
break;
|
||||
case RENDERBUFFER_STORAGEMS:
|
||||
Serialise_glRenderbufferStorageMultisample(eGL_NONE, 0, eGL_NONE, 0, 0);
|
||||
Serialise_glNamedRenderbufferStorageMultisampleEXT(0, 0, eGL_NONE, 0, 0);
|
||||
break;
|
||||
|
||||
case GEN_SAMPLERS:
|
||||
@@ -2372,7 +2372,7 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glUnmapNamedBufferEXT(eGL_NONE);
|
||||
break;
|
||||
case FLUSHMAP:
|
||||
Serialise_glFlushMappedBufferRange(eGL_NONE, 0, 0);
|
||||
Serialise_glFlushMappedNamedBufferRangeEXT(0, 0, 0);
|
||||
break;
|
||||
case GEN_VERTEXARRAY:
|
||||
Serialise_glGenVertexArrays(0, NULL);
|
||||
@@ -2381,37 +2381,37 @@ void WrappedOpenGL::ProcessChunk(uint64_t offset, GLChunkType context)
|
||||
Serialise_glBindVertexArray(0);
|
||||
break;
|
||||
case VERTEXATTRIBPOINTER:
|
||||
Serialise_glVertexAttribPointer(0, 0, eGL_NONE, 0, 0, NULL);
|
||||
Serialise_glVertexArrayVertexAttribOffsetEXT(0, 0, 0, 0, eGL_NONE, 0, 0, NULL);
|
||||
break;
|
||||
case VERTEXATTRIBIPOINTER:
|
||||
Serialise_glVertexAttribIPointer(0, 0, eGL_NONE, 0, NULL);
|
||||
Serialise_glVertexArrayVertexAttribIOffsetEXT(0, 0, 0, 0, eGL_NONE, 0, NULL);
|
||||
break;
|
||||
case VERTEXATTRIBLPOINTER:
|
||||
Serialise_glVertexAttribLPointer(0, 0, eGL_NONE, 0, NULL);
|
||||
Serialise_glVertexArrayVertexAttribLOffsetEXT(0, 0, 0, 0, eGL_NONE, 0, NULL);
|
||||
break;
|
||||
case ENABLEVERTEXATTRIBARRAY:
|
||||
Serialise_glEnableVertexAttribArray(0);
|
||||
Serialise_glEnableVertexArrayAttribEXT(0, 0);
|
||||
break;
|
||||
case DISABLEVERTEXATTRIBARRAY:
|
||||
Serialise_glDisableVertexAttribArray(0);
|
||||
Serialise_glDisableVertexArrayAttribEXT(0, 0);
|
||||
break;
|
||||
case VERTEXATTRIB_GENERIC:
|
||||
Serialise_glVertexAttrib(0, 0, eGL_NONE, GL_FALSE, NULL, Attrib_packed);
|
||||
break;
|
||||
case VERTEXATTRIBFORMAT:
|
||||
Serialise_glVertexAttribFormat(0, 0, eGL_NONE, 0, 0);
|
||||
Serialise_glVertexArrayVertexAttribFormatEXT(0, 0, 0, eGL_NONE, 0, 0);
|
||||
break;
|
||||
case VERTEXATTRIBIFORMAT:
|
||||
Serialise_glVertexAttribIFormat(0, 0, eGL_NONE, 0);
|
||||
Serialise_glVertexArrayVertexAttribIFormatEXT(0, 0, 0, eGL_NONE, 0);
|
||||
break;
|
||||
case VERTEXATTRIBLFORMAT:
|
||||
Serialise_glVertexAttribLFormat(0, 0, eGL_NONE, 0);
|
||||
Serialise_glVertexArrayVertexAttribLFormatEXT(0, 0, 0, eGL_NONE, 0);
|
||||
break;
|
||||
case VERTEXATTRIBDIVISOR:
|
||||
Serialise_glVertexAttribDivisor(0, 0);
|
||||
Serialise_glVertexArrayVertexAttribDivisorEXT(0, 0, 0);
|
||||
break;
|
||||
case VERTEXATTRIBBINDING:
|
||||
Serialise_glVertexAttribBinding(0, 0);
|
||||
Serialise_glVertexArrayVertexAttribBindingEXT(0, 0, 0);
|
||||
break;
|
||||
|
||||
case VAO_ELEMENT_BUFFER:
|
||||
|
||||
@@ -857,9 +857,6 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void **params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint *param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint *params));
|
||||
|
||||
enum UniformType
|
||||
{
|
||||
@@ -1049,16 +1046,45 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(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 void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGenerateTextureMipmapEXT(GLuint texture, GLenum target));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, void *img));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetPointeri_vEXT(GLenum pname, GLuint index, void **params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetPointerIndexedvEXT(GLenum target, GLuint index, void **data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetIntegerIndexedvEXT(GLenum target, GLuint index, GLint *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetBooleanIndexedvEXT(GLenum target, GLuint index, GLboolean *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, void *img));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, void **params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, void **param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint *param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, void **param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, void *img));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void *, glMapNamedBufferEXT(GLuint buffer, GLenum access));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void *, glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(GLboolean, glUnmapNamedBufferEXT(GLuint buffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedBufferStorageEXT(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data));
|
||||
@@ -1070,7 +1096,41 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(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 void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(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 void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *bits));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint *params));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels));
|
||||
@@ -1090,5 +1150,18 @@ class WrappedOpenGL
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(GLboolean, glUnmapNamedBufferEXT(GLuint buffer));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glEnableVertexArrayEXT(GLuint vaobj, GLenum array));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDisableVertexArrayEXT(GLuint vaobj, GLenum array));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor));
|
||||
};
|
||||
|
||||
@@ -129,8 +129,8 @@ struct GLHookSet
|
||||
PFNGLGETSTRINGIPROC glGetStringi;
|
||||
PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
|
||||
PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
|
||||
PFNGLGETFLOATI_VPROC glGetFloati_v;
|
||||
PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
|
||||
PFNGLGETFLOATI_VPROC glGetFloati_v; // aliases glGetFloati_vEXT
|
||||
PFNGLGETDOUBLEI_VPROC glGetDoublei_v; // aliases glGetDoublei_vEXT
|
||||
PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
|
||||
PFNGLGETINTEGER64VPROC glGetInteger64v;
|
||||
PFNGLGETSHADERIVPROC glGetShaderiv;
|
||||
@@ -227,12 +227,7 @@ struct GLHookSet
|
||||
PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
|
||||
PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
|
||||
PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
|
||||
PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
|
||||
PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
|
||||
PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
|
||||
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
|
||||
PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
|
||||
PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
|
||||
PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
|
||||
PFNGLBLENDCOLORPROC glBlendColor;
|
||||
PFNGLBLENDFUNCIPROC glBlendFunci; // aliases glBlendFunciARB
|
||||
@@ -285,9 +280,9 @@ struct GLHookSet
|
||||
PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
|
||||
PFNGLOBJECTLABELPROC glObjectLabel;
|
||||
PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
|
||||
PFNGLENABLEIPROC glEnablei;
|
||||
PFNGLDISABLEIPROC glDisablei;
|
||||
PFNGLISENABLEDIPROC glIsEnabledi;
|
||||
PFNGLENABLEIPROC glEnablei; // aliases glEnableIndexedEXT
|
||||
PFNGLDISABLEIPROC glDisablei; // aliases glDisableIndexedEXT
|
||||
PFNGLISENABLEDIPROC glIsEnabledi; // aliases glIsEnabledIndexedEXT
|
||||
PFNGLISBUFFERPROC glIsBuffer; // aliases glIsBufferARB
|
||||
PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
|
||||
PFNGLISPROGRAMPROC glIsProgram;
|
||||
@@ -620,17 +615,46 @@ struct GLHookSet
|
||||
PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glCompressedTextureSubImage3DEXT;
|
||||
PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glFramebufferDrawBuffersEXT;
|
||||
PFNGLGENERATETEXTUREMIPMAPEXTPROC glGenerateTextureMipmapEXT;
|
||||
PFNGLGETPOINTERI_VEXTPROC glGetPointeri_vEXT;
|
||||
PFNGLGETDOUBLEINDEXEDVEXTPROC glGetDoubleIndexedvEXT;
|
||||
PFNGLGETPOINTERINDEXEDVEXTPROC glGetPointerIndexedvEXT;
|
||||
PFNGLGETINTEGERINDEXEDVEXTPROC glGetIntegerIndexedvEXT;
|
||||
PFNGLGETBOOLEANINDEXEDVEXTPROC glGetBooleanIndexedvEXT;
|
||||
PFNGLGETFLOATINDEXEDVEXTPROC glGetFloatIndexedvEXT;
|
||||
PFNGLGETMULTITEXIMAGEEXTPROC glGetMultiTexImageEXT;
|
||||
PFNGLGETMULTITEXPARAMETERFVEXTPROC glGetMultiTexParameterfvEXT;
|
||||
PFNGLGETMULTITEXPARAMETERIVEXTPROC glGetMultiTexParameterivEXT;
|
||||
PFNGLGETMULTITEXPARAMETERIIVEXTPROC glGetMultiTexParameterIivEXT;
|
||||
PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glGetMultiTexParameterIuivEXT;
|
||||
PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glGetMultiTexLevelParameterfvEXT;
|
||||
PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glGetMultiTexLevelParameterivEXT;
|
||||
PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glGetCompressedMultiTexImageEXT;
|
||||
PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glGetNamedBufferPointervEXT;
|
||||
PFNGLGETNAMEDPROGRAMIVEXTPROC glGetNamedProgramivEXT;
|
||||
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT; // aliases glGetNamedFramebufferAttachmentParameteriv
|
||||
PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT; // aliases glGetNamedBufferParameteriv
|
||||
PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT; // aliases glGetNamedBufferSubData
|
||||
PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glGetNamedFramebufferParameterivEXT; // aliases glGetFramebufferParameterivEXT, glGetNamedFramebufferParameteriv
|
||||
PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glGetNamedRenderbufferParameterivEXT; // aliases glGetNamedRenderbufferParameteriv
|
||||
PFNGLGETVERTEXARRAYINTEGERVEXTPROC glGetVertexArrayIntegervEXT;
|
||||
PFNGLGETVERTEXARRAYPOINTERVEXTPROC glGetVertexArrayPointervEXT;
|
||||
PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC glGetVertexArrayIntegeri_vEXT;
|
||||
PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC glGetVertexArrayPointeri_vEXT;
|
||||
PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glGetCompressedTextureImageEXT;
|
||||
PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT;
|
||||
PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT;
|
||||
PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT;
|
||||
PFNGLGETTEXTUREIMAGEEXTPROC glGetTextureImageEXT;
|
||||
PFNGLGETTEXTUREPARAMETERIVEXTPROC glGetTextureParameterivEXT;
|
||||
PFNGLGETTEXTUREPARAMETERFVEXTPROC glGetTextureParameterfvEXT;
|
||||
PFNGLGETTEXTUREPARAMETERIIVEXTPROC glGetTextureParameterIivEXT;
|
||||
PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glGetTextureParameterIuivEXT;
|
||||
PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glGetTextureLevelParameterivEXT;
|
||||
PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glGetTextureLevelParameterfvEXT;
|
||||
PFNGLBINDMULTITEXTUREEXTPROC glBindMultiTextureEXT;
|
||||
PFNGLMAPNAMEDBUFFEREXTPROC glMapNamedBufferEXT;
|
||||
PFNGLMAPNAMEDBUFFERRANGEEXTPROC glMapNamedBufferRangeEXT;
|
||||
PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC glFlushMappedNamedBufferRangeEXT;
|
||||
PFNGLUNMAPNAMEDBUFFEREXTPROC glUnmapNamedBufferEXT;
|
||||
PFNGLCLEARNAMEDBUFFERDATAEXTPROC glClearNamedBufferDataEXT;
|
||||
PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC glClearNamedBufferSubDataEXT;
|
||||
PFNGLNAMEDBUFFERDATAEXTPROC glNamedBufferDataEXT;
|
||||
PFNGLNAMEDBUFFERSTORAGEEXTPROC glNamedBufferStorageEXT;
|
||||
PFNGLNAMEDBUFFERSUBDATAEXTPROC glNamedBufferSubDataEXT;
|
||||
@@ -642,6 +666,10 @@ struct GLHookSet
|
||||
PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glNamedFramebufferRenderbufferEXT;
|
||||
PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glNamedFramebufferTextureLayerEXT;
|
||||
PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC glNamedFramebufferParameteriEXT;
|
||||
PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glNamedRenderbufferStorageEXT;
|
||||
PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glNamedRenderbufferStorageMultisampleEXT;
|
||||
PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glFramebufferDrawBufferEXT;
|
||||
PFNGLFRAMEBUFFERREADBUFFEREXTPROC glFramebufferReadBufferEXT;
|
||||
PFNGLTEXTUREBUFFEREXTPROC glTextureBufferEXT;
|
||||
PFNGLTEXTUREBUFFERRANGEEXTPROC glTextureBufferRangeEXT;
|
||||
PFNGLTEXTUREIMAGE1DEXTPROC glTextureImage1DEXT;
|
||||
@@ -661,7 +689,48 @@ struct GLHookSet
|
||||
PFNGLTEXTURESUBIMAGE1DEXTPROC glTextureSubImage1DEXT;
|
||||
PFNGLTEXTURESUBIMAGE2DEXTPROC glTextureSubImage2DEXT;
|
||||
PFNGLTEXTURESUBIMAGE3DEXTPROC glTextureSubImage3DEXT;
|
||||
PFNGLUNMAPNAMEDBUFFEREXTPROC glUnmapNamedBufferEXT;
|
||||
PFNGLCOPYTEXTUREIMAGE1DEXTPROC glCopyTextureImage1DEXT;
|
||||
PFNGLCOPYTEXTUREIMAGE2DEXTPROC glCopyTextureImage2DEXT;
|
||||
PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glCopyTextureSubImage1DEXT;
|
||||
PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glCopyTextureSubImage2DEXT;
|
||||
PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glCopyTextureSubImage3DEXT;
|
||||
PFNGLMULTITEXPARAMETERIEXTPROC glMultiTexParameteriEXT;
|
||||
PFNGLMULTITEXPARAMETERIVEXTPROC glMultiTexParameterivEXT;
|
||||
PFNGLMULTITEXPARAMETERFEXTPROC glMultiTexParameterfEXT;
|
||||
PFNGLMULTITEXPARAMETERFVEXTPROC glMultiTexParameterfvEXT;
|
||||
PFNGLMULTITEXIMAGE1DEXTPROC glMultiTexImage1DEXT;
|
||||
PFNGLMULTITEXIMAGE2DEXTPROC glMultiTexImage2DEXT;
|
||||
PFNGLMULTITEXSUBIMAGE1DEXTPROC glMultiTexSubImage1DEXT;
|
||||
PFNGLMULTITEXSUBIMAGE2DEXTPROC glMultiTexSubImage2DEXT;
|
||||
PFNGLCOPYMULTITEXIMAGE1DEXTPROC glCopyMultiTexImage1DEXT;
|
||||
PFNGLCOPYMULTITEXIMAGE2DEXTPROC glCopyMultiTexImage2DEXT;
|
||||
PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glCopyMultiTexSubImage1DEXT;
|
||||
PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glCopyMultiTexSubImage2DEXT;
|
||||
PFNGLMULTITEXIMAGE3DEXTPROC glMultiTexImage3DEXT;
|
||||
PFNGLMULTITEXSUBIMAGE3DEXTPROC glMultiTexSubImage3DEXT;
|
||||
PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glCopyMultiTexSubImage3DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glCompressedMultiTexImage3DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glCompressedMultiTexImage2DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glCompressedMultiTexImage1DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glCompressedMultiTexSubImage3DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glCompressedMultiTexSubImage2DEXT;
|
||||
PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glCompressedMultiTexSubImage1DEXT;
|
||||
PFNGLMULTITEXBUFFEREXTPROC glMultiTexBufferEXT;
|
||||
PFNGLMULTITEXPARAMETERIIVEXTPROC glMultiTexParameterIivEXT;
|
||||
PFNGLMULTITEXPARAMETERIUIVEXTPROC glMultiTexParameterIuivEXT;
|
||||
PFNGLGENERATEMULTITEXMIPMAPEXTPROC glGenerateMultiTexMipmapEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC glVertexArrayVertexAttribOffsetEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC glVertexArrayVertexAttribIOffsetEXT;
|
||||
PFNGLENABLEVERTEXARRAYATTRIBEXTPROC glEnableVertexArrayAttribEXT;
|
||||
PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC glDisableVertexArrayAttribEXT;
|
||||
PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC glVertexArrayBindVertexBufferEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC glVertexArrayVertexAttribFormatEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC glVertexArrayVertexAttribIFormatEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC glVertexArrayVertexAttribLFormatEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC glVertexArrayVertexAttribBindingEXT;
|
||||
PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC glVertexArrayVertexBindingDivisorEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC glVertexArrayVertexAttribLOffsetEXT;
|
||||
PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glVertexArrayVertexAttribDivisorEXT;
|
||||
// --
|
||||
};
|
||||
|
||||
|
||||
@@ -142,7 +142,9 @@
|
||||
HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \
|
||||
HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \
|
||||
HookExtension(PFNGLGETFLOATI_VPROC, glGetFloati_v); \
|
||||
HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vEXT); \
|
||||
HookExtension(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v); \
|
||||
HookExtensionAlias(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v, glGetDoublei_vEXT); \
|
||||
HookExtension(PFNGLGETINTEGER64I_VPROC, glGetInteger64i_v); \
|
||||
HookExtension(PFNGLGETINTEGER64VPROC, glGetInteger64v); \
|
||||
HookExtension(PFNGLGETSHADERIVPROC, glGetShaderiv); \
|
||||
@@ -256,12 +258,7 @@
|
||||
HookExtension(PFNGLGETVERTEXATTRIBDVPROC, glGetVertexAttribdv); \
|
||||
HookExtension(PFNGLGETVERTEXATTRIBFVPROC, glGetVertexAttribfv); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPARAMETERI64VPROC, glGetNamedBufferParameteri64v); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVPROC, glGetNamedBufferParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPOINTERVPROC, glGetNamedBufferPointerv); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERSUBDATAPROC, glGetNamedBufferSubData); \
|
||||
HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC, glGetNamedFramebufferAttachmentParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC, glGetNamedFramebufferParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC, glGetNamedRenderbufferParameteriv); \
|
||||
HookExtension(PFNGLCHECKFRAMEBUFFERSTATUSPROC, glCheckFramebufferStatus); \
|
||||
HookExtension(PFNGLBLENDCOLORPROC, glBlendColor); \
|
||||
HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \
|
||||
@@ -325,8 +322,11 @@
|
||||
HookExtension(PFNGLOBJECTLABELPROC, glObjectLabel); \
|
||||
HookExtension(PFNGLOBJECTPTRLABELPROC, glObjectPtrLabel); \
|
||||
HookExtension(PFNGLENABLEIPROC, glEnablei); \
|
||||
HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \
|
||||
HookExtension(PFNGLDISABLEIPROC, glDisablei); \
|
||||
HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \
|
||||
HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \
|
||||
HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \
|
||||
HookExtension(PFNGLISBUFFERPROC, glIsBuffer); \
|
||||
HookExtensionAlias(PFNGLISBUFFERPROC, glIsBuffer, glIsBufferARB); \
|
||||
HookExtension(PFNGLISFRAMEBUFFERPROC, glIsFramebuffer); \
|
||||
@@ -674,17 +674,52 @@
|
||||
HookExtension(PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC, glCompressedTextureSubImage3DEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC, glFramebufferDrawBuffersEXT); \
|
||||
HookExtension(PFNGLGENERATETEXTUREMIPMAPEXTPROC, glGenerateTextureMipmapEXT); \
|
||||
HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC, glGetCompressedTextureImageEXT); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC, glGetNamedBufferParameterivEXT); \
|
||||
HookExtension(PFNGLGETPOINTERI_VEXTPROC, glGetPointeri_vEXT); \
|
||||
HookExtension(PFNGLGETDOUBLEINDEXEDVEXTPROC, glGetDoubleIndexedvEXT); \
|
||||
HookExtension(PFNGLGETPOINTERINDEXEDVEXTPROC, glGetPointerIndexedvEXT); \
|
||||
HookExtension(PFNGLGETINTEGERINDEXEDVEXTPROC, glGetIntegerIndexedvEXT); \
|
||||
HookExtension(PFNGLGETBOOLEANINDEXEDVEXTPROC, glGetBooleanIndexedvEXT); \
|
||||
HookExtension(PFNGLGETFLOATINDEXEDVEXTPROC, glGetFloatIndexedvEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXIMAGEEXTPROC, glGetMultiTexImageEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXPARAMETERFVEXTPROC, glGetMultiTexParameterfvEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXPARAMETERIVEXTPROC, glGetMultiTexParameterivEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXPARAMETERIIVEXTPROC, glGetMultiTexParameterIivEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXPARAMETERIUIVEXTPROC, glGetMultiTexParameterIuivEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC, glGetMultiTexLevelParameterfvEXT); \
|
||||
HookExtension(PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC, glGetMultiTexLevelParameterivEXT); \
|
||||
HookExtension(PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC, glGetCompressedMultiTexImageEXT); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPOINTERVEXTPROC, glGetNamedBufferPointervEXT); \
|
||||
HookExtension(PFNGLGETNAMEDPROGRAMIVEXTPROC, glGetNamedProgramivEXT); \
|
||||
HookExtension(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC, glGetNamedFramebufferAttachmentParameterivEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC, glGetNamedFramebufferAttachmentParameterivEXT, glGetNamedFramebufferAttachmentParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC, glGetNamedBufferParameterivEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC, glGetNamedBufferParameterivEXT, glGetNamedBufferParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDBUFFERSUBDATAEXTPROC, glGetNamedBufferSubDataEXT, glGetNamedBufferSubData); \
|
||||
HookExtension(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT, glGetFramebufferParameterivEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC, glGetNamedFramebufferParameterivEXT, glGetNamedFramebufferParameteriv); \
|
||||
HookExtension(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC, glGetNamedRenderbufferParameterivEXT); \
|
||||
HookExtensionAlias(PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC, glGetNamedRenderbufferParameterivEXT, glGetNamedRenderbufferParameteriv); \
|
||||
HookExtension(PFNGLGETVERTEXARRAYINTEGERVEXTPROC, glGetVertexArrayIntegervEXT); \
|
||||
HookExtension(PFNGLGETVERTEXARRAYPOINTERVEXTPROC, glGetVertexArrayPointervEXT); \
|
||||
HookExtension(PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC, glGetVertexArrayIntegeri_vEXT); \
|
||||
HookExtension(PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC, glGetVertexArrayPointeri_vEXT); \
|
||||
HookExtension(PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC, glGetCompressedTextureImageEXT); \
|
||||
HookExtension(PFNGLGETTEXTUREIMAGEEXTPROC, glGetTextureImageEXT); \
|
||||
HookExtension(PFNGLGETTEXTUREPARAMETERIVEXTPROC, glGetTextureParameterivEXT); \
|
||||
HookExtension(PFNGLGETTEXTUREPARAMETERFVEXTPROC, glGetTextureParameterfvEXT); \
|
||||
HookExtension(PFNGLGETTEXTUREPARAMETERIIVEXTPROC, glGetTextureParameterIivEXT); \
|
||||
HookExtension(PFNGLGETTEXTUREPARAMETERIUIVEXTPROC, glGetTextureParameterIuivEXT); \
|
||||
HookExtension(PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC, glGetTextureLevelParameterivEXT); \
|
||||
HookExtension(PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC, glGetTextureLevelParameterfvEXT); \
|
||||
HookExtension(PFNGLBINDMULTITEXTUREEXTPROC, glBindMultiTextureEXT); \
|
||||
HookExtension(PFNGLMAPNAMEDBUFFEREXTPROC, glMapNamedBufferEXT); \
|
||||
HookExtension(PFNGLMAPNAMEDBUFFERRANGEEXTPROC, glMapNamedBufferRangeEXT); \
|
||||
HookExtension(PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC, glFlushMappedNamedBufferRangeEXT); \
|
||||
HookExtension(PFNGLUNMAPNAMEDBUFFEREXTPROC, glUnmapNamedBufferEXT); \
|
||||
HookExtension(PFNGLCLEARNAMEDBUFFERDATAEXTPROC, glClearNamedBufferDataEXT); \
|
||||
HookExtension(PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC, glClearNamedBufferSubDataEXT); \
|
||||
HookExtension(PFNGLNAMEDBUFFERDATAEXTPROC, glNamedBufferDataEXT); \
|
||||
HookExtension(PFNGLNAMEDBUFFERSTORAGEEXTPROC, glNamedBufferStorageEXT); \
|
||||
HookExtension(PFNGLNAMEDBUFFERSUBDATAEXTPROC, glNamedBufferSubDataEXT); \
|
||||
@@ -696,6 +731,10 @@
|
||||
HookExtension(PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC, glNamedFramebufferRenderbufferEXT); \
|
||||
HookExtension(PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC, glNamedFramebufferTextureLayerEXT); \
|
||||
HookExtension(PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC, glNamedFramebufferParameteriEXT); \
|
||||
HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC, glNamedRenderbufferStorageEXT); \
|
||||
HookExtension(PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC, glNamedRenderbufferStorageMultisampleEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC, glFramebufferDrawBufferEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERREADBUFFEREXTPROC, glFramebufferReadBufferEXT); \
|
||||
HookExtension(PFNGLTEXTUREBUFFEREXTPROC, glTextureBufferEXT); \
|
||||
HookExtension(PFNGLTEXTUREBUFFERRANGEEXTPROC, glTextureBufferRangeEXT); \
|
||||
HookExtension(PFNGLTEXTUREIMAGE1DEXTPROC, glTextureImage1DEXT); \
|
||||
@@ -715,7 +754,48 @@
|
||||
HookExtension(PFNGLTEXTURESUBIMAGE1DEXTPROC, glTextureSubImage1DEXT); \
|
||||
HookExtension(PFNGLTEXTURESUBIMAGE2DEXTPROC, glTextureSubImage2DEXT); \
|
||||
HookExtension(PFNGLTEXTURESUBIMAGE3DEXTPROC, glTextureSubImage3DEXT); \
|
||||
HookExtension(PFNGLUNMAPNAMEDBUFFEREXTPROC, glUnmapNamedBufferEXT); \
|
||||
HookExtension(PFNGLCOPYTEXTUREIMAGE1DEXTPROC, glCopyTextureImage1DEXT); \
|
||||
HookExtension(PFNGLCOPYTEXTUREIMAGE2DEXTPROC, glCopyTextureImage2DEXT); \
|
||||
HookExtension(PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC, glCopyTextureSubImage1DEXT); \
|
||||
HookExtension(PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC, glCopyTextureSubImage2DEXT); \
|
||||
HookExtension(PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC, glCopyTextureSubImage3DEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERIEXTPROC, glMultiTexParameteriEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERIVEXTPROC, glMultiTexParameterivEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERFEXTPROC, glMultiTexParameterfEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERFVEXTPROC, glMultiTexParameterfvEXT); \
|
||||
HookExtension(PFNGLMULTITEXIMAGE1DEXTPROC, glMultiTexImage1DEXT); \
|
||||
HookExtension(PFNGLMULTITEXIMAGE2DEXTPROC, glMultiTexImage2DEXT); \
|
||||
HookExtension(PFNGLMULTITEXSUBIMAGE1DEXTPROC, glMultiTexSubImage1DEXT); \
|
||||
HookExtension(PFNGLMULTITEXSUBIMAGE2DEXTPROC, glMultiTexSubImage2DEXT); \
|
||||
HookExtension(PFNGLCOPYMULTITEXIMAGE1DEXTPROC, glCopyMultiTexImage1DEXT); \
|
||||
HookExtension(PFNGLCOPYMULTITEXIMAGE2DEXTPROC, glCopyMultiTexImage2DEXT); \
|
||||
HookExtension(PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC, glCopyMultiTexSubImage1DEXT); \
|
||||
HookExtension(PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC, glCopyMultiTexSubImage2DEXT); \
|
||||
HookExtension(PFNGLMULTITEXIMAGE3DEXTPROC, glMultiTexImage3DEXT); \
|
||||
HookExtension(PFNGLMULTITEXSUBIMAGE3DEXTPROC, glMultiTexSubImage3DEXT); \
|
||||
HookExtension(PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC, glCopyMultiTexSubImage3DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC, glCompressedMultiTexImage3DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC, glCompressedMultiTexImage2DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC, glCompressedMultiTexImage1DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC, glCompressedMultiTexSubImage3DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC, glCompressedMultiTexSubImage2DEXT); \
|
||||
HookExtension(PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC, glCompressedMultiTexSubImage1DEXT); \
|
||||
HookExtension(PFNGLMULTITEXBUFFEREXTPROC, glMultiTexBufferEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERIIVEXTPROC, glMultiTexParameterIivEXT); \
|
||||
HookExtension(PFNGLMULTITEXPARAMETERIUIVEXTPROC, glMultiTexParameterIuivEXT); \
|
||||
HookExtension(PFNGLGENERATEMULTITEXMIPMAPEXTPROC, glGenerateMultiTexMipmapEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC, glVertexArrayVertexAttribOffsetEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC, glVertexArrayVertexAttribIOffsetEXT); \
|
||||
HookExtension(PFNGLENABLEVERTEXARRAYATTRIBEXTPROC, glEnableVertexArrayAttribEXT); \
|
||||
HookExtension(PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC, glDisableVertexArrayAttribEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC, glVertexArrayBindVertexBufferEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC, glVertexArrayVertexAttribFormatEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC, glVertexArrayVertexAttribIFormatEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC, glVertexArrayVertexAttribLFormatEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC, glVertexArrayVertexAttribBindingEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC, glVertexArrayVertexBindingDivisorEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC, glVertexArrayVertexAttribLOffsetEXT); \
|
||||
HookExtension(PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC, glVertexArrayVertexAttribDivisorEXT); \
|
||||
HookExtension(PFNGLBINDTEXTUREPROC, glBindTexture); \
|
||||
HookExtension(PFNGLBLENDFUNCPROC, glBlendFunc); \
|
||||
HookExtension(PFNGLCLEARPROC, glClear); \
|
||||
@@ -726,6 +806,7 @@
|
||||
HookExtension(PFNGLCULLFACEPROC, glCullFace); \
|
||||
HookExtension(PFNGLDEPTHFUNCPROC, glDepthFunc); \
|
||||
HookExtension(PFNGLDEPTHMASKPROC, glDepthMask); \
|
||||
HookExtension(PFNGLDEPTHRANGEPROC, glDepthRange); \
|
||||
HookExtension(PFNGLSTENCILFUNCPROC, glStencilFunc); \
|
||||
HookExtension(PFNGLSTENCILMASKPROC, glStencilMask); \
|
||||
HookExtension(PFNGLSTENCILOPPROC, glStencilOp); \
|
||||
@@ -978,12 +1059,7 @@
|
||||
HookWrapper3(void, glGetVertexAttribdv, GLuint, index, GLenum, pname, GLdouble *, params); \
|
||||
HookWrapper3(void, glGetVertexAttribfv, GLuint, index, GLenum, pname, GLfloat *, params); \
|
||||
HookWrapper3(void, glGetNamedBufferParameteri64v, GLuint, buffer, GLenum, pname, GLint64 *, params); \
|
||||
HookWrapper3(void, glGetNamedBufferParameteriv, GLuint, buffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetNamedBufferPointerv, GLuint, buffer, GLenum, pname, void **, params); \
|
||||
HookWrapper4(void, glGetNamedBufferSubData, GLuint, buffer, GLintptr, offset, GLsizei, size, void *, data); \
|
||||
HookWrapper4(void, glGetNamedFramebufferAttachmentParameteriv, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetNamedFramebufferParameteriv, GLuint, framebuffer, GLenum, pname, GLint *, param); \
|
||||
HookWrapper3(void, glGetNamedRenderbufferParameteriv, GLuint, renderbuffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper1(GLenum, glCheckFramebufferStatus, GLenum, target); \
|
||||
HookWrapper4(void, glBlendColor, GLfloat, red, GLfloat, green, GLfloat, blue, GLfloat, alpha); \
|
||||
HookWrapper3(void, glBlendFunci, GLuint, buf, GLenum, src, GLenum, dst); \
|
||||
@@ -1371,17 +1447,46 @@
|
||||
HookWrapper12(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 void *, bits); \
|
||||
HookWrapper3(void, glFramebufferDrawBuffersEXT, GLuint, framebuffer, GLsizei, n, const GLenum *, bufs); \
|
||||
HookWrapper2(void, glGenerateTextureMipmapEXT, GLuint, texture, GLenum, target); \
|
||||
HookWrapper4(void, glGetCompressedTextureImageEXT, GLuint, texture, GLenum, target, GLint, lod, void *, img); \
|
||||
HookWrapper4(void, glGetNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \
|
||||
HookWrapper3(void, glGetNamedBufferParameterivEXT, GLuint, buffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetPointeri_vEXT, GLenum, pname, GLuint, index, void **, params); \
|
||||
HookWrapper3(void, glGetDoubleIndexedvEXT, GLenum, target, GLuint, index, GLdouble *, data); \
|
||||
HookWrapper3(void, glGetPointerIndexedvEXT, GLenum, target, GLuint, index, void **, data); \
|
||||
HookWrapper3(void, glGetIntegerIndexedvEXT, GLenum, target, GLuint, index, GLint *, data); \
|
||||
HookWrapper3(void, glGetBooleanIndexedvEXT, GLenum, target, GLuint, index, GLboolean *, data); \
|
||||
HookWrapper3(void, glGetFloatIndexedvEXT, GLenum, target, GLuint, index, GLfloat *, data); \
|
||||
HookWrapper6(void, glGetMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
|
||||
HookWrapper4(void, glGetMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat *, params); \
|
||||
HookWrapper4(void, glGetMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLuint *, params); \
|
||||
HookWrapper5(void, glGetMultiTexLevelParameterfvEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
|
||||
HookWrapper5(void, glGetMultiTexLevelParameterivEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetCompressedMultiTexImageEXT, GLenum, texunit, GLenum, target, GLint, lod, void *, img); \
|
||||
HookWrapper3(void, glGetNamedBufferPointervEXT, GLuint, buffer, GLenum, pname, void **, params); \
|
||||
HookWrapper4(void, glGetNamedProgramivEXT, GLuint, program, GLenum, target, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetNamedFramebufferAttachmentParameterivEXT, GLuint, framebuffer, GLenum, attachment, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetNamedBufferParameterivEXT, GLuint, buffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, void *, data); \
|
||||
HookWrapper3(void, glGetNamedFramebufferParameterivEXT, GLuint, framebuffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetNamedRenderbufferParameterivEXT, GLuint, renderbuffer, GLenum, pname, GLint *, params); \
|
||||
HookWrapper3(void, glGetVertexArrayIntegervEXT, GLuint, vaobj, GLenum, pname, GLint *, param); \
|
||||
HookWrapper3(void, glGetVertexArrayPointervEXT, GLuint, vaobj, GLenum, pname, void **, param); \
|
||||
HookWrapper4(void, glGetVertexArrayIntegeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, GLint *, param); \
|
||||
HookWrapper4(void, glGetVertexArrayPointeri_vEXT, GLuint, vaobj, GLuint, index, GLenum, pname, void **, param); \
|
||||
HookWrapper4(void, glGetCompressedTextureImageEXT, GLuint, texture, GLenum, target, GLint, lod, void *, img); \
|
||||
HookWrapper6(void, glGetTextureImageEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, format, GLenum, type, void *, pixels); \
|
||||
HookWrapper4(void, glGetTextureParameterivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetTextureParameterfvEXT, GLuint, texture, GLenum, target, GLenum, pname, GLfloat *, params); \
|
||||
HookWrapper4(void, glGetTextureParameterIivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLint *, params); \
|
||||
HookWrapper4(void, glGetTextureParameterIuivEXT, GLuint, texture, GLenum, target, GLenum, pname, GLuint *, params); \
|
||||
HookWrapper5(void, glGetTextureLevelParameterivEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLint *, params); \
|
||||
HookWrapper5(void, glGetTextureLevelParameterfvEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, pname, GLfloat *, params); \
|
||||
HookWrapper3(void, glBindMultiTextureEXT, GLenum, texunit, GLenum, target, GLuint, texture); \
|
||||
HookWrapper2(void *, glMapNamedBufferEXT, GLuint, buffer, GLenum, access); \
|
||||
HookWrapper4(void *, glMapNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length, GLbitfield, access); \
|
||||
HookWrapper3(void, glFlushMappedNamedBufferRangeEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, length); \
|
||||
HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \
|
||||
HookWrapper5(void, glClearNamedBufferDataEXT, GLuint, buffer, GLenum, internalformat, GLenum, format, GLenum, type, const void *, data); \
|
||||
HookWrapper7(void, glClearNamedBufferSubDataEXT, GLuint, buffer, GLenum, internalformat, GLsizeiptr, offset, GLsizeiptr, size, GLenum, format, GLenum, type, const void *, data); \
|
||||
HookWrapper4(void, glNamedBufferDataEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLenum, usage); \
|
||||
HookWrapper4(void, glNamedBufferStorageEXT, GLuint, buffer, GLsizeiptr, size, const void *, data, GLbitfield, flags); \
|
||||
HookWrapper4(void, glNamedBufferSubDataEXT, GLuint, buffer, GLintptr, offset, GLsizeiptr, size, const void *, data); \
|
||||
@@ -1393,6 +1498,10 @@
|
||||
HookWrapper4(void, glNamedFramebufferRenderbufferEXT, GLuint, framebuffer, GLenum, attachment, GLenum, renderbuffertarget, GLuint, renderbuffer); \
|
||||
HookWrapper5(void, glNamedFramebufferTextureLayerEXT, GLuint, framebuffer, GLenum, attachment, GLuint, texture, GLint, level, GLint, layer); \
|
||||
HookWrapper3(void, glNamedFramebufferParameteriEXT, GLuint, framebuffer, GLenum, pname, GLint, param); \
|
||||
HookWrapper4(void, glNamedRenderbufferStorageEXT, GLuint, renderbuffer, GLenum, internalformat, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper5(void, glNamedRenderbufferStorageMultisampleEXT, GLuint, renderbuffer, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper2(void, glFramebufferDrawBufferEXT, GLuint, framebuffer, GLenum, mode); \
|
||||
HookWrapper2(void, glFramebufferReadBufferEXT, GLuint, framebuffer, GLenum, mode); \
|
||||
HookWrapper4(void, glTextureBufferEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer); \
|
||||
HookWrapper6(void, glTextureBufferRangeEXT, GLuint, texture, GLenum, target, GLenum, internalformat, GLuint, buffer, GLintptr, offset, GLsizeiptr, size); \
|
||||
HookWrapper9(void, glTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
@@ -1412,7 +1521,48 @@
|
||||
HookWrapper8(void, glTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper10(void, glTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper12(void, glTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLsizei, width, GLsizei, height, GLsizei, depth, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper1(GLboolean, glUnmapNamedBufferEXT, GLuint, buffer); \
|
||||
HookWrapper8(void, glCopyTextureImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
|
||||
HookWrapper9(void, glCopyTextureImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
|
||||
HookWrapper7(void, glCopyTextureSubImage1DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
|
||||
HookWrapper9(void, glCopyTextureSubImage2DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper10(void, glCopyTextureSubImage3DEXT, GLuint, texture, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper4(void, glMultiTexParameteriEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLint, param); \
|
||||
HookWrapper4(void, glMultiTexParameterivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
|
||||
HookWrapper4(void, glMultiTexParameterfEXT, GLenum, texunit, GLenum, target, GLenum, pname, GLfloat, param); \
|
||||
HookWrapper4(void, glMultiTexParameterfvEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLfloat *, params); \
|
||||
HookWrapper9(void, glMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper10(void, glMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper8(void, glMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper10(void, glMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper8(void, glCopyMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLint, border); \
|
||||
HookWrapper9(void, glCopyMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLint, x, GLint, y, GLsizei, width, GLsizei, height, GLint, border); \
|
||||
HookWrapper7(void, glCopyMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, x, GLint, y, GLsizei, width); \
|
||||
HookWrapper9(void, glCopyMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper11(void, glMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLenum, format, GLenum, type, const void *, pixels); \
|
||||
HookWrapper12(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 void *, pixels); \
|
||||
HookWrapper10(void, glCopyMultiTexSubImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLint, zoffset, GLint, x, GLint, y, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper10(void, glCompressedMultiTexImage3DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLsizei, depth, GLint, border, GLsizei, imageSize, const void *, bits); \
|
||||
HookWrapper9(void, glCompressedMultiTexImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLsizei, height, GLint, border, GLsizei, imageSize, const void *, bits); \
|
||||
HookWrapper8(void, glCompressedMultiTexImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLenum, internalformat, GLsizei, width, GLint, border, GLsizei, imageSize, const void *, bits); \
|
||||
HookWrapper12(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 void *, bits); \
|
||||
HookWrapper10(void, glCompressedMultiTexSubImage2DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLint, yoffset, GLsizei, width, GLsizei, height, GLenum, format, GLsizei, imageSize, const void *, bits); \
|
||||
HookWrapper8(void, glCompressedMultiTexSubImage1DEXT, GLenum, texunit, GLenum, target, GLint, level, GLint, xoffset, GLsizei, width, GLenum, format, GLsizei, imageSize, const void *, bits); \
|
||||
HookWrapper4(void, glMultiTexBufferEXT, GLenum, texunit, GLenum, target, GLenum, internalformat, GLuint, buffer); \
|
||||
HookWrapper4(void, glMultiTexParameterIivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLint *, params); \
|
||||
HookWrapper4(void, glMultiTexParameterIuivEXT, GLenum, texunit, GLenum, target, GLenum, pname, const GLuint *, params); \
|
||||
HookWrapper2(void, glGenerateMultiTexMipmapEXT, GLenum, texunit, GLenum, target); \
|
||||
HookWrapper8(void, glVertexArrayVertexAttribOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLboolean, normalized, GLsizei, stride, GLintptr, offset); \
|
||||
HookWrapper7(void, glVertexArrayVertexAttribIOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
|
||||
HookWrapper2(void, glEnableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
|
||||
HookWrapper2(void, glDisableVertexArrayAttribEXT, GLuint, vaobj, GLuint, index); \
|
||||
HookWrapper5(void, glVertexArrayBindVertexBufferEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, buffer, GLintptr, offset, GLsizei, stride); \
|
||||
HookWrapper6(void, glVertexArrayVertexAttribFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLboolean, normalized, GLuint, relativeoffset); \
|
||||
HookWrapper5(void, glVertexArrayVertexAttribIFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
|
||||
HookWrapper5(void, glVertexArrayVertexAttribLFormatEXT, GLuint, vaobj, GLuint, attribindex, GLint, size, GLenum, type, GLuint, relativeoffset); \
|
||||
HookWrapper3(void, glVertexArrayVertexAttribBindingEXT, GLuint, vaobj, GLuint, attribindex, GLuint, bindingindex); \
|
||||
HookWrapper3(void, glVertexArrayVertexBindingDivisorEXT, GLuint, vaobj, GLuint, bindingindex, GLuint, divisor); \
|
||||
HookWrapper7(void, glVertexArrayVertexAttribLOffsetEXT, GLuint, vaobj, GLuint, buffer, GLuint, index, GLint, size, GLenum, type, GLsizei, stride, GLintptr, offset); \
|
||||
HookWrapper3(void, glVertexArrayVertexAttribDivisorEXT, GLuint, vaobj, GLuint, index, GLuint, divisor); \
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -28,9 +28,9 @@
|
||||
|
||||
#pragma region Buffers
|
||||
|
||||
bool WrappedOpenGL::Serialise_glGenBuffers(GLsizei n, GLuint* textures)
|
||||
bool WrappedOpenGL::Serialise_glGenBuffers(GLsizei n, GLuint* buffers)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), *textures)));
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), *buffers)));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -1499,12 +1499,12 @@ GLboolean WrappedOpenGL::glUnmapBuffer(GLenum target)
|
||||
return m_Real.glUnmapBuffer(target);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
|
||||
bool WrappedOpenGL::Serialise_glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length)
|
||||
{
|
||||
GLResourceRecord *record = NULL;
|
||||
|
||||
if(m_State >= WRITING)
|
||||
record = GetCtxData().m_BufferRecord[BufferIdx(target)];
|
||||
record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
|
||||
SERIALISE_ELEMENT(ResourceId, ID, record->GetResourceID());
|
||||
SERIALISE_ELEMENT(uint64_t, offs, offset);
|
||||
@@ -1538,9 +1538,9 @@ bool WrappedOpenGL::Serialise_glFlushMappedBufferRange(GLenum target, GLintptr o
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
|
||||
void WrappedOpenGL::glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length)
|
||||
{
|
||||
GLResourceRecord *record = GetCtxData().m_BufferRecord[BufferIdx(target)];
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
RDCASSERT(record);
|
||||
|
||||
// only need to pay attention to flushes when in capframe. Otherwise (see above) we
|
||||
@@ -1551,7 +1551,7 @@ void WrappedOpenGL::glFlushMappedBufferRange(GLenum target, GLintptr offset, GLs
|
||||
// note that when we're idle, we only want to flush the range with GL if we've actually
|
||||
// mapped it. Otherwise the map is 'virtual' and just pointing to our backing store data
|
||||
if(m_State != WRITING_IDLE || (record && record->Map.status == GLResourceRecord::Mapped_Write_Real))
|
||||
m_Real.glFlushMappedBufferRange(target, offset, length);
|
||||
m_Real.glFlushMappedNamedBufferRangeEXT(buffer, offset, length);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
@@ -1588,7 +1588,7 @@ void WrappedOpenGL::glFlushMappedBufferRange(GLenum target, GLintptr offset, GLs
|
||||
}
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(FLUSHMAP);
|
||||
Serialise_glFlushMappedBufferRange(target, offset, length);
|
||||
Serialise_glFlushMappedNamedBufferRangeEXT(buffer, offset, length);
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
// other statuses are reading
|
||||
@@ -1596,6 +1596,22 @@ void WrappedOpenGL::glFlushMappedBufferRange(GLenum target, GLintptr offset, GLs
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
|
||||
{
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetCtxData().m_BufferRecord[BufferIdx(target)];
|
||||
RDCASSERT(record);
|
||||
|
||||
if(record)
|
||||
return glFlushMappedNamedBufferRangeEXT(record->Resource.name, offset, length);
|
||||
|
||||
RDCERR("glFlushMappedBufferRange: Couldn't get resource record for target %x - no buffer bound?", target);
|
||||
}
|
||||
|
||||
return m_Real.glFlushMappedBufferRange(target, offset, length);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
||||
#pragma region Transform Feedback
|
||||
@@ -1852,55 +1868,58 @@ void WrappedOpenGL::glEndTransformFeedback()
|
||||
|
||||
#pragma region Vertex Arrays
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset)
|
||||
{
|
||||
size_t bufidx = BufferIdx(eGL_ARRAY_BUFFER);
|
||||
|
||||
ContextData &cd = GetCtxData();
|
||||
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint8_t, Norm, normalized);
|
||||
SERIALISE_ELEMENT(uint32_t, Stride, stride);
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)pointer);
|
||||
SERIALISE_ELEMENT(ResourceId, id, cd.m_VertexArrayRecord ? cd.m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, cd.m_BufferRecord[bufidx] ? cd.m_BufferRecord[bufidx]->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
// if we're reading, we won't have serialised the glBindVertexArray commands before the captured frame,
|
||||
// need to apply it here (and the current state doesn't matter, will be completely set at start of the
|
||||
// frame).
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
|
||||
if(bid != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(bid);
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
buffer = (bid != ResourceId()) ? GetResourceManager()->GetLiveResource(bid).name : 0;
|
||||
|
||||
m_Real.glVertexAttribPointer(Index, Size, Type, Norm, Stride, (const void *)Offset);
|
||||
m_Real.glVertexArrayVertexAttribOffsetEXT(vaobj, buffer, Index, Size, Type, Norm, Stride, (GLintptr)Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribOffsetEXT(vaobj, buffer, index, size, type, normalized, stride, offset);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
ContextData &cd = GetCtxData();
|
||||
GLResourceRecord *bufrecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBPOINTER);
|
||||
Serialise_glVertexArrayVertexAttribOffsetEXT(vaobj, buffer, index, size, type, normalized, stride, offset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
if(bufrecord) r->AddParent(bufrecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
|
||||
{
|
||||
m_Real.glVertexAttribPointer(index, size, type, normalized, stride, pointer);
|
||||
@@ -1921,7 +1940,7 @@ void WrappedOpenGL::glVertexAttribPointer(GLuint index, GLint size, GLenum type,
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBPOINTER);
|
||||
Serialise_glVertexAttribPointer(index, size, type, normalized, stride, pointer);
|
||||
Serialise_glVertexArrayVertexAttribOffsetEXT(varecord->Resource.name, bufrecord->Resource.name, index, size, type, normalized, stride, (GLintptr)pointer);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -1931,54 +1950,57 @@ void WrappedOpenGL::glVertexAttribPointer(GLuint index, GLint size, GLenum type,
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)
|
||||
{
|
||||
size_t bufidx = BufferIdx(eGL_ARRAY_BUFFER);
|
||||
|
||||
ContextData &cd = GetCtxData();
|
||||
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint32_t, Stride, stride);
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)pointer);
|
||||
SERIALISE_ELEMENT(ResourceId, id, cd.m_VertexArrayRecord ? cd.m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, cd.m_BufferRecord[bufidx] ? cd.m_BufferRecord[bufidx]->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
// if we're reading, we won't have serialised the glBindVertexArray commands before the captured frame,
|
||||
// need to apply it here (and the current state doesn't matter, will be completely set at start of the
|
||||
// frame).
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
|
||||
if(bid != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(bid);
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
buffer = (bid != ResourceId()) ? GetResourceManager()->GetLiveResource(bid).name : 0;
|
||||
|
||||
m_Real.glVertexAttribIPointer(Index, Size, Type, Stride, (const void *)Offset);
|
||||
m_Real.glVertexArrayVertexAttribIOffsetEXT(vaobj, buffer, Index, Size, Type, Stride, (GLintptr)Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribIOffsetEXT(vaobj, buffer, index, size, type, stride, offset);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
ContextData &cd = GetCtxData();
|
||||
GLResourceRecord *bufrecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBIPOINTER);
|
||||
Serialise_glVertexArrayVertexAttribIOffsetEXT(vaobj, buffer, index, size, type, stride, offset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
if(bufrecord) r->AddParent(bufrecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
|
||||
{
|
||||
m_Real.glVertexAttribIPointer(index, size, type, stride, pointer);
|
||||
@@ -1999,7 +2021,7 @@ void WrappedOpenGL::glVertexAttribIPointer(GLuint index, GLint size, GLenum type
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBIPOINTER);
|
||||
Serialise_glVertexAttribIPointer(index, size, type, stride, pointer);
|
||||
Serialise_glVertexArrayVertexAttribIOffsetEXT(varecord->Resource.name, bufrecord->Resource.name, index, size, type, stride, (GLintptr)pointer);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2009,54 +2031,57 @@ void WrappedOpenGL::glVertexAttribIPointer(GLuint index, GLint size, GLenum type
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr pointer)
|
||||
{
|
||||
size_t bufidx = BufferIdx(eGL_ARRAY_BUFFER);
|
||||
|
||||
ContextData &cd = GetCtxData();
|
||||
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint32_t, Stride, stride);
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)pointer);
|
||||
SERIALISE_ELEMENT(ResourceId, id, cd.m_VertexArrayRecord ? cd.m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, cd.m_BufferRecord[bufidx] ? cd.m_BufferRecord[bufidx]->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, bid, buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
// if we're reading, we won't have serialised the glBindVertexArray commands before the captured frame,
|
||||
// need to apply it here (and the current state doesn't matter, will be completely set at start of the
|
||||
// frame).
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
|
||||
if(bid != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(bid);
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindBuffer(eGL_ARRAY_BUFFER, 0);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
buffer = (bid != ResourceId()) ? GetResourceManager()->GetLiveResource(bid).name : 0;
|
||||
|
||||
m_Real.glVertexAttribLPointer(Index, Size, Type, Stride, (const void *)Offset);
|
||||
m_Real.glVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, Index, Size, Type, Stride, (GLintptr)Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr pointer)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, index, size, type, stride, pointer);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
ContextData &cd = GetCtxData();
|
||||
GLResourceRecord *bufrecord = GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer));
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBLPOINTER);
|
||||
Serialise_glVertexArrayVertexAttribLOffsetEXT(vaobj, buffer, index, size, type, stride, pointer);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
if(bufrecord) r->AddParent(bufrecord);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
|
||||
{
|
||||
m_Real.glVertexAttribLPointer(index, size, type, stride, pointer);
|
||||
@@ -2077,7 +2102,7 @@ void WrappedOpenGL::glVertexAttribLPointer(GLuint index, GLint size, GLenum type
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBLPOINTER);
|
||||
Serialise_glVertexAttribLPointer(index, size, type, stride, pointer);
|
||||
Serialise_glVertexArrayVertexAttribLOffsetEXT(varecord->Resource.name, bufrecord->Resource.name, index, size, type, stride, (GLintptr)pointer);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2087,32 +2112,46 @@ void WrappedOpenGL::glVertexAttribLPointer(GLuint index, GLint size, GLenum type
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribBinding(GLuint attribindex, GLuint bindingindex)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, aidx, attribindex);
|
||||
SERIALISE_ELEMENT(uint32_t, bidx, bindingindex);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
|
||||
m_Real.glVertexAttribBinding(aidx, bidx);
|
||||
m_Real.glVertexArrayVertexAttribBindingEXT((id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO, aidx, bidx);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribBindingEXT(GLuint vaobj, GLuint attribindex, GLuint bindingindex)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribBindingEXT(vaobj, attribindex, bindingindex);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBBINDING);
|
||||
Serialise_glVertexArrayVertexAttribBindingEXT(varecord->Resource.name, attribindex, bindingindex);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribBinding(GLuint attribindex, GLuint bindingindex)
|
||||
{
|
||||
m_Real.glVertexAttribBinding(attribindex, bindingindex);
|
||||
@@ -2132,7 +2171,7 @@ void WrappedOpenGL::glVertexAttribBinding(GLuint attribindex, GLuint bindinginde
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBBINDING);
|
||||
Serialise_glVertexAttribBinding(attribindex, bindingindex);
|
||||
Serialise_glVertexArrayVertexAttribBindingEXT(varecord->Resource.name, attribindex, bindingindex);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2140,36 +2179,52 @@ void WrappedOpenGL::glVertexAttribBinding(GLuint attribindex, GLuint bindinginde
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, attribindex);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(bool, Norm, normalized ? true : false);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint32_t, Offset, relativeoffset);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
|
||||
m_Real.glVertexAttribFormat(Index, Size, Type, Norm, Offset);
|
||||
m_Real.glVertexArrayVertexAttribFormatEXT(vaobj, Index, Size, Type, Norm, Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribFormatEXT(vaobj, attribindex, size, type, normalized, relativeoffset);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBFORMAT);
|
||||
Serialise_glVertexArrayVertexAttribFormatEXT(vaobj, attribindex, size, type, normalized, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
|
||||
@@ -2189,7 +2244,7 @@ void WrappedOpenGL::glVertexAttribFormat(GLuint attribindex, GLint size, GLenum
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBFORMAT);
|
||||
Serialise_glVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
|
||||
Serialise_glVertexArrayVertexAttribFormatEXT(varecord->Resource.name, attribindex, size, type, normalized, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2197,35 +2252,51 @@ void WrappedOpenGL::glVertexAttribFormat(GLuint attribindex, GLint size, GLenum
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, attribindex);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint32_t, Offset, relativeoffset);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
|
||||
m_Real.glVertexAttribIFormat(Index, Size, Type, Offset);
|
||||
m_Real.glVertexArrayVertexAttribIFormatEXT(vaobj, Index, Size, Type, Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribIFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribIFormatEXT(vaobj, attribindex, size, type, relativeoffset);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBIFORMAT);
|
||||
Serialise_glVertexArrayVertexAttribIFormatEXT(vaobj, attribindex, size, type, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexAttribIFormat(attribindex, size, type, relativeoffset);
|
||||
@@ -2245,7 +2316,7 @@ void WrappedOpenGL::glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBIFORMAT);
|
||||
Serialise_glVertexAttribIFormat(attribindex, size, type, relativeoffset);
|
||||
Serialise_glVertexArrayVertexAttribIFormatEXT(varecord->Resource.name, attribindex, size, type, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2253,35 +2324,51 @@ void WrappedOpenGL::glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, attribindex);
|
||||
SERIALISE_ELEMENT(int32_t, Size, size);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
SERIALISE_ELEMENT(uint32_t, Offset, relativeoffset);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
|
||||
m_Real.glVertexAttribLFormat(Index, Size, Type, Offset);
|
||||
m_Real.glVertexArrayVertexAttribLFormatEXT(vaobj, Index, Size, Type, Offset);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribLFormatEXT(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribLFormatEXT(vaobj, attribindex, size, type, relativeoffset);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBLFORMAT);
|
||||
Serialise_glVertexArrayVertexAttribLFormatEXT(vaobj, attribindex, size, type, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
|
||||
{
|
||||
m_Real.glVertexAttribLFormat(attribindex, size, type, relativeoffset);
|
||||
@@ -2301,7 +2388,7 @@ void WrappedOpenGL::glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBLFORMAT);
|
||||
Serialise_glVertexAttribLFormat(attribindex, size, type, relativeoffset);
|
||||
Serialise_glVertexArrayVertexAttribLFormatEXT(varecord->Resource.name, attribindex, size, type, relativeoffset);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2309,33 +2396,49 @@ void WrappedOpenGL::glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexAttribDivisor(GLuint index, GLuint divisor)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(uint32_t, Divisor, divisor);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (id != ResourceId()) ? GetResourceManager()->GetLiveResource(id).name : m_FakeVAO;
|
||||
|
||||
m_Real.glVertexAttribDivisor(Index, Divisor);
|
||||
m_Real.glVertexArrayVertexAttribDivisorEXT(vaobj, Index, Divisor);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexAttribDivisorEXT(GLuint vaobj, GLuint index, GLuint divisor)
|
||||
{
|
||||
m_Real.glVertexArrayVertexAttribDivisorEXT(vaobj, index, divisor);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBDIVISOR);
|
||||
Serialise_glVertexArrayVertexAttribDivisorEXT(vaobj, index, divisor);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexAttribDivisor(GLuint index, GLuint divisor)
|
||||
{
|
||||
m_Real.glVertexAttribDivisor(index, divisor);
|
||||
@@ -2355,7 +2458,7 @@ void WrappedOpenGL::glVertexAttribDivisor(GLuint index, GLuint divisor)
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXATTRIBDIVISOR);
|
||||
Serialise_glVertexAttribDivisor(index, divisor);
|
||||
Serialise_glVertexArrayVertexAttribDivisorEXT(varecord->Resource.name, index, divisor);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2363,10 +2466,10 @@ void WrappedOpenGL::glVertexAttribDivisor(GLuint index, GLuint divisor)
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glEnableVertexAttribArray(GLuint index)
|
||||
bool WrappedOpenGL::Serialise_glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -2388,6 +2491,33 @@ bool WrappedOpenGL::Serialise_glEnableVertexAttribArray(GLuint index)
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glEnableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
|
||||
{
|
||||
m_Real.glEnableVertexArrayAttribEXT(vaobj, index);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(ENABLEVERTEXATTRIBARRAY);
|
||||
Serialise_glEnableVertexArrayAttribEXT(varecord->Resource.name, index);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glEnableVertexAttribArray(GLuint index)
|
||||
{
|
||||
m_Real.glEnableVertexAttribArray(index);
|
||||
@@ -2407,7 +2537,7 @@ void WrappedOpenGL::glEnableVertexAttribArray(GLuint index)
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(ENABLEVERTEXATTRIBARRAY);
|
||||
Serialise_glEnableVertexAttribArray(index);
|
||||
Serialise_glEnableVertexArrayAttribEXT(varecord->Resource.name, index);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2415,10 +2545,10 @@ void WrappedOpenGL::glEnableVertexAttribArray(GLuint index)
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDisableVertexAttribArray(GLuint index)
|
||||
bool WrappedOpenGL::Serialise_glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, Index, index);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, id, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
@@ -2440,6 +2570,33 @@ bool WrappedOpenGL::Serialise_glDisableVertexAttribArray(GLuint index)
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDisableVertexArrayAttribEXT(GLuint vaobj, GLuint index)
|
||||
{
|
||||
m_Real.glDisableVertexArrayAttribEXT(vaobj, index);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DISABLEVERTEXATTRIBARRAY);
|
||||
Serialise_glDisableVertexArrayAttribEXT(varecord->Resource.name, index);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDisableVertexAttribArray(GLuint index)
|
||||
{
|
||||
m_Real.glDisableVertexAttribArray(index);
|
||||
@@ -2459,7 +2616,7 @@ void WrappedOpenGL::glDisableVertexAttribArray(GLuint index)
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DISABLEVERTEXATTRIBARRAY);
|
||||
Serialise_glDisableVertexAttribArray(index);
|
||||
Serialise_glDisableVertexArrayAttribEXT(varecord->Resource.name, index);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2584,39 +2741,58 @@ bool WrappedOpenGL::Serialise_glVertexArrayElementBuffer(GLuint vaobj, GLuint bu
|
||||
return true;
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, idx, bindingindex);
|
||||
SERIALISE_ELEMENT(ResourceId, id, (buffer ? GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(uint64_t, offs, offset);
|
||||
SERIALISE_ELEMENT(uint64_t, str, stride);
|
||||
SERIALISE_ELEMENT(ResourceId, vid, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, vid, vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId());
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(vid != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(vid);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (vid != ResourceId()) ? GetResourceManager()->GetLiveResource(vid).name : m_FakeVAO;
|
||||
|
||||
GLuint live = 0;
|
||||
if(id != ResourceId())
|
||||
live = GetResourceManager()->GetLiveResource(id).name;
|
||||
|
||||
m_Real.glBindVertexBuffer(idx, live, (GLintptr)offs, (GLsizei)str);
|
||||
m_Real.glVertexArrayBindVertexBufferEXT(vaobj, idx, live, (GLintptr)offs, (GLsizei)str);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayBindVertexBufferEXT(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
|
||||
{
|
||||
m_Real.glVertexArrayBindVertexBufferEXT(vaobj, bindingindex, buffer, offset, stride);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BIND_VERTEXBUFFER);
|
||||
Serialise_glVertexArrayBindVertexBufferEXT(vaobj, bindingindex, buffer, offset, stride);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
if(buffer != 0)
|
||||
r->AddParent(GetResourceManager()->GetResourceRecord(BufferRes(GetCtx(), buffer)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
|
||||
{
|
||||
m_Real.glBindVertexBuffer(bindingindex, buffer, offset, stride);
|
||||
@@ -2636,7 +2812,7 @@ void WrappedOpenGL::glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLint
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(BIND_VERTEXBUFFER);
|
||||
Serialise_glBindVertexBuffer(bindingindex, buffer, offset, stride);
|
||||
Serialise_glVertexArrayBindVertexBufferEXT(varecord->Resource.name, bindingindex, buffer, offset, stride);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
@@ -2739,33 +2915,49 @@ void WrappedOpenGL::glBindVertexBuffers(GLuint first, GLsizei count, const GLuin
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
|
||||
bool WrappedOpenGL::Serialise_glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, idx, bindingindex);
|
||||
SERIALISE_ELEMENT(uint32_t, d, divisor);
|
||||
SERIALISE_ELEMENT(ResourceId, vid, GetCtxData().m_VertexArrayRecord ? GetCtxData().m_VertexArrayRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, vid, (vaobj ? GetResourceManager()->GetID(VertexArrayRes(GetCtx(), vaobj)) : ResourceId()));
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
if(m_State == READING)
|
||||
{
|
||||
if(vid != ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(vid);
|
||||
m_Real.glBindVertexArray(res.name);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindVertexArray(m_FakeVAO);
|
||||
}
|
||||
}
|
||||
vaobj = (vid != ResourceId()) ? GetResourceManager()->GetLiveResource(vid).name : m_FakeVAO;
|
||||
|
||||
m_Real.glVertexBindingDivisor(idx, d);
|
||||
m_Real.glVertexArrayVertexBindingDivisorEXT(vaobj, idx, d);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexArrayVertexBindingDivisorEXT(GLuint vaobj, GLuint bindingindex, GLuint divisor)
|
||||
{
|
||||
m_Real.glVertexArrayVertexBindingDivisorEXT(vaobj, bindingindex, divisor);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *varecord = GetResourceManager()->GetResourceRecord(VertexArrayRes(GetCtx(), vaobj));
|
||||
|
||||
GLResourceRecord *r = m_State == WRITING_CAPFRAME ? m_ContextRecord : varecord;
|
||||
|
||||
if(r)
|
||||
{
|
||||
if(m_State == WRITING_IDLE && !RecordUpdateCheck(varecord))
|
||||
return;
|
||||
if(m_State == WRITING_CAPFRAME && varecord)
|
||||
GetResourceManager()->MarkResourceFrameReferenced(varecord->GetResourceID(), eFrameRef_Write);
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXBINDINGDIVISOR);
|
||||
Serialise_glVertexArrayVertexBindingDivisorEXT(vaobj, bindingindex, divisor);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
|
||||
{
|
||||
m_Real.glVertexBindingDivisor(bindingindex, divisor);
|
||||
@@ -2785,7 +2977,7 @@ void WrappedOpenGL::glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
|
||||
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(VERTEXBINDINGDIVISOR);
|
||||
Serialise_glVertexBindingDivisor(bindingindex, divisor);
|
||||
Serialise_glVertexArrayVertexBindingDivisorEXT(varecord->Resource.name, bindingindex, divisor);
|
||||
|
||||
r->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
@@ -1816,9 +1816,9 @@ void WrappedOpenGL::glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat dep
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data)
|
||||
bool WrappedOpenGL::Serialise_glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)));
|
||||
SERIALISE_ELEMENT(GLenum, InternalFormat, internalformat);
|
||||
SERIALISE_ELEMENT(GLenum, Format, format);
|
||||
SERIALISE_ELEMENT(GLenum, Type, type);
|
||||
@@ -1882,28 +1882,44 @@ bool WrappedOpenGL::Serialise_glClearBufferData(GLenum target, GLenum internalfo
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glClearBufferData(Target, InternalFormat, Format, Type, (const void *)&val[0]);
|
||||
m_Real.glClearNamedBufferDataEXT(GetResourceManager()->GetLiveResource(id).name, InternalFormat, Format, Type, (const void *)&val[0]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
m_Real.glClearNamedBufferDataEXT(buffer, internalformat, format, type, data);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(CLEARBUFFERDATA);
|
||||
Serialise_glClearNamedBufferDataEXT(buffer, internalformat, format, type, data);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
m_Real.glClearBufferData(target, internalformat, format, type, data);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
GLResourceRecord *record = GetCtxData().m_BufferRecord[BufferIdx(target)];
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(CLEARBUFFERDATA);
|
||||
Serialise_glClearBufferData(target, internalformat, format, type, data);
|
||||
Serialise_glClearNamedBufferDataEXT(record->Resource.name, internalformat, format, type, data);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
|
||||
bool WrappedOpenGL::Serialise_glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Target, target);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetResourceManager()->GetID(BufferRes(GetCtx(), buffer)));
|
||||
SERIALISE_ELEMENT(GLenum, InternalFormat, internalformat);
|
||||
SERIALISE_ELEMENT(uint64_t, Offset, (uint64_t)offset);
|
||||
SERIALISE_ELEMENT(uint64_t, Size, (uint64_t)size);
|
||||
@@ -1969,20 +1985,36 @@ bool WrappedOpenGL::Serialise_glClearBufferSubData(GLenum target, GLenum interna
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glClearBufferSubData(Target, InternalFormat, (GLintptr)Offset, (GLsizeiptr)Size, Format, Type, (const void *)&val[0]);
|
||||
m_Real.glClearNamedBufferSubDataEXT(GetResourceManager()->GetLiveResource(id).name, InternalFormat, (GLintptr)Offset, (GLsizeiptr)Size, Format, Type, (const void *)&val[0]);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
m_Real.glClearNamedBufferSubDataEXT(buffer, internalformat, offset, size, format, type, data);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(CLEARBUFFERSUBDATA);
|
||||
Serialise_glClearNamedBufferSubDataEXT(buffer, internalformat, offset, size, format, type, data);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
|
||||
{
|
||||
m_Real.glClearBufferSubData(target, internalformat, offset, size, format, type, data);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
GLResourceRecord *record = GetCtxData().m_BufferRecord[BufferIdx(target)];
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(CLEARBUFFERSUBDATA);
|
||||
Serialise_glClearBufferSubData(target, internalformat, offset, size, format, type, data);
|
||||
Serialise_glClearNamedBufferSubDataEXT(record->Resource.name, internalformat, offset, size, format, type, data);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
@@ -699,49 +699,74 @@ void WrappedOpenGL::glFramebufferParameteri(GLenum target, GLenum pname, GLint p
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glReadBuffer(GLenum mode)
|
||||
bool WrappedOpenGL::Serialise_glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, m, mode);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_ReadFramebufferRecord ? GetCtxData().m_ReadFramebufferRecord->GetResourceID() : ResourceId());
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(GLenum, b, mode);
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
if(id != ResourceId())
|
||||
if(Id == ResourceId())
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(id);
|
||||
m_Real.glBindFramebuffer(eGL_READ_FRAMEBUFFER, res.name);
|
||||
// since we are faking the default framebuffer with our own
|
||||
// to see the results, replace back/front/left/right with color attachment 0
|
||||
if(b == eGL_BACK_LEFT || b == eGL_BACK_RIGHT || b == eGL_BACK ||
|
||||
b == eGL_FRONT_LEFT || b == eGL_FRONT_RIGHT || b == eGL_FRONT)
|
||||
b = eGL_COLOR_ATTACHMENT0;
|
||||
|
||||
m_Real.glFramebufferReadBufferEXT(m_FakeBB_FBO, b);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glBindFramebuffer(eGL_READ_FRAMEBUFFER, m_FakeBB_FBO);
|
||||
GLResource res = GetResourceManager()->GetLiveResource(Id);
|
||||
m_Real.glFramebufferReadBufferEXT(res.name, b);
|
||||
}
|
||||
|
||||
m_Real.glReadBuffer(m);
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glFramebufferReadBufferEXT(GLuint framebuffer, GLenum buf)
|
||||
{
|
||||
m_Real.glFramebufferReadBufferEXT(framebuffer, buf);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(READ_BUFFER);
|
||||
Serialise_glFramebufferReadBufferEXT(framebuffer, buf);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
else if(m_State == WRITING_IDLE && framebuffer != 0)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(READ_BUFFER);
|
||||
Serialise_glFramebufferReadBufferEXT(framebuffer, buf);
|
||||
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glReadBuffer(GLenum mode)
|
||||
{
|
||||
m_Real.glReadBuffer(mode);
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *drawrecord = GetCtxData().m_DrawFramebufferRecord;
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(READ_BUFFER);
|
||||
Serialise_glReadBuffer(mode);
|
||||
Serialise_glFramebufferReadBufferEXT(drawrecord ? drawrecord->Resource.name : 0, mode);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
else
|
||||
{
|
||||
GLResourceRecord *readrecord = GetCtxData().m_ReadFramebufferRecord;
|
||||
if(readrecord)
|
||||
GetResourceManager()->MarkDirtyResource(readrecord->GetResourceID());
|
||||
if(drawrecord)
|
||||
GetResourceManager()->MarkDirtyResource(drawrecord->GetResourceID());
|
||||
}
|
||||
}
|
||||
|
||||
m_Real.glReadBuffer(mode);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glBindFramebuffer(GLenum target, GLuint framebuffer)
|
||||
@@ -786,38 +811,68 @@ void WrappedOpenGL::glBindFramebuffer(GLenum target, GLuint framebuffer)
|
||||
m_Real.glBindFramebuffer(target, framebuffer);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDrawBuffer(GLenum buf)
|
||||
bool WrappedOpenGL::Serialise_glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum buf)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, Id, (framebuffer ? GetResourceManager()->GetID(FramebufferRes(GetCtx(), framebuffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(GLenum, b, buf);
|
||||
|
||||
if(m_State < WRITING)
|
||||
{
|
||||
// since we are faking the default framebuffer with our own
|
||||
// to see the results, replace back/front/left/right with color attachment 0
|
||||
if(b == eGL_BACK_LEFT || b == eGL_BACK_RIGHT || b == eGL_BACK ||
|
||||
b == eGL_FRONT_LEFT || b == eGL_FRONT_RIGHT || b == eGL_FRONT)
|
||||
b = eGL_COLOR_ATTACHMENT0;
|
||||
|
||||
m_Real.glDrawBuffer(b);
|
||||
if(Id == ResourceId())
|
||||
{
|
||||
// since we are faking the default framebuffer with our own
|
||||
// to see the results, replace back/front/left/right with color attachment 0
|
||||
if(b == eGL_BACK_LEFT || b == eGL_BACK_RIGHT || b == eGL_BACK ||
|
||||
b == eGL_FRONT_LEFT || b == eGL_FRONT_RIGHT || b == eGL_FRONT)
|
||||
b = eGL_COLOR_ATTACHMENT0;
|
||||
|
||||
m_Real.glFramebufferDrawBufferEXT(m_FakeBB_FBO, b);
|
||||
}
|
||||
else
|
||||
{
|
||||
GLResource res = GetResourceManager()->GetLiveResource(Id);
|
||||
m_Real.glFramebufferDrawBufferEXT(res.name, b);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum buf)
|
||||
{
|
||||
m_Real.glFramebufferDrawBufferEXT(framebuffer, buf);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DRAW_BUFFER);
|
||||
Serialise_glFramebufferDrawBufferEXT(framebuffer, buf);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
else if(m_State == WRITING_IDLE && framebuffer != 0)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DRAW_BUFFER);
|
||||
Serialise_glFramebufferDrawBufferEXT(framebuffer, buf);
|
||||
|
||||
ResourceRecord *record = GetResourceManager()->GetResourceRecord(FramebufferRes(GetCtx(), framebuffer));
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDrawBuffer(GLenum buf)
|
||||
{
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *drawrecord = GetCtxData().m_DrawFramebufferRecord;
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DRAW_BUFFER);
|
||||
Serialise_glDrawBuffer(buf);
|
||||
Serialise_glFramebufferDrawBufferEXT(drawrecord ? drawrecord->Resource.name : 0, buf);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
else
|
||||
{
|
||||
GLResourceRecord *drawrecord = GetCtxData().m_DrawFramebufferRecord;
|
||||
if(drawrecord)
|
||||
GetResourceManager()->MarkDirtyResource(drawrecord->GetResourceID());
|
||||
}
|
||||
@@ -1075,9 +1130,9 @@ void WrappedOpenGL::glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers
|
||||
m_Real.glDeleteRenderbuffers(n, renderbuffers);
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
bool WrappedOpenGL::Serialise_glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_Renderbuffer);
|
||||
SERIALISE_ELEMENT(ResourceId, id, (renderbuffer ? GetResourceManager()->GetID(RenderbufferRes(GetCtx(), renderbuffer)) : ResourceId()));
|
||||
SERIALISE_ELEMENT(GLenum, Format, internalformat);
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
@@ -1096,8 +1151,7 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorage(GLenum target, GLenum intern
|
||||
|
||||
GLuint real = GetResourceManager()->GetLiveResource(id).name;
|
||||
|
||||
m_Real.glBindRenderbuffer(eGL_RENDERBUFFER, real);
|
||||
m_Real.glRenderbufferStorage(eGL_RENDERBUFFER, Format, Width, Height);
|
||||
m_Real.glNamedRenderbufferStorageEXT(real, Format, Width, Height);
|
||||
|
||||
// create read-from texture for displaying this render buffer
|
||||
m_Real.glGenTextures(1, &texDetails.renderbufferReadTex);
|
||||
@@ -1121,23 +1175,24 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorage(GLenum target, GLenum intern
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
void WrappedOpenGL::glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
m_Real.glRenderbufferStorage(target, internalformat, width, height);
|
||||
m_Real.glNamedRenderbufferStorageEXT(renderbuffer, internalformat, width, height);
|
||||
|
||||
ResourceId rb = GetResourceManager()->GetID(RenderbufferRes(GetCtx(), renderbuffer));
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(GetCtxData().m_Renderbuffer);
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(rb);
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(RENDERBUFFER_STORAGE);
|
||||
Serialise_glRenderbufferStorage(eGL_RENDERBUFFER, internalformat, width, height);
|
||||
Serialise_glNamedRenderbufferStorageEXT(record->Resource.name, internalformat, width, height);
|
||||
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
{
|
||||
ResourceId rb = GetCtxData().m_Renderbuffer;
|
||||
m_Textures[rb].width = width;
|
||||
m_Textures[rb].height = height;
|
||||
m_Textures[rb].depth = 1;
|
||||
@@ -1148,13 +1203,41 @@ void WrappedOpenGL::glRenderbufferStorage(GLenum target, GLenum internalformat,
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
void WrappedOpenGL::glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
m_Real.glRenderbufferStorage(target, internalformat, width, height);
|
||||
|
||||
ResourceId rb = GetCtxData().m_Renderbuffer;
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(rb);
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(RENDERBUFFER_STORAGE);
|
||||
Serialise_glNamedRenderbufferStorageEXT(record->Resource.name, internalformat, width, height);
|
||||
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
{
|
||||
m_Textures[rb].width = width;
|
||||
m_Textures[rb].height = height;
|
||||
m_Textures[rb].depth = 1;
|
||||
m_Textures[rb].samples = 1;
|
||||
m_Textures[rb].curType = eGL_RENDERBUFFER;
|
||||
m_Textures[rb].dimension = 2;
|
||||
m_Textures[rb].internalFormat = internalformat;
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLenum, Format, internalformat);
|
||||
SERIALISE_ELEMENT(uint32_t, Samples, samples);
|
||||
SERIALISE_ELEMENT(uint32_t, Width, width);
|
||||
SERIALISE_ELEMENT(uint32_t, Height, height);
|
||||
SERIALISE_ELEMENT(ResourceId, id, GetCtxData().m_Renderbuffer);
|
||||
SERIALISE_ELEMENT(ResourceId, id, (renderbuffer ? GetResourceManager()->GetID(RenderbufferRes(GetCtx(), renderbuffer)) : ResourceId()));
|
||||
|
||||
if(m_State == READING)
|
||||
{
|
||||
@@ -1170,8 +1253,7 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorageMultisample(GLenum target, GL
|
||||
|
||||
GLuint real = GetResourceManager()->GetLiveResource(id).name;
|
||||
|
||||
m_Real.glBindRenderbuffer(eGL_RENDERBUFFER, GetResourceManager()->GetLiveResource(id).name);
|
||||
m_Real.glRenderbufferStorageMultisample(eGL_RENDERBUFFER, Samples, Format, Width, Height);
|
||||
m_Real.glNamedRenderbufferStorageMultisampleEXT(real, Samples, Format, Width, Height);
|
||||
|
||||
// create read-from texture for displaying this render buffer
|
||||
m_Real.glGenTextures(1, &texDetails.renderbufferReadTex);
|
||||
@@ -1195,23 +1277,52 @@ bool WrappedOpenGL::Serialise_glRenderbufferStorageMultisample(GLenum target, GL
|
||||
return true;
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
void WrappedOpenGL::glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
m_Real.glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
|
||||
m_Real.glNamedRenderbufferStorageMultisampleEXT(renderbuffer, samples, internalformat, width, height);
|
||||
|
||||
ResourceId rb = GetResourceManager()->GetID(RenderbufferRes(GetCtx(), renderbuffer));
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(GetCtxData().m_Renderbuffer);
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(rb);
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(RENDERBUFFER_STORAGEMS);
|
||||
Serialise_glRenderbufferStorageMultisample(eGL_RENDERBUFFER, samples, internalformat, width, height);
|
||||
Serialise_glNamedRenderbufferStorageMultisampleEXT(record->Resource.name, samples, internalformat, width, height);
|
||||
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
{
|
||||
m_Textures[rb].width = width;
|
||||
m_Textures[rb].height = height;
|
||||
m_Textures[rb].depth = 1;
|
||||
m_Textures[rb].samples = samples;
|
||||
m_Textures[rb].curType = eGL_RENDERBUFFER;
|
||||
m_Textures[rb].dimension = 2;
|
||||
m_Textures[rb].internalFormat = internalformat;
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
|
||||
{
|
||||
m_Real.glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
|
||||
|
||||
ResourceId rb = GetCtxData().m_Renderbuffer;
|
||||
|
||||
if(m_State >= WRITING)
|
||||
{
|
||||
GLResourceRecord *record = GetResourceManager()->GetResourceRecord(rb);
|
||||
RDCASSERT(record);
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(RENDERBUFFER_STORAGEMS);
|
||||
Serialise_glNamedRenderbufferStorageMultisampleEXT(record->Resource.name, samples, internalformat, width, height);
|
||||
|
||||
record->AddChunk(scope.Get());
|
||||
}
|
||||
|
||||
{
|
||||
ResourceId rb = GetCtxData().m_Renderbuffer;
|
||||
m_Textures[rb].width = width;
|
||||
m_Textures[rb].height = height;
|
||||
m_Textures[rb].depth = 1;
|
||||
|
||||
@@ -190,21 +190,6 @@ void WrappedOpenGL::glGetTexLevelParameteriv(GLenum target, GLint level, GLenum
|
||||
m_Real.glGetTexLevelParameteriv(target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetTextureParameterivEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetTextureParameterfvEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetTextureLevelParameterivEXT(texture, target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetTexLevelParameterfv(target, level, pname, params);
|
||||
@@ -265,11 +250,6 @@ void WrappedOpenGL::glGetTexImage(GLenum target, GLint level, GLenum format, GLe
|
||||
m_Real.glGetTexImage(target, level, format, type, pixels);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
|
||||
{
|
||||
m_Real.glGetTextureImageEXT(texture, target, level, format, type, pixels);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetCompressedTexImage(GLenum target, GLint level, void *img)
|
||||
{
|
||||
m_Real.glGetCompressedTexImage(target, level, img);
|
||||
@@ -305,11 +285,6 @@ void WrappedOpenGL::glGetTextureSubImage(GLuint texture, GLint level, GLint xoff
|
||||
m_Real.glGetTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level, void *img)
|
||||
{
|
||||
m_Real.glGetCompressedTextureImageEXT(texture, target, level, img);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)
|
||||
{
|
||||
m_Real.glGetInternalformativ(target, internalformat, pname, bufSize, params);
|
||||
@@ -426,11 +401,6 @@ GLenum WrappedOpenGL::glCheckFramebufferStatus(GLenum target)
|
||||
return m_Real.glCheckFramebufferStatus(target);
|
||||
}
|
||||
|
||||
GLenum WrappedOpenGL::glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target)
|
||||
{
|
||||
return m_Real.glCheckNamedFramebufferStatusEXT(framebuffer, target);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetVertexAttribiv(index, pname, params);
|
||||
@@ -771,29 +741,34 @@ void WrappedOpenGL::glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void *
|
||||
m_Real.glGetNamedBufferPointerv(buffer, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint *param)
|
||||
void WrappedOpenGL::glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *param)
|
||||
{
|
||||
m_Real.glGetNamedFramebufferParameteriv(framebuffer, pname, param);
|
||||
m_Real.glGetNamedFramebufferParameterivEXT(framebuffer, pname, param);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)
|
||||
void WrappedOpenGL::glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetNamedFramebufferAttachmentParameteriv(framebuffer, attachment, pname, params);
|
||||
m_Real.glGetNamedFramebufferAttachmentParameterivEXT(framebuffer, attachment, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint *params)
|
||||
void WrappedOpenGL::glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetNamedRenderbufferParameteriv(renderbuffer, pname, params);
|
||||
m_Real.glGetNamedRenderbufferParameterivEXT(renderbuffer, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params)
|
||||
void WrappedOpenGL::glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
|
||||
{
|
||||
m_Real.glGetNamedBufferParameterivEXT(buffer, pname, params);
|
||||
m_Real.glGetTextureImageEXT(texture, target, level, format, type, pixels);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
|
||||
void WrappedOpenGL::glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint level, void *img)
|
||||
{
|
||||
m_Real.glGetNamedBufferSubDataEXT(buffer, offset, size, data);
|
||||
m_Real.glGetCompressedTextureImageEXT(texture, target, level, img);
|
||||
}
|
||||
|
||||
GLenum WrappedOpenGL::glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target)
|
||||
{
|
||||
return m_Real.glCheckNamedFramebufferStatusEXT(framebuffer, target);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params)
|
||||
@@ -806,7 +781,133 @@ void WrappedOpenGL::glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, G
|
||||
m_Real.glGetNamedBufferSubDataEXT(buffer, offset, size, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)
|
||||
void WrappedOpenGL::glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetNamedFramebufferAttachmentParameterivEXT(framebuffer, attachment, pname, params);
|
||||
m_Real.glGetTextureParameterivEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetTextureParameterfvEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetTextureParameterIivEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params)
|
||||
{
|
||||
m_Real.glGetTextureParameterIuivEXT(texture, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetTextureLevelParameterivEXT(texture, target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetTextureLevelParameterfvEXT(texture, target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetPointeri_vEXT(GLenum pname, GLuint index, void **params)
|
||||
{
|
||||
m_Real.glGetPointeri_vEXT(pname, index, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data)
|
||||
{
|
||||
m_Real.glGetDoubleIndexedvEXT(target, index, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetPointerIndexedvEXT(GLenum target, GLuint index, void **data)
|
||||
{
|
||||
m_Real.glGetPointerIndexedvEXT(target, index, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetIntegerIndexedvEXT(GLenum target, GLuint index, GLint *data)
|
||||
{
|
||||
m_Real.glGetIntegerIndexedvEXT(target, index, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetBooleanIndexedvEXT(GLenum target, GLuint index, GLboolean *data)
|
||||
{
|
||||
m_Real.glGetBooleanIndexedvEXT(target, index, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data)
|
||||
{
|
||||
m_Real.glGetFloatIndexedvEXT(target, index, data);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
|
||||
{
|
||||
m_Real.glGetMultiTexImageEXT(texunit, target, level, format, type, pixels);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetMultiTexParameterfvEXT(texunit, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetMultiTexParameterivEXT(texunit, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetMultiTexParameterIivEXT(texunit, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params)
|
||||
{
|
||||
m_Real.glGetMultiTexParameterIuivEXT(texunit, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params)
|
||||
{
|
||||
m_Real.glGetMultiTexLevelParameterfvEXT(texunit, target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetMultiTexLevelParameterivEXT(texunit, target, level, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, void *img)
|
||||
{
|
||||
m_Real.glGetCompressedMultiTexImageEXT(texunit, target, lod, img);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, void **params)
|
||||
{
|
||||
m_Real.glGetNamedBufferPointervEXT(buffer, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params)
|
||||
{
|
||||
m_Real.glGetNamedProgramivEXT(program, target, pname, params);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param)
|
||||
{
|
||||
m_Real.glGetVertexArrayIntegervEXT(vaobj, pname, param);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, void **param)
|
||||
{
|
||||
m_Real.glGetVertexArrayPointervEXT(vaobj, pname, param);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint *param)
|
||||
{
|
||||
m_Real.glGetVertexArrayIntegeri_vEXT(vaobj, index, pname, param);
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, void **param)
|
||||
{
|
||||
m_Real.glGetVertexArrayPointeri_vEXT(vaobj, index, pname, param);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user