[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49318] branches/soc-2012-swiss_cheese/ source/blender/gpu: Adding gpu functions for VBO for compatibility between standard, ES and ARB

Alexander Kuznetsov kuzsasha at gmail.com
Sat Jul 28 04:43:19 CEST 2012


Revision: 49318
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49318
Author:   alexk
Date:     2012-07-28 02:43:15 +0000 (Sat, 28 Jul 2012)
Log Message:
-----------
Adding gpu functions for VBO for compatibility between standard, ES and ARB

gpuGenBuffers = glGenBuffers
gpuBindBuffer = glBindBuffer
gpuBufferData =  glBufferData
gpuDeleteBuffers = glDeleteBuffers

Modified Paths:
--------------
    branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h
    branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c

Modified: branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h	2012-07-28 02:38:47 UTC (rev 49317)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/GPU_functions.h	2012-07-28 02:43:15 UTC (rev 49318)
@@ -242,6 +242,10 @@
 GPUFUNC void (GLAPIENTRY* gpuBindFramebuffer)(GLuint target, GLuint framebuffer);
 GPUFUNC void (GLAPIENTRY* gpuDeleteFramebuffers)(GLint n, const GLuint * framebuffers);
 
+GPUFUNC void (GLAPIENTRY* gpuGenBuffers)(GLsizei  n, GLuint *buffers);
+GPUFUNC void (GLAPIENTRY* gpuBindBuffer)(GLenum target, GLuint buffer);
+GPUFUNC void (GLAPIENTRY* gpuBufferData)(GLenum target, GLsizeiptr size, const GLvoid * data, GLenum usage);
+GPUFUNC void (GLAPIENTRY* gpuDeleteBuffers)(GLsizei  n, const GLuint * buffers);
 
 
 void GPU_func_comp_init(void);

Modified: branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c
===================================================================
--- branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c	2012-07-28 02:38:47 UTC (rev 49317)
+++ branches/soc-2012-swiss_cheese/source/blender/gpu/intern/gpu_functions.c	2012-07-28 02:43:15 UTC (rev 49318)
@@ -114,6 +114,14 @@
 	gpuDeleteProgram = glDeleteObjectARB;
 }
 
+static void init_buffers_arb(void)
+{
+	gpuGenBuffers = glGenBuffersARB;
+	gpuBindBuffer = glBindBufferARB;
+	gpuBufferData =  glBufferDataARB;
+	gpuDeleteBuffers = glDeleteBuffersARB;
+}
+
 #endif
 
 static void check_glGetShaderiv(GLuint shader, GLuint pname, GLint *params)
@@ -175,6 +183,14 @@
 	gpuDeleteProgram = glDeleteProgram;
 }
 
+static void init_buffers_standard(void)
+{
+	gpuGenBuffers = glGenBuffers;
+	gpuBindBuffer = glBindBuffer;
+	gpuBufferData =  glBufferData;
+	gpuDeleteBuffers = glDeleteBuffers;
+}
+
 static void init_framebuffers_standard(void)
 {
 	gpuGenFramebuffers    = glGenFramebuffers;
@@ -200,19 +216,22 @@
 void GPU_func_comp_init(void)
 {
 #ifdef GLES
-//exit(0);
+
 	init_glsl_standard();
 	init_framebuffers_standard();
+	init_buffers_standard();
 	
-	
-	printf("gpuUniform3iv: %p\n", gpuUniform3iv);
-	//exit(0);
 #else
 	/*	Here we rely on GLEW
 	We expect all symbols be present, even if they are only 0,
 	We use GLEW to fill the arrays with zero even if extensions are not avalable
 	*/
 
+	if(GLEW_VERSION_1_5)
+		init_buffers_standard();
+	else
+		init_buffers_arb();
+
 	if(GLEW_VERSION_2_0)
 		init_glsl_standard();
 	else




More information about the Bf-blender-cvs mailing list