[Bf-blender-cvs] [361ab2f] soc-2014-viewport_fx: OpenGL Extension Shims

Jason Wilkins noreply at git.blender.org
Fri Jul 4 22:15:45 CEST 2014


Commit: 361ab2ff2e9f8fc15449f52790ea2a2025972cd5
Author: Jason Wilkins
Date:   Fri Jul 4 11:57:20 2014 -0500
https://developer.blender.org/rB361ab2ff2e9f8fc15449f52790ea2a2025972cd5

OpenGL Extension Shims

A few things are going on with these "shims":
* OpenGL 2.0 and GLEW_ARB_shader_objects are subtly different.
* Some extensions come in ARB and OES flavors.
* GenerateMipmaps needs a workaround on ATI.
* gpu_buffer_start_update and gpu_buffer_finish_update make usage of buffer objects a bit more abstract

Any use of a shimmed function directly without the shim is caught by GPU_deprecated.h

There are also some other changes that are not related to shims that came along for the ride.

===================================================================

M	intern/ghost/intern/GHOST_ContextCGL.mm
M	source/blender/gpu/GPU_deprecated.h
M	source/blender/gpu/GPU_extensions.h
M	source/blender/gpu/intern/gpu_buffers.c
M	source/blender/gpu/intern/gpu_codegen.c
M	source/blender/gpu/intern/gpu_common.c
M	source/blender/gpu/intern/gpu_common_intern.h
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/gpu/intern/gpu_extensions.c
M	source/blender/gpu/intern/gpu_immediate_gl.c
M	source/blender/gpu/intern/gpu_init_exit.c

===================================================================

diff --git a/intern/ghost/intern/GHOST_ContextCGL.mm b/intern/ghost/intern/GHOST_ContextCGL.mm
index 12837a6..ad5424b 100644
--- a/intern/ghost/intern/GHOST_ContextCGL.mm
+++ b/intern/ghost/intern/GHOST_ContextCGL.mm
@@ -154,11 +154,6 @@ GHOST_TSuccess GHOST_ContextCGL::activateDrawingContext()
 
 		activateGLEW();
 
-		// Disable AA by default
-		// XXX jwilkins: shouldn't this be somewhere else?
-		if (m_numOfAASamples > 0)
-			glDisable(GL_MULTISAMPLE_ARB);
-
 		[pool drain];
 		return GHOST_kSuccess;
 	}
diff --git a/source/blender/gpu/GPU_deprecated.h b/source/blender/gpu/GPU_deprecated.h
index 50ac28c..9438b4f 100644
--- a/source/blender/gpu/GPU_deprecated.h
+++ b/source/blender/gpu/GPU_deprecated.h
@@ -32,6 +32,231 @@
  *  \ingroup gpu
  */
 
+#undef glAttachShader
+#define glAttachShader USE_SHIM_gpu_glAttachShader
+#undef glCompileShader
+#define glCompileShader USE_SHIM_gpu_glCompileShader
+#undef glCreateProgram
+#define glCreateProgram USE_SHIM_gpu_glCreateProgram
+#undef glCreateShader
+#define glCreateShader USE_SHIM_gpu_glCreateShader
+#undef glDeleteShader
+#define glDeleteShader USE_SHIM_gpu_glDeleteShader
+#undef glGetProgramInfoLog
+#define glGetProgramInfoLog USE_SHIM_gpu_glGetProgramInfoLog
+#undef glGetShaderiv
+#define glGetShaderiv USE_SHIM_gpu_glGetShaderiv
+#undef glGetShaderInfoLog
+#define glGetShaderInfoLog USE_SHIM_gpu_glGetShaderInfoLog
+#undef glGetUniformLocation
+#define glGetUniformLocation USE_SHIM_gpu_glGetUniformLocation
+#undef glLinkProgram
+#define glLinkProgram USE_SHIM_gpu_glLinkProgram
+#undef glShaderSource
+#define glShaderSource USE_SHIM_gpu_glShaderSource
+#undef glUniform1i
+#define glUniform1i USE_SHIM_gpu_glUniform1i
+#undef glUniform1f
+#define glUniform1f USE_SHIM_gpu_glUniform1f
+#undef glUniform1iv
+#define glUniform1iv USE_SHIM_gpu_glUniform1iv
+#undef glUniform2iv
+#define glUniform2iv USE_SHIM_gpu_glUniform2iv
+#undef glUniform3iv
+#define glUniform3iv USE_SHIM_gpu_glUniform3iv
+#undef glUniform4iv
+#define glUniform4iv USE_SHIM_gpu_glUniform4iv
+#undef glUniform1fv
+#define glUniform1fv USE_SHIM_gpu_glUniform1fv
+#undef glUniform2fv
+#define glUniform2fv USE_SHIM_gpu_glUniform2fv
+#undef glUniform3fv
+#define glUniform3fv USE_SHIM_gpu_glUniform3fv
+#undef glUniform4fv
+#define glUniform4fv USE_SHIM_gpu_glUniform4fv
+#undef glUniformMatrix3fv
+#define glUniformMatrix3fv USE_SHIM_gpu_glUniformMatrix3fv
+#undef glUniformMatrix4fv
+#define glUniformMatrix4fv USE_SHIM_gpu_glUniformMatrix4fv
+#undef glUseProgram
+#define glUseProgram USE_SHIM_gpu_glUseProgram
+#undef glValidateProgram
+#define glValidateProgram USE_SHIM_gpu_glValidateProgram
+
+#undef glAttachObjectARB
+#define glAttachObjectARB USE_SHIM_gpu_glAttachObject
+#undef glCompileShader
+#define glCompileShader USE_SHIM_gpu_glCompileShader
+#undef glCreateProgramObjectARB
+#define glCreateProgramObjectARB USE_SHIM_gpu_glCreateProgram
+#undef glCreateShaderObjectARB
+#define glCreateShaderObjectARB USE_SHIM_gpu_glCreateShader
+#undef glDeleteObjectARB
+#define glDeleteObjectARB USE_SHIM_gpu_glDeleteShader_or_gpu_glDeleteProgram
+#undef glGetInfoLogARB
+#define glGetInfoLogARB USE_SHIM_gpu_glGetProgramInfoLog_or_gpu_glGetShaderInfoLog
+#undef glGetObjectParameterivARB
+#define glGetObjectParameterivARB USE_SHIM_gpu_glGetShaderiv
+#undef glGetUniformLocationARB
+#define glGetUniformLocationARB USE_SHIM_gpu_glGetUniformLocation
+#undef glLinkProgramARB
+#define glLinkProgramARB USE_SHIM_gpu_glLinkProgram
+#undef glShaderSourceARB
+#define glShaderSourceARB USE_SHIM_gpu_glShaderSource
+#undef glUniform1iARB
+#define glUniform1iARB USE_SHIM_gpu_glUniform1i
+#undef glUniform1fARB
+#define glUniform1fARB USE_SHIM_gpu_glUniform1f
+#undef glUniform1ivARB
+#define glUniform1ivARB USE_SHIM_gpu_glUniform1iv
+#undef glUniform2ivARB
+#define glUniform2ivARB USE_SHIM_gpu_glUniform2iv
+#undef glUniform3ivARB
+#define glUniform3ivARB USE_SHIM_gpu_glUniform3iv
+#undef glUniform4ivARB
+#define glUniform4ivARB USE_SHIM_gpu_glUniform4iv
+#undef glUniform1fvARB
+#define glUniform1fvARB USE_SHIM_gpu_glUniform1fv
+#undef glUniform2fvARB
+#define glUniform2fvARB USE_SHIM_gpu_glUniform2fv
+#undef glUniform3fvARB
+#define glUniform3fvARB USE_SHIM_gpu_glUniform3fv
+#undef glUniform4fvARB
+#define glUniform4fvARB USE_SHIM_gpu_glUniform4fv
+#undef glUniformMatrix3fvARB
+#define glUniformMatrix3fvARB USE_SHIM_gpu_glUniformMatrix3fv
+#undef glUniformMatrix4fvARB
+#define glUniformMatrix4fvARB USE_SHIM_gpu_glUniformMatrix4fv
+#undef glUseProgramObjectARB
+#define glUseProgramObjectARB USE_SHIM_gpu_glUseProgram
+#undef glValidateProgramARB
+#define glValidateProgramARB USE_SHIM_gpu_glValidateProgram
+
+#undef glBindAttribLocation
+#define glBindAttribLocation USE_SHIM_gpu_glBindAttribLocation
+#undef glGetAttribLocation
+#define glGetAttribLocation USE_SHIM_gpu_glGetAttribLocation
+
+#undef glBindAttribLocationARB
+#define glBindAttribLocationARB USE_SHIM_gpu_glBindAttribLocation
+#undef glGetAttribLocationARB
+#define glGetAttribLocationARB USE_SHIM_gpu_glGetAttribLocation
+
+#undef glDeleteProgram
+#define glDeleteProgram USE_SHIM_gpu_glDeleteProgram
+#undef glDisableVertexAttribArray
+#define glDisableVertexAttribArray USE_SHIM_gpu_glDisableVertexAttribArray
+#undef glEnableVertexAttribArray
+#define glEnableVertexAttribArray USE_SHIM_gpu_glEnableVertexAttribArray
+#undef glGetProgramiv
+#define glGetProgramiv USE_SHIM_gpu_glGetProgramiv
+#undef glVertexAttribPointer
+#define glVertexAttribPointer USE_SHIM_gpu_glVertexAttribPointer
+
+//#undef glDeleteObjectARB
+//#define glDeleteObjectARB USE_SHIM_gpu_glDeleteShader_or_gpu_glDeleteProgram
+#undef glDisableVertexAttribArrayARB
+#define glDisableVertexAttribArrayARB USE_SHIM_gpu_glDisableVertexAttribArray
+#undef glEnableVertexAttribArrayARB
+#define glEnableVertexAttribArrayARB USE_SHIM_gpu_glEnableVertexAttribArray
+#undef glGetProgramivARB
+#define glGetProgramiv USE_SHIM_gpu_glGetProgramiv
+#undef glVertexAttribPointerARB
+#define glVertexAttribPointerARB USE_SHIM_gpu_glVertexAttribPointer
+
+#undef glBindBuffer
+#define glBindBuffer USE_SHIM_gpu_glBindBuffer
+#undef glBufferData
+#define glBufferData USE_SHIM_gpu_glBufferData
+#undef glBufferSubData
+#define glBufferSubData USE_SHIM_gpu_glBufferSubData
+#undef glDeleteBuffers
+#define glDeleteBuffers USE_SHIM_gpu_glDeleteBuffers
+#undef glGenBuffers
+#define glGenBuffers USE_SHIM_gpu_glGenBuffers
+
+#undef glBindBufferARB
+#define glBindBufferARB USE_SHIM_gpu_glBindBuffer
+#undef glBufferDataARB
+#define glBufferDataARB USE_SHIM_gpu_glBufferData
+#undef glBufferSubDataARB
+#define glBufferSubDataARB USE_SHIM_gpu_glBufferSubData
+#undef glDeleteBuffersARB
+#define glDeleteBuffersARB USE_SHIM_gpu_glDeleteBuffers
+#undef glGenBuffersARB
+#define glGenBuffersARB USE_SHIM_gpu_glGenBuffers
+
+#undef glMapBuffer
+#define glMapBuffer USE_SHIM_gpu_glMapBuffer
+#undef glUnmapBuffer
+#define glUnmapBuffer USE_SHIM_gpu_glUnmapBuffer
+
+#undef glMapBufferARB
+#define glMapBufferARB USE_SHIM_gpu_glMapBuffer
+#undef glUnmapBufferARB
+#define glUnmapBufferARB USE_SHIM_gpu_glUnmapBuffer
+
+#undef glMapBufferOES
+#define glMapBufferOES USE_SHIM_gpu_glMapBuffer
+#undef glUnmapBufferOES
+#define glUnmapBufferOES USE_SHIM_gpu_glUnmapBuffer
+
+#undef glBindFramebuffer
+#define glBindFramebuffer USE_SHIM_gpu_glBindFramebuffer
+#undef glCheckFramebufferStatus
+#define glCheckFramebufferStatus USE_SHIM_gpu_glCheckFramebufferStatus
+#undef glDeleteFramebuffers
+#define glDeleteFramebuffers USE_SHIM_gpu_glDeleteFramebuffers
+#undef glFramebufferTexture2D
+#define glFramebufferTexture2D USE_SHIM_gpu_glFramebufferTexture2D
+#undef glGenFramebuffers
+#define glGenFramebuffers USE_SHIM_gpu_glGenFramebuffers
+
+#undef glBindFramebufferEXT
+#define glBindFramebufferEXT USE_SHIM_gpu_glBindFramebuffer
+#undef glCheckFramebufferStatusEXT
+#define glCheckFramebufferStatusEXT USE_SHIM_gpu_glCheckFramebufferStatus
+#undef glDeleteFramebuffersEXT
+#define glDeleteFramebuffersEXT USE_SHIM_gpu_glDeleteFramebuffers
+#undef glFramebufferTexture2DEXT
+#define glFramebufferTexture2DEXT USE_SHIM_gpu_glFramebufferTexture2D
+#undef glGenFramebuffersEXT
+#define glGenFramebuffersEXT USE_SHIM_gpu_glGenFramebuffers
+
+#undef glBindFramebufferOES
+#define glBindFramebufferOES USE_SHIM_gpu_glBindFramebuffer
+#undef glCheckFramebufferStatusOES
+#define glCheckFramebufferStatusOES USE_SHIM_gpu_glCheckFramebufferStatus
+#undef glDeleteFramebuffersOES
+#define glDeleteFramebuffersOES USE_SHIM_gpu_glDeleteFramebuffers
+#undef glFramebufferTexture2DOES
+#define glFramebufferTexture2DOES USE_SHIM_gpu_glFramebufferTexture2D
+#undef glGenFramebuffersOES
+#define glGenFramebuffersOES USE_SHIM_gpu_glGenFramebuffers
+
+#undef glBindVertexArray
+#define glBindVertexArray USE_SHIM_gpu_glBindVertexArray
+#undef glDeleteVertexArrays
+#define glDeleteVertexArrays USE_SHIM_gpu_glDeleteVertexArrays
+#undef glGenVertexArrays
+#define glGenVertexArrays USE_SHIM_gpu_glGenVertexArrays
+
+#undef glBindVertexArrayOES
+#define glBindVertexArrayOES USE_SHIM_gpu_glBindVertexArray
+#undef glDeleteVertexArraysOES
+#define glDeleteVertexArraysOES USE_SHIM_gpu_glDeleteVertexArrays
+#undef glGenVertexArraysOES
+#define glGenVertexArraysOES USE_SHIM_gpu_glGenVertexArrays
+
+#undef glGenerateMipmap
+#define glGenerateMipmap USE_SHIM_gpu_glGenerateMipmap
+
+#undef glGenerateMipmapEXT
+#define glGenerateMipmapEXT USE_SHIM_gpu_glGenerateMipmapEXT
+
+#undef glGenerateMipmapOES
+#define glGenerateMipmapOES USE_SHIM_gpu_glGenerateMipmapOES
+
 #if 0
 #undef glBegin
 #define glBegin DO_NOT_USE_glBegin
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index cc1aa9d..3124da2 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -59,7 +59,7 @@ typedef struct GPUShader GPUShader;
 /* GPU extensions support */
 
 void GPU_extensions_disable(void);
-int GPU_print_error(const char *str);
+bool GPU_print_error(const char *str);
 
 int GPU_glsl_support(void);
 int GPU_non_power_of_two_support(void);
@@ -147,7 +147,7 @@ unsigned char *GPU_texture_dup_pixels(const GPUTexture *tex, size_t *count_out);
  *   be called before rendering to the window framebuffer again */
 
 GPUFrameBuffer *GPU_

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list