From 6566426195a3d58c36e22a8bce82620554342248 Mon Sep 17 00:00:00 2001 From: babymustgrowstrong Date: Sat, 13 May 2017 15:03:44 -0700 Subject: [PATCH] GL_EXT_draw_buffers_indexed support --- renderdoc/driver/gl/gl_driver.cpp | 1 + renderdoc/driver/gl/gl_hookset.h | 14 +++++++------- renderdoc/driver/gl/gl_hookset_defs.h | 8 ++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/renderdoc/driver/gl/gl_driver.cpp b/renderdoc/driver/gl/gl_driver.cpp index e8afc7f66..7d53cc877 100644 --- a/renderdoc/driver/gl/gl_driver.cpp +++ b/renderdoc/driver/gl/gl_driver.cpp @@ -744,6 +744,7 @@ void WrappedOpenGL::BuildGLESExtensions() m_GLESExtensions.push_back("GL_OES_texture_half_float_linear"); m_GLESExtensions.push_back("GL_EXT_copy_image"); + m_GLESExtensions.push_back("GL_EXT_draw_buffers_indexed"); m_GLESExtensions.push_back("GL_EXT_geometry_point_size"); m_GLESExtensions.push_back("GL_EXT_geometry_shader"); m_GLESExtensions.push_back("GL_EXT_sRGB"); diff --git a/renderdoc/driver/gl/gl_hookset.h b/renderdoc/driver/gl/gl_hookset.h index 8a955bf6e..5f94c2594 100644 --- a/renderdoc/driver/gl/gl_hookset.h +++ b/renderdoc/driver/gl/gl_hookset.h @@ -225,13 +225,13 @@ struct GLHookSet PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv; PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus; // aliases glCheckFramebufferStatusEXT PFNGLBLENDCOLORPROC glBlendColor; // aliases glBlendColorEXT - PFNGLBLENDFUNCIPROC glBlendFunci; // aliases glBlendFunciARB + PFNGLBLENDFUNCIPROC glBlendFunci; // aliases glBlendFunciARB, glBlendFunciEXT PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate; // aliases glBlendFuncSeparateARB - PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei; // aliases glBlendFuncSeparateiARB + PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei; // aliases glBlendFuncSeparateiARB, glBlendFuncSeparateiEXT PFNGLBLENDEQUATIONPROC glBlendEquation; // aliases glBlendEquationEXT - PFNGLBLENDEQUATIONIPROC glBlendEquationi; // aliases glBlendEquationiARB + PFNGLBLENDEQUATIONIPROC glBlendEquationi; // aliases glBlendEquationiARB, glBlendEquationiEXT PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate; // aliases glBlendEquationSeparateARB, glBlendEquationSeparateEXT - PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei; // aliases glBlendEquationSeparateiARB + PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei; // aliases glBlendEquationSeparateiARB, glBlendEquationSeparateiEXT PFNGLBLENDBARRIERKHRPROC glBlendBarrierKHR; PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate; PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate; @@ -276,9 +276,9 @@ struct GLHookSet PFNGLOBJECTLABELPROC glObjectLabel; // aliases glObjectLabelKHR PFNGLLABELOBJECTEXTPROC glLabelObjectEXT; PFNGLOBJECTPTRLABELPROC glObjectPtrLabel; // aliases glObjectPtrLabelKHR - PFNGLENABLEIPROC glEnablei; // aliases glEnableIndexedEXT - PFNGLDISABLEIPROC glDisablei; // aliases glDisableIndexedEXT - PFNGLISENABLEDIPROC glIsEnabledi; // aliases glIsEnabledIndexedEXT + PFNGLENABLEIPROC glEnablei; // aliases glEnableiEXT, glEnableIndexedEXT + PFNGLDISABLEIPROC glDisablei; // aliases glDisableiEXT, glDisableIndexedEXT + PFNGLISENABLEDIPROC glIsEnabledi; // aliases glIsEnablediEXT, glIsEnabledIndexedEXT PFNGLISBUFFERPROC glIsBuffer; // aliases glIsBufferARB PFNGLISFRAMEBUFFERPROC glIsFramebuffer; // aliases glIsFramebufferEXT PFNGLISPROGRAMPROC glIsProgram; diff --git a/renderdoc/driver/gl/gl_hookset_defs.h b/renderdoc/driver/gl/gl_hookset_defs.h index 7113f8cd4..36c0df430 100644 --- a/renderdoc/driver/gl/gl_hookset_defs.h +++ b/renderdoc/driver/gl/gl_hookset_defs.h @@ -325,14 +325,18 @@ HookExtension(PFNGLUNIFORMMATRIX3X4FVPROC, glUniformMatrix3x4fv); \ HookExtension(PFNGLUNIFORMMATRIX4X3FVPROC, glUniformMatrix4x3fv); \ HookExtension(PFNGLCOLORMASKIPROC, glColorMaski); \ + HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskiEXT); \ HookExtensionAlias(PFNGLCOLORMASKIPROC, glColorMaski, glColorMaskIndexedEXT); \ HookExtension(PFNGLGETBOOLEANI_VPROC, glGetBooleani_v); \ HookExtension(PFNGLGETINTEGERI_VPROC, glGetIntegeri_v); \ HookExtension(PFNGLENABLEIPROC, glEnablei); \ + HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableiEXT); \ HookExtensionAlias(PFNGLENABLEIPROC, glEnablei, glEnableIndexedEXT); \ HookExtension(PFNGLDISABLEIPROC, glDisablei); \ + HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableiEXT); \ HookExtensionAlias(PFNGLDISABLEIPROC, glDisablei, glDisableIndexedEXT); \ HookExtension(PFNGLISENABLEDIPROC, glIsEnabledi); \ + HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnablediEXT); \ HookExtensionAlias(PFNGLISENABLEDIPROC, glIsEnabledi, glIsEnabledIndexedEXT); \ HookExtension(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback); \ HookExtensionAlias(PFNGLBEGINTRANSFORMFEEDBACKPROC, glBeginTransformFeedback, glBeginTransformFeedbackEXT); \ @@ -552,12 +556,16 @@ HookExtensionAlias(PFNGLMINSAMPLESHADINGPROC, glMinSampleShading, glMinSampleShadingARB); \ HookExtension(PFNGLBLENDEQUATIONIPROC, glBlendEquationi); \ HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiARB); \ + HookExtensionAlias(PFNGLBLENDEQUATIONIPROC, glBlendEquationi, glBlendEquationiEXT); \ HookExtension(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei); \ HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiARB); \ + HookExtensionAlias(PFNGLBLENDEQUATIONSEPARATEIPROC, glBlendEquationSeparatei, glBlendEquationSeparateiEXT); \ HookExtension(PFNGLBLENDFUNCIPROC, glBlendFunci); \ HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciARB); \ + HookExtensionAlias(PFNGLBLENDFUNCIPROC, glBlendFunci, glBlendFunciEXT); \ HookExtension(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei); \ HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiARB); \ + HookExtensionAlias(PFNGLBLENDFUNCSEPARATEIPROC, glBlendFuncSeparatei, glBlendFuncSeparateiEXT); \ HookExtension(PFNGLDRAWARRAYSINDIRECTPROC, glDrawArraysIndirect); \ HookExtension(PFNGLDRAWELEMENTSINDIRECTPROC, glDrawElementsIndirect); \ HookExtension(PFNGLUNIFORM1DPROC, glUniform1d); \