mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-08-01 04:10:58 +00:00
Add support for GL_{OES|NV}_viewport_array extensions
This commit is contained in:
@@ -788,6 +788,7 @@ void WrappedOpenGL::BuildGLESExtensions()
|
||||
m_GLESExtensions.push_back("GL_KHR_texture_compression_astc_hdr");
|
||||
m_GLESExtensions.push_back("GL_KHR_texture_compression_astc_ldr");
|
||||
m_GLESExtensions.push_back("GL_KHR_texture_compression_astc_sliced_3d");
|
||||
m_GLESExtensions.push_back("GL_NV_viewport_array");
|
||||
m_GLESExtensions.push_back("GL_OES_compressed_ETC1_RGB8_texture");
|
||||
m_GLESExtensions.push_back("GL_OES_copy_image");
|
||||
m_GLESExtensions.push_back("GL_OES_depth24");
|
||||
@@ -818,6 +819,7 @@ void WrappedOpenGL::BuildGLESExtensions()
|
||||
m_GLESExtensions.push_back("GL_OES_texture_storage_multisample_2d_array");
|
||||
m_GLESExtensions.push_back("GL_OES_vertex_array_object");
|
||||
m_GLESExtensions.push_back("GL_OES_vertex_half_float");
|
||||
m_GLESExtensions.push_back("GL_OES_viewport_array");
|
||||
m_GLESExtensions.push_back("GL_OVR_multiview");
|
||||
m_GLESExtensions.push_back("GL_OVR_multiview2");
|
||||
m_GLESExtensions.push_back("GL_OVR_multiview_multisampled_render_to_texture");
|
||||
|
||||
@@ -651,8 +651,12 @@ public:
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDepthRangef(GLfloat nearVal, GLfloat farVal));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDepthRangeIndexed(GLuint index, GLdouble nearVal,
|
||||
GLdouble farVal));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDepthRangeIndexedfOES(GLuint index, GLfloat nearVal,
|
||||
GLfloat farVal));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void,
|
||||
glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDepthRangeArrayfvOES(GLuint first, GLsizei count,
|
||||
const GLfloat *v));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glDepthBoundsEXT(GLclampd nearVal, GLclampd farVal));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glClipControl(GLenum origin, GLenum depth));
|
||||
IMPLEMENT_FUNCTION_SERIALISED(void, glProvokingVertex(GLenum mode));
|
||||
|
||||
@@ -141,7 +141,7 @@ struct GLHookSet
|
||||
PFNGLGETSTRINGIPROC glGetStringi;
|
||||
PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
|
||||
PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
|
||||
PFNGLGETFLOATI_VPROC glGetFloati_v; // aliases glGetFloati_vEXT
|
||||
PFNGLGETFLOATI_VPROC glGetFloati_v; // aliases glGetFloati_vEXT, glGetFloati_vOES, glGetFloati_vNV
|
||||
PFNGLGETDOUBLEI_VPROC glGetDoublei_v; // aliases glGetDoublei_vEXT
|
||||
PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
|
||||
PFNGLGETINTEGER64VPROC glGetInteger64v;
|
||||
@@ -276,9 +276,9 @@ struct GLHookSet
|
||||
PFNGLOBJECTLABELPROC glObjectLabel; // aliases glObjectLabelKHR
|
||||
PFNGLLABELOBJECTEXTPROC glLabelObjectEXT;
|
||||
PFNGLOBJECTPTRLABELPROC glObjectPtrLabel; // aliases glObjectPtrLabelKHR
|
||||
PFNGLENABLEIPROC glEnablei; // aliases glEnableiEXT, glEnableIndexedEXT
|
||||
PFNGLDISABLEIPROC glDisablei; // aliases glDisableiEXT, glDisableIndexedEXT
|
||||
PFNGLISENABLEDIPROC glIsEnabledi; // aliases glIsEnablediEXT, glIsEnabledIndexedEXT
|
||||
PFNGLENABLEIPROC glEnablei; // aliases glEnableiEXT, glEnableIndexedEXT, glEnableiOES, glEnableiNV
|
||||
PFNGLDISABLEIPROC glDisablei; // aliases glDisableiEXT, glDisableIndexedEXT, glDisableiOES, glDisableiNV
|
||||
PFNGLISENABLEDIPROC glIsEnabledi; // aliases glIsEnablediEXT, glIsEnabledIndexedEXT, glIsEnablediOES, glIsEnablediNV
|
||||
PFNGLISBUFFERPROC glIsBuffer; // aliases glIsBufferARB
|
||||
PFNGLISFRAMEBUFFERPROC glIsFramebuffer; // aliases glIsFramebufferEXT
|
||||
PFNGLISPROGRAMPROC glIsProgram;
|
||||
@@ -476,12 +476,12 @@ struct GLHookSet
|
||||
PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
|
||||
PFNGLINVALIDATETEXIMAGEPROC glInvalidateTexImage;
|
||||
PFNGLINVALIDATETEXSUBIMAGEPROC glInvalidateTexSubImage;
|
||||
PFNGLSCISSORARRAYVPROC glScissorArrayv;
|
||||
PFNGLSCISSORINDEXEDPROC glScissorIndexed;
|
||||
PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
|
||||
PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
|
||||
PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
|
||||
PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
|
||||
PFNGLSCISSORARRAYVPROC glScissorArrayv; // aliases glScissorArrayvOES, glScissorArrayvNV
|
||||
PFNGLSCISSORINDEXEDPROC glScissorIndexed; // aliases glScissorIndexedOES, glScissorIndexedNV
|
||||
PFNGLSCISSORINDEXEDVPROC glScissorIndexedv; // aliases glScissorIndexedvOES, glScissorIndexedvNV
|
||||
PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf; // aliases glViewportIndexedfOES, glViewportIndexedfNV
|
||||
PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv; // aliases glViewportIndexedfvOES, glViewportIndexedfvNV
|
||||
PFNGLVIEWPORTARRAYVPROC glViewportArrayv; // aliases glViewportArrayvOES, glViewportArrayvNV
|
||||
PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
|
||||
PFNGLSHADERSTORAGEBLOCKBINDINGPROC glShaderStorageBlockBinding;
|
||||
PFNGLUNIFORMSUBROUTINESUIVPROC glUniformSubroutinesuiv;
|
||||
@@ -613,6 +613,11 @@ struct GLHookSet
|
||||
// GLES: EXT_discard_framebuffer
|
||||
PFNGLDISCARDFRAMEBUFFEREXTPROC glDiscardFramebufferEXT;
|
||||
|
||||
// GLES: OES_viewport_array, NV_viewport_array
|
||||
// only 2 functions which have different parameter types, so they can't be aliases of the ARB functions
|
||||
PFNGLDEPTHRANGEARRAYFVOESPROC glDepthRangeArrayfvOES; // aliases glDepthRangeArrayfvNV
|
||||
PFNGLDEPTHRANGEINDEXEDFOESPROC glDepthRangeIndexedfOES; // aliases glDepthRangeIndexedfNV
|
||||
|
||||
// ARB_shading_language_include
|
||||
PFNGLNAMEDSTRINGARBPROC glNamedStringARB;
|
||||
PFNGLDELETENAMEDSTRINGARBPROC glDeleteNamedStringARB;
|
||||
|
||||
@@ -346,12 +346,18 @@
|
||||
HookExtension(PFNGLENABLEIPROC, glEnablei); \
|
||||
HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableiEXT); \
|
||||
HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \
|
||||
HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableiOES); \
|
||||
HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableiNV); \
|
||||
HookExtension(PFNGLDISABLEIPROC, glDisablei); \
|
||||
HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableiEXT); \
|
||||
HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \
|
||||
HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableiOES); \
|
||||
HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableiNV); \
|
||||
HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \
|
||||
HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnablediEXT); \
|
||||
HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \
|
||||
HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnablediOES); \
|
||||
HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnablediNV); \
|
||||
HookExtension(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback); \
|
||||
HookExtensionAlias(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback, glBeginTransformFeedbackEXT); \
|
||||
HookExtension(PFNGLENDTRANSFORMFEEDBACKPROC, glEndTransformFeedback); \
|
||||
@@ -793,15 +799,29 @@
|
||||
HookExtension(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv); \
|
||||
HookExtensionAlias(PFNGLGETVERTEXATTRIBLDVPROC, glGetVertexAttribLdv, glGetVertexAttribLdvEXT); \
|
||||
HookExtension(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv, glViewportArrayvOES); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTARRAYVPROC, glViewportArrayv, glViewportArrayvNV); \
|
||||
HookExtension(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf, glViewportIndexedfOES); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTINDEXEDFPROC, glViewportIndexedf, glViewportIndexedfNV); \
|
||||
HookExtension(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv, glViewportIndexedfvOES); \
|
||||
HookExtensionAlias(PFNGLVIEWPORTINDEXEDFVPROC, glViewportIndexedfv, glViewportIndexedfvNV); \
|
||||
HookExtension(PFNGLSCISSORARRAYVPROC, glScissorArrayv); \
|
||||
HookExtensionAlias(PFNGLSCISSORARRAYVPROC, glScissorArrayv, glScissorArrayvOES); \
|
||||
HookExtensionAlias(PFNGLSCISSORARRAYVPROC, glScissorArrayv, glScissorArrayvNV); \
|
||||
HookExtension(PFNGLSCISSORINDEXEDPROC, glScissorIndexed); \
|
||||
HookExtensionAlias(PFNGLSCISSORINDEXEDPROC, glScissorIndexed, glScissorIndexedOES); \
|
||||
HookExtensionAlias(PFNGLSCISSORINDEXEDPROC, glScissorIndexed, glScissorIndexedNV); \
|
||||
HookExtension(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv); \
|
||||
HookExtensionAlias(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv, glScissorIndexedvOES); \
|
||||
HookExtensionAlias(PFNGLSCISSORINDEXEDVPROC, glScissorIndexedv, glScissorIndexedvNV); \
|
||||
HookExtension(PFNGLDEPTHRANGEARRAYVPROC, glDepthRangeArrayv); \
|
||||
HookExtension(PFNGLDEPTHRANGEINDEXEDPROC, glDepthRangeIndexed); \
|
||||
HookExtension(PFNGLGETFLOATI_VPROC, glGetFloati_v); \
|
||||
HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vEXT); \
|
||||
HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vOES); \
|
||||
HookExtensionAlias(PFNGLGETFLOATI_VPROC, glGetFloati_v, glGetFloati_vNV); \
|
||||
HookExtension(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v); \
|
||||
HookExtensionAlias(PFNGLGETDOUBLEI_VPROC, glGetDoublei_v, glGetDoublei_vEXT); \
|
||||
HookExtension(PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC, glDrawArraysInstancedBaseInstance); \
|
||||
@@ -1161,6 +1181,10 @@
|
||||
HookExtension(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox); \
|
||||
HookExtensionAlias(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox, glPrimitiveBoundingBoxEXT); \
|
||||
HookExtensionAlias(PFNGLPRIMITIVEBOUNDINGBOXPROC, glPrimitiveBoundingBox, glPrimitiveBoundingBoxOES); \
|
||||
HookExtension(PFNGLDEPTHRANGEARRAYFVOESPROC, glDepthRangeArrayfvOES); \
|
||||
HookExtensionAlias(PFNGLDEPTHRANGEARRAYFVOESPROC, glDepthRangeArrayfvOES, glDepthRangeArrayfvNV); \
|
||||
HookExtension(PFNGLDEPTHRANGEINDEXEDFOESPROC, glDepthRangeIndexedfOES); \
|
||||
HookExtensionAlias(PFNGLDEPTHRANGEINDEXEDFOESPROC, glDepthRangeIndexedfOES, glDepthRangeIndexedfNV); \
|
||||
HookExtension(PFNGLDISCARDFRAMEBUFFEREXTPROC, glDiscardFramebufferEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC, glFramebufferTexture2DMultisampleEXT); \
|
||||
HookExtension(PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC, glFramebufferTextureMultisampleMultiviewOVR); \
|
||||
@@ -2019,6 +2043,8 @@
|
||||
HookWrapper6(void, glFramebufferTextureMultiviewOVR, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLint, baseViewIndex, GLsizei, numViews); \
|
||||
HookWrapper0(void, glBlendBarrier); \
|
||||
HookWrapper8(void, glPrimitiveBoundingBox, GLfloat, minX, GLfloat, minY, GLfloat, minZ, GLfloat, minW, GLfloat, maxX, GLfloat, maxY, GLfloat, maxZ, GLfloat, maxW); \
|
||||
HookWrapper3(void, glDepthRangeArrayfvOES, GLuint, first, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper3(void, glDepthRangeIndexedfOES, GLuint, index, GLfloat, n, GLfloat, f); \
|
||||
HookWrapper3(void, glDiscardFramebufferEXT, GLenum, target, GLsizei, numAttachments, const GLenum *, attachments); \
|
||||
HookWrapper6(void, glFramebufferTexture2DMultisampleEXT, GLenum, target, GLenum, attachment, GLenum, textarget, GLuint, texture, GLint, level, GLsizei, samples); \
|
||||
HookWrapper7(void, glFramebufferTextureMultisampleMultiviewOVR, GLenum, target, GLenum, attachment, GLuint, texture, GLint, level, GLsizei, samples, GLint, baseViewIndex, GLsizei, numViews); \
|
||||
@@ -3576,27 +3602,15 @@
|
||||
HookWrapper4(void, glgetnuniformuivkhr, GLuint, program, GLint, location, GLsizei, bufSize, GLuint *, params); \
|
||||
HookWrapper2(void, gleglimagetargettexture2does, GLenum, target, GLeglImageOES, image); \
|
||||
HookWrapper2(void, gleglimagetargetrenderbufferstorageoes, GLenum, target, GLeglImageOES, image); \
|
||||
HookWrapper2(void, glenableioes, GLenum, target, GLuint, index); \
|
||||
HookWrapper2(void, gldisableioes, GLenum, target, GLuint, index); \
|
||||
HookWrapper2(void, glblendequationioes, GLuint, buf, GLenum, mode); \
|
||||
HookWrapper3(void, glblendequationseparateioes, GLuint, buf, GLenum, modeRGB, GLenum, modeAlpha); \
|
||||
HookWrapper3(void, glblendfuncioes, GLuint, buf, GLenum, src, GLenum, dst); \
|
||||
HookWrapper5(void, glblendfuncseparateioes, GLuint, buf, GLenum, srcRGB, GLenum, dstRGB, GLenum, srcAlpha, GLenum, dstAlpha); \
|
||||
HookWrapper5(void, glcolormaskioes, GLuint, index, GLboolean, r, GLboolean, g, GLboolean, b, GLboolean, a); \
|
||||
HookWrapper2(GLboolean, glisenabledioes, GLenum, target, GLuint, index); \
|
||||
HookWrapper6(void, gldrawelementsinstancedbasevertexoes, GLenum, mode, GLsizei, count, GLenum, type, const void *, indices, GLsizei, instancecount, GLint, basevertex); \
|
||||
HookWrapper5(void, glgetprogrambinaryoes, GLuint, program, GLsizei, bufSize, GLsizei *, length, GLenum *, binaryFormat, void *, binary); \
|
||||
HookWrapper4(void, glprogrambinaryoes, GLuint, program, GLenum, binaryFormat, const void *, binary, GLint, length); \
|
||||
HookWrapper8(void, gltextureviewoes, GLuint, texture, GLenum, target, GLuint, origtexture, GLenum, internalformat, GLuint, minlevel, GLuint, numlevels, GLuint, minlayer, GLuint, numlayers); \
|
||||
HookWrapper3(void, glviewportarrayvoes, GLuint, first, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper5(void, glviewportindexedfoes, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
|
||||
HookWrapper2(void, glviewportindexedfvoes, GLuint, index, const GLfloat *, v); \
|
||||
HookWrapper3(void, glscissorarrayvoes, GLuint, first, GLsizei, count, const GLint *, v); \
|
||||
HookWrapper5(void, glscissorindexedoes, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper2(void, glscissorindexedvoes, GLuint, index, const GLint *, v); \
|
||||
HookWrapper3(void, gldepthrangearrayfvoes, GLuint, first, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper3(void, gldepthrangeindexedfoes, GLuint, index, GLfloat, n, GLfloat, f); \
|
||||
HookWrapper3(void, glgetfloati_voes, GLenum, target, GLuint, index, GLfloat *, data); \
|
||||
HookWrapper10(void, glblitframebufferangle, GLint, srcX0, GLint, srcY0, GLint, srcX1, GLint, srcY1, GLint, dstX0, GLint, dstY0, GLint, dstX1, GLint, dstY1, GLbitfield, mask, GLenum, filter); \
|
||||
HookWrapper5(void, glrenderbufferstoragemultisampleangle, GLenum, target, GLsizei, samples, GLenum, internalformat, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper4(void, gldrawarraysinstancedangle, GLenum, mode, GLint, first, GLsizei, count, GLsizei, primcount); \
|
||||
@@ -3685,18 +3699,6 @@
|
||||
HookWrapper4(void, gluniformmatrix4x3fvnv, GLint, location, GLsizei, count, GLboolean, transpose, const GLfloat *, value); \
|
||||
HookWrapper2(void, glpolygonmodenv, GLenum, face, GLenum, mode); \
|
||||
HookWrapper1(void, glreadbuffernv, GLenum, mode); \
|
||||
HookWrapper3(void, glviewportarrayvnv, GLuint, first, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper5(void, glviewportindexedfnv, GLuint, index, GLfloat, x, GLfloat, y, GLfloat, w, GLfloat, h); \
|
||||
HookWrapper2(void, glviewportindexedfvnv, GLuint, index, const GLfloat *, v); \
|
||||
HookWrapper3(void, glscissorarrayvnv, GLuint, first, GLsizei, count, const GLint *, v); \
|
||||
HookWrapper5(void, glscissorindexednv, GLuint, index, GLint, left, GLint, bottom, GLsizei, width, GLsizei, height); \
|
||||
HookWrapper2(void, glscissorindexedvnv, GLuint, index, const GLint *, v); \
|
||||
HookWrapper3(void, gldepthrangearrayfvnv, GLuint, first, GLsizei, count, const GLfloat *, v); \
|
||||
HookWrapper3(void, gldepthrangeindexedfnv, GLuint, index, GLfloat, n, GLfloat, f); \
|
||||
HookWrapper3(void, glgetfloati_vnv, GLenum, target, GLuint, index, GLfloat *, data); \
|
||||
HookWrapper2(void, glenableinv, GLenum, target, GLuint, index); \
|
||||
HookWrapper2(void, gldisableinv, GLenum, target, GLuint, index); \
|
||||
HookWrapper2(GLboolean, glisenabledinv, GLenum, target, GLuint, index); \
|
||||
HookWrapper5(void, glviewportswizzlenv, GLuint, index, GLenum, swizzlex, GLenum, swizzley, GLenum, swizzlez, GLenum, swizzlew); \
|
||||
HookWrapper2(void, glalphafuncqcom, GLenum, func, GLclampf, ref); \
|
||||
HookWrapper3(void, glgetdrivercontrolsqcom, GLint *, num, GLsizei, size, GLuint *, driverControls); \
|
||||
@@ -5539,27 +5541,15 @@
|
||||
HandleUnsupported(PFNGLGETNUNIFORMUIVKHRPROC, glgetnuniformuivkhr); \
|
||||
HandleUnsupported(PFNGLEGLIMAGETARGETTEXTURE2DOESPROC, gleglimagetargettexture2does); \
|
||||
HandleUnsupported(PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC, gleglimagetargetrenderbufferstorageoes); \
|
||||
HandleUnsupported(PFNGLENABLEIOESPROC, glenableioes); \
|
||||
HandleUnsupported(PFNGLDISABLEIOESPROC, gldisableioes); \
|
||||
HandleUnsupported(PFNGLBLENDEQUATIONIOESPROC, glblendequationioes); \
|
||||
HandleUnsupported(PFNGLBLENDEQUATIONSEPARATEIOESPROC, glblendequationseparateioes); \
|
||||
HandleUnsupported(PFNGLBLENDFUNCIOESPROC, glblendfuncioes); \
|
||||
HandleUnsupported(PFNGLBLENDFUNCSEPARATEIOESPROC, glblendfuncseparateioes); \
|
||||
HandleUnsupported(PFNGLCOLORMASKIOESPROC, glcolormaskioes); \
|
||||
HandleUnsupported(PFNGLISENABLEDIOESPROC, glisenabledioes); \
|
||||
HandleUnsupported(PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC, gldrawelementsinstancedbasevertexoes); \
|
||||
HandleUnsupported(PFNGLGETPROGRAMBINARYOESPROC, glgetprogrambinaryoes); \
|
||||
HandleUnsupported(PFNGLPROGRAMBINARYOESPROC, glprogrambinaryoes); \
|
||||
HandleUnsupported(PFNGLTEXTUREVIEWOESPROC, gltextureviewoes); \
|
||||
HandleUnsupported(PFNGLVIEWPORTARRAYVOESPROC, glviewportarrayvoes); \
|
||||
HandleUnsupported(PFNGLVIEWPORTINDEXEDFOESPROC, glviewportindexedfoes); \
|
||||
HandleUnsupported(PFNGLVIEWPORTINDEXEDFVOESPROC, glviewportindexedfvoes); \
|
||||
HandleUnsupported(PFNGLSCISSORARRAYVOESPROC, glscissorarrayvoes); \
|
||||
HandleUnsupported(PFNGLSCISSORINDEXEDOESPROC, glscissorindexedoes); \
|
||||
HandleUnsupported(PFNGLSCISSORINDEXEDVOESPROC, glscissorindexedvoes); \
|
||||
HandleUnsupported(PFNGLDEPTHRANGEARRAYFVOESPROC, gldepthrangearrayfvoes); \
|
||||
HandleUnsupported(PFNGLDEPTHRANGEINDEXEDFOESPROC, gldepthrangeindexedfoes); \
|
||||
HandleUnsupported(PFNGLGETFLOATI_VOESPROC, glgetfloati_voes); \
|
||||
HandleUnsupported(PFNGLBLITFRAMEBUFFERANGLEPROC, glblitframebufferangle); \
|
||||
HandleUnsupported(PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC, glrenderbufferstoragemultisampleangle); \
|
||||
HandleUnsupported(PFNGLDRAWARRAYSINSTANCEDANGLEPROC, gldrawarraysinstancedangle); \
|
||||
@@ -5648,18 +5638,6 @@
|
||||
HandleUnsupported(PFNGLUNIFORMMATRIX4X3FVNVPROC, gluniformmatrix4x3fvnv); \
|
||||
HandleUnsupported(PFNGLPOLYGONMODENVPROC, glpolygonmodenv); \
|
||||
HandleUnsupported(PFNGLREADBUFFERNVPROC, glreadbuffernv); \
|
||||
HandleUnsupported(PFNGLVIEWPORTARRAYVNVPROC, glviewportarrayvnv); \
|
||||
HandleUnsupported(PFNGLVIEWPORTINDEXEDFNVPROC, glviewportindexedfnv); \
|
||||
HandleUnsupported(PFNGLVIEWPORTINDEXEDFVNVPROC, glviewportindexedfvnv); \
|
||||
HandleUnsupported(PFNGLSCISSORARRAYVNVPROC, glscissorarrayvnv); \
|
||||
HandleUnsupported(PFNGLSCISSORINDEXEDNVPROC, glscissorindexednv); \
|
||||
HandleUnsupported(PFNGLSCISSORINDEXEDVNVPROC, glscissorindexedvnv); \
|
||||
HandleUnsupported(PFNGLDEPTHRANGEARRAYFVNVPROC, gldepthrangearrayfvnv); \
|
||||
HandleUnsupported(PFNGLDEPTHRANGEINDEXEDFNVPROC, gldepthrangeindexedfnv); \
|
||||
HandleUnsupported(PFNGLGETFLOATI_VNVPROC, glgetfloati_vnv); \
|
||||
HandleUnsupported(PFNGLENABLEINVPROC, glenableinv); \
|
||||
HandleUnsupported(PFNGLDISABLEINVPROC, gldisableinv); \
|
||||
HandleUnsupported(PFNGLISENABLEDINVPROC, glisenabledinv); \
|
||||
HandleUnsupported(PFNGLVIEWPORTSWIZZLENVPROC, glviewportswizzlenv); \
|
||||
HandleUnsupported(PFNGLALPHAFUNCQCOMPROC, glalphafuncqcom); \
|
||||
HandleUnsupported(PFNGLGETDRIVERCONTROLSQCOMPROC, glgetdrivercontrolsqcom); \
|
||||
|
||||
@@ -993,7 +993,18 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
}
|
||||
|
||||
for(GLuint i = 0; i < RDCMIN(maxViews, (GLuint)ARRAY_COUNT(DepthRanges)); i++)
|
||||
m_Real->glGetDoublei_v(eGL_DEPTH_RANGE, i, &DepthRanges[i].nearZ);
|
||||
{
|
||||
if(IsGLES)
|
||||
{
|
||||
float v[2];
|
||||
m_Real->glGetFloati_v(eGL_DEPTH_RANGE, i, v);
|
||||
DepthRanges[i] = {(double)v[0], (double)v[1]};
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real->glGetDoublei_v(eGL_DEPTH_RANGE, i, &DepthRanges[i].nearZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1004,8 +1015,16 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
m_Real->glGetFloatv(eGL_VIEWPORT, &Viewports[0].x);
|
||||
m_Real->glGetIntegerv(eGL_SCISSOR_BOX, &Scissors[0].x);
|
||||
Scissors[0].enabled = (m_Real->glIsEnabled(eGL_SCISSOR_TEST) == GL_TRUE);
|
||||
if(!IsGLES)
|
||||
if(IsGLES)
|
||||
{
|
||||
float v[2];
|
||||
m_Real->glGetFloatv(eGL_DEPTH_RANGE, v);
|
||||
DepthRanges[0] = {(double)v[0], (double)v[1]};
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real->glGetDoublev(eGL_DEPTH_RANGE, &DepthRanges[0].nearZ);
|
||||
}
|
||||
|
||||
for(GLuint i = 1; i < (GLuint)ARRAY_COUNT(Viewports); i++)
|
||||
memcpy(&Viewports[i], &Viewports[0], sizeof(Viewports[i]));
|
||||
@@ -1013,11 +1032,8 @@ void GLRenderState::FetchState(void *ctx, WrappedOpenGL *gl)
|
||||
for(GLuint i = 1; i < (GLuint)ARRAY_COUNT(Scissors); i++)
|
||||
memcpy(&Scissors[i], &Scissors[0], sizeof(Scissors[i]));
|
||||
|
||||
if(!IsGLES)
|
||||
{
|
||||
for(GLuint i = 1; i < (GLuint)ARRAY_COUNT(DepthRanges); i++)
|
||||
memcpy(&DepthRanges[i], &DepthRanges[0], sizeof(DepthRanges[i]));
|
||||
}
|
||||
for(GLuint i = 1; i < (GLuint)ARRAY_COUNT(DepthRanges); i++)
|
||||
memcpy(&DepthRanges[i], &DepthRanges[0], sizeof(DepthRanges[i]));
|
||||
}
|
||||
|
||||
m_Real->glGetIntegerv(eGL_DRAW_FRAMEBUFFER_BINDING, (GLint *)&DrawFBO);
|
||||
@@ -1388,8 +1404,15 @@ void GLRenderState::ApplyState(void *ctx, WrappedOpenGL *gl)
|
||||
|
||||
for(GLuint i = 0; i < RDCMIN(maxViews, (GLuint)ARRAY_COUNT(DepthRanges)); i++)
|
||||
{
|
||||
double v[2] = {DepthRanges[i].nearZ, DepthRanges[i].farZ};
|
||||
m_Real->glDepthRangeArrayv(i, 1, v);
|
||||
if(IsGLES)
|
||||
{
|
||||
float v[2] = {(float)DepthRanges[i].nearZ, (float)DepthRanges[i].farZ};
|
||||
m_Real->glDepthRangeArrayfvOES(i, 1, v);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real->glDepthRangeArrayv(i, 1, &DepthRanges[i].nearZ);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -1404,7 +1427,9 @@ void GLRenderState::ApplyState(void *ctx, WrappedOpenGL *gl)
|
||||
else
|
||||
m_Real->glDisable(eGL_SCISSOR_TEST);
|
||||
|
||||
if(!IsGLES)
|
||||
if(IsGLES)
|
||||
m_Real->glDepthRangef((float)DepthRanges[0].nearZ, (float)DepthRanges[0].farZ);
|
||||
else
|
||||
m_Real->glDepthRange(DepthRanges[0].nearZ, DepthRanges[0].farZ);
|
||||
}
|
||||
|
||||
|
||||
@@ -702,7 +702,12 @@ bool WrappedOpenGL::Serialise_glDepthRangeIndexed(GLuint index, GLdouble nearVal
|
||||
SERIALISE_ELEMENT(GLdouble, f, farVal);
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
m_Real.glDepthRangeIndexed(i, n, f);
|
||||
{
|
||||
if(IsGLES)
|
||||
m_Real.glDepthRangeIndexedfOES(i, (GLfloat)n, (GLfloat)f);
|
||||
else
|
||||
m_Real.glDepthRangeIndexed(i, n, f);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -720,6 +725,19 @@ void WrappedOpenGL::glDepthRangeIndexed(GLuint index, GLdouble nearVal, GLdouble
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDepthRangeIndexedfOES(GLuint index, GLfloat nearVal, GLfloat farVal)
|
||||
{
|
||||
m_Real.glDepthRangeIndexedfOES(index, nearVal, farVal);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
SCOPED_SERIALISE_CONTEXT(DEPTH_RANGE_IDX);
|
||||
Serialise_glDepthRangeIndexed(index, (GLdouble)nearVal, (GLdouble)farVal);
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v)
|
||||
{
|
||||
SERIALISE_ELEMENT(uint32_t, idx, first);
|
||||
@@ -728,7 +746,20 @@ bool WrappedOpenGL::Serialise_glDepthRangeArrayv(GLuint first, GLsizei count, co
|
||||
|
||||
if(m_State <= EXECUTING)
|
||||
{
|
||||
m_Real.glDepthRangeArrayv(idx, cnt, ranges);
|
||||
if(IsGLES)
|
||||
{
|
||||
GLfloat *fv = new GLfloat[cnt * 2];
|
||||
for(uint32_t i = 0; i < cnt * 2; ++i)
|
||||
fv[i] = (GLfloat)ranges[i];
|
||||
|
||||
m_Real.glDepthRangeArrayfvOES(idx, cnt, fv);
|
||||
|
||||
delete[] fv;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Real.glDepthRangeArrayv(idx, cnt, ranges);
|
||||
}
|
||||
}
|
||||
|
||||
delete[] ranges;
|
||||
@@ -749,6 +780,25 @@ void WrappedOpenGL::glDepthRangeArrayv(GLuint first, GLsizei count, const GLdoub
|
||||
}
|
||||
}
|
||||
|
||||
void WrappedOpenGL::glDepthRangeArrayfvOES(GLuint first, GLsizei count, const GLfloat *v)
|
||||
{
|
||||
m_Real.glDepthRangeArrayfvOES(first, count, v);
|
||||
|
||||
if(m_State == WRITING_CAPFRAME)
|
||||
{
|
||||
GLdouble *dv = new GLdouble[count * 2];
|
||||
for(GLsizei i = 0; i < count * 2; ++i)
|
||||
dv[i] = v[i];
|
||||
|
||||
SCOPED_SERIALISE_CONTEXT(DEPTH_RANGEARRAY);
|
||||
Serialise_glDepthRangeArrayv(first, count, dv);
|
||||
|
||||
delete[] dv;
|
||||
|
||||
m_ContextRecord->AddChunk(scope.Get());
|
||||
}
|
||||
}
|
||||
|
||||
bool WrappedOpenGL::Serialise_glDepthBoundsEXT(GLclampd nearVal, GLclampd farVal)
|
||||
{
|
||||
SERIALISE_ELEMENT(GLdouble, n, nearVal);
|
||||
|
||||
Reference in New Issue
Block a user