[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59540] branches/soc-2013-viewport_fx/ source/blender/gpu/intern: converting gpu_buffers to use extension_wrapper

Jason Wilkins Jason.A.Wilkins at gmail.com
Tue Aug 27 00:03:38 CEST 2013


Revision: 59540
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59540
Author:   jwilkins
Date:     2013-08-26 22:03:38 +0000 (Mon, 26 Aug 2013)
Log Message:
-----------
converting gpu_buffers to use extension_wrapper

Modified Paths:
--------------
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_buffers.c
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.c
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.h
    branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_gl.c

Modified: branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_buffers.c
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_buffers.c	2013-08-26 21:39:06 UTC (rev 59539)
+++ branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_buffers.c	2013-08-26 22:03:38 UTC (rev 59540)
@@ -303,8 +303,7 @@
 		 * buffer, so increase pool size */
 		if (pool->maxsize == pool->totbuf) {
 			pool->maxsize += MAX_FREE_GPU_BUFFERS;
-			pool->buffers = MEM_reallocN(pool->buffers,
-			                             sizeof(GPUBuffer *) * pool->maxsize);
+			pool->buffers = (GPUBuffer**)MEM_reallocN(pool->buffers, sizeof(GPUBuffer *) * pool->maxsize);
 		}
 	}
 
@@ -918,17 +917,16 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_VERTEX))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_VERTEX_ARRAY);
+	gpu_enable_vertex_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->points->id);
-		glVertexPointer(3, GL_FLOAT, 0, 0);
+		gpu_vertex_pointer(3, GL_FLOAT, 0, 0);
 	}
 	else {
-		glVertexPointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer);
+		gpu_vertex_pointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer);
 	}
-#endif
-	
+
 	GLStates |= GPU_BUFFER_VERTEX_STATE;
 }
 
@@ -937,16 +935,15 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_NORMAL))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_NORMAL_ARRAY);
+	gpu_enable_normal_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->normals->id);
-		glNormalPointer(GL_FLOAT, 0, 0);
+		gpu_normal_pointer(GL_FLOAT, 0, GL_FALSE, 0);
 	}
 	else {
-		glNormalPointer(GL_FLOAT, 0, dm->drawObject->normals->pointer);
+		gpu_normal_pointer(GL_FLOAT, 0, GL_FALSE, dm->drawObject->normals->pointer);
 	}
-#endif
 
 	GLStates |= GPU_BUFFER_NORMAL_STATE;
 }
@@ -956,16 +953,15 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_UV))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_TEXTURE_COORD_ARRAY);
+	gpu_enable_texcoord_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->uv->id);
-		glTexCoordPointer(2, GL_FLOAT, 0, 0);
+		gpu_texcoord_pointer(2, GL_FLOAT, 0, 0);
 	}
 	else {
-		glTexCoordPointer(2, GL_FLOAT, 0, dm->drawObject->uv->pointer);
+		gpu_texcoord_pointer(2, GL_FLOAT, 0, dm->drawObject->uv->pointer);
 	}
-#endif
 
 	GLStates |= GPU_BUFFER_TEXCOORD_STATE;
 }
@@ -995,16 +991,15 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_COLOR))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_COLOR_ARRAY);
+	gpu_enable_color_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->colors->id);
-		glColorPointer(3, GL_UNSIGNED_BYTE, 0, 0);
+		gpu_color_pointer(3, GL_UNSIGNED_BYTE, 0, 0);
 	}
 	else {
-		glColorPointer(3, GL_UNSIGNED_BYTE, 0, dm->drawObject->colors->pointer);
+		gpu_color_pointer(3, GL_UNSIGNED_BYTE, 0, dm->drawObject->colors->pointer);
 	}
-#endif
 
 	GLStates |= GPU_BUFFER_COLOR_STATE;
 }
@@ -1017,16 +1012,15 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_VERTEX))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_VERTEX_ARRAY);
+	gpu_enable_vertex_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->points->id);
-		glVertexPointer(3, GL_FLOAT, 0, 0);
+		gpu_vertex_pointer(3, GL_FLOAT, 0, 0);
 	}
 	else {
-		glVertexPointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer);
+		gpu_vertex_pointer(3, GL_FLOAT, 0, dm->drawObject->points->pointer);
 	}
-#endif
 
 	GLStates |= GPU_BUFFER_VERTEX_STATE;
 
@@ -1041,16 +1035,15 @@
 	if (!gpu_buffer_setup_common(dm, GPU_BUFFER_UVEDGE))
 		return;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
-	glEnableClientState(GL_VERTEX_ARRAY);
+	gpu_enable_vertex_array();
+
 	if (useVBOs) {
 		gpu_glBindBuffer(GL_ARRAY_BUFFER, dm->drawObject->uvedges->id);
-		glVertexPointer(2, GL_FLOAT, 0, 0);
+		gpu_vertex_pointer(2, GL_FLOAT, 0, 0);
 	}
 	else {
-		glVertexPointer(2, GL_FLOAT, 0, dm->drawObject->uvedges->pointer);
+		gpu_vertex_pointer(2, GL_FLOAT, 0, dm->drawObject->uvedges->pointer);
 	}
-#endif
 
 	GLStates |= GPU_BUFFER_VERTEX_STATE;
 }
@@ -1125,60 +1118,61 @@
 }
 
 
+
 void GPU_buffer_unbind(void)
 {
 	int i;
 
-#if defined(WITH_GL_PROFILE_COMPAT)
 	if (GLStates & GPU_BUFFER_VERTEX_STATE)
-		glDisableClientState(GL_VERTEX_ARRAY);
+		gpu_disable_vertex_array();
+
 	if (GLStates & GPU_BUFFER_NORMAL_STATE)
-		glDisableClientState(GL_NORMAL_ARRAY);
+		gpu_disable_normal_array();
+
 	if (GLStates & GPU_BUFFER_TEXCOORD_STATE)
-		glDisableClientState(GL_TEXTURE_COORD_ARRAY);
+		gpu_disable_texcoord_array();
+
 	if (GLStates & GPU_BUFFER_COLOR_STATE)
-		glDisableClientState(GL_COLOR_ARRAY);
-	if (GLStates & GPU_BUFFER_ELEMENT_STATE) {
-		if (useVBOs) {
-			gpu_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
-		}
-	}
-#endif
+		gpu_disable_color_array();
 
-	GLStates &= ~(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE |
-	              GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE |
-	              GPU_BUFFER_ELEMENT_STATE);
+	if (useVBOs && (GLStates & GPU_BUFFER_ELEMENT_STATE))
+		gpu_glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
 
+	if (useVBOs)
+		gpu_glBindBuffer(GL_ARRAY_BUFFER, 0);
+
 	for (i = 0; i < MAX_GPU_ATTRIB_DATA; i++) {
-		if (attribData[i].index != -1) {
+		if (attribData[i].index != -1)
 			gpu_glDisableVertexAttribArray(attribData[i].index);
-		}
 		else
 			break;
 	}
 
-	if (useVBOs)
-		gpu_glBindBuffer(GL_ARRAY_BUFFER, 0);
+	GLStates &= ~(GPU_BUFFER_VERTEX_STATE | GPU_BUFFER_NORMAL_STATE |
+	              GPU_BUFFER_TEXCOORD_STATE | GPU_BUFFER_COLOR_STATE |
+	              GPU_BUFFER_ELEMENT_STATE);
 }
 
+
+
 void GPU_color_switch(int mode)
 {
 	if (mode) {
-#if defined(WITH_GL_PROFILE_COMPAT)
 		if (!(GLStates & GPU_BUFFER_COLOR_STATE))
-			glEnableClientState(GL_COLOR_ARRAY);
-#endif
+			gpu_enable_color_array();
+
 		GLStates |= GPU_BUFFER_COLOR_STATE;
 	}
 	else {
-#if defined(WITH_GL_PROFILE_COMPAT)
 		if (GLStates & GPU_BUFFER_COLOR_STATE)
-			glDisableClientState(GL_COLOR_ARRAY);
-#endif
+			gpu_disable_color_array();
+
 		GLStates &= ~GPU_BUFFER_COLOR_STATE;
 	}
 }
 
+
+
 /* return 1 if drawing should be done using old immediate-mode
  * code, 0 otherwise */
 int GPU_buffer_legacy(DerivedMesh *dm)
@@ -1327,10 +1321,9 @@
 {
 	// SSS not needed?
 	//gpuDisableColorMaterial();
-#if defined(WITH_GL_PROFILE_COMPAT)
+
 	if (vbo_state == VBO_ENABLED)
-		glDisableClientState(GL_COLOR_ARRAY);
-#endif
+		gpu_disable_color_array();
 }
 
 static float gpu_color_from_mask(float mask)
@@ -1388,6 +1381,7 @@
                                          float diffuse_color[4])
 {
 	float color = gpu_color_from_mask_quad(key, a, b, c, d);
+	// XXX jwilkins: this probably needs a VertexAttrib as well
 	gpuColor3f(diffuse_color[0] * color, diffuse_color[1] * color, diffuse_color[2] * color);
 }
 

Modified: branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.c
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.c	2013-08-26 21:39:06 UTC (rev 59539)
+++ branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.c	2013-08-26 22:03:38 UTC (rev 59540)
@@ -412,33 +412,3 @@
 }
 
 
-
-void gpu_enable_vertex_attrib_array (GLuint index)
-{
-	if (current_common != NULL)
-		gpu_glEnableVertexAttribArray(index);
-}
-
-
-
-void gpu_disable_vertex_attrib_array(GLuint index)
-{
-	if (current_common != NULL)
-		gpu_glDisableVertexAttribArray(index);
-}
-
-
-
-void gpu_vertex_attrib_pointer(
-	GLuint        index,
-	GLint         size,
-	GLenum        type,
-	GLboolean     normalize,
-	GLsizei       stride,
-	const GLvoid* pointer)
-{
-	if (current_common != NULL)
-		gpu_glVertexAttribPointer(index, size, type, normalize, stride, pointer);
-}
-
-

Modified: branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.h
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.h	2013-08-26 21:39:06 UTC (rev 59539)
+++ branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_common.h	2013-08-26 22:03:38 UTC (rev 59540)
@@ -137,19 +137,8 @@
 void  gpu_set_common_active_texture(GLint texture);
 GLint gpu_get_common_active_texture(void);
 
-void gpu_enable_vertex_attrib_array (GLuint index);
-void gpu_disable_vertex_attrib_array(GLuint index);
 
-void gpu_vertex_attrib_pointer(
-	GLuint        index,
-	GLint         size,
-	GLenum        type,
-	GLboolean     normalize,
-	GLsizei       stride,
-	const GLvoid* pointer);
 
-
-
 #ifdef __cplusplus
 }
 #endif

Modified: branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_gl.c
===================================================================
--- branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_gl.c	2013-08-26 21:39:06 UTC (rev 59539)
+++ branches/soc-2013-viewport_fx/source/blender/gpu/intern/gpu_immediate_gl.c	2013-08-26 22:03:38 UTC (rev 59540)
@@ -212,7 +212,7 @@
 	/* float vertex attribute */
 	for (i = 0; i < format->attribCount_f; i++) {
 		if (format->attribSize_f[i] > 0) {
-			gpu_vertex_attrib_pointer(
+			gpu_glVertexAttribPointer(
 				format->attribIndexMap_f[i],
 				format->attribSize_f[i],
 				GL_FLOAT,
@@ -223,7 +223,7 @@
 
 			offset += (size_t)(format->attribSize_f[i]) * sizeof(GLfloat);
 
-			gpu_enable_vertex_attrib_array(format->attribIndexMap_f[i]);
+			gpu_glEnableVertexAttribArray(format->attribIndexMap_f[i]);
 GPU_CHECK_NO_ERROR();
 		}
 	}
@@ -231,7 +231,7 @@
 	/* byte vertex attribute */
 	for (i = 0; i < format->attribCount_ub; i++) {
 		if (format->attribSize_ub[i] > 0) {
-			gpu_vertex_attrib_pointer(
+			gpu_glVertexAttribPointer(
 				format->attribIndexMap_ub[i],
 				format->attribSize_ub[i],
 				GL_UNSIGNED_BYTE,
@@ -242,7 +242,7 @@
 
 			offset += 4 * sizeof(GLubyte);
 
-			gpu_enable_vertex_attrib_array(format->attribIndexMap_ub[i]);
+			gpu_glEnableVertexAttribArray(format->attribIndexMap_ub[i]);
 GPU_CHECK_NO_ERROR();
 		}
 	}
@@ -283,12 +283,12 @@
 	/* float vertex attribute */
 	for (i = 0; i < GPU_IMMEDIATE->format.attribCount_f; i++)
 //		if (GPU_IMMEDIATE->format.attribSize_f[i] > 0)
-			gpu_disable_vertex_attrib_array(GPU_IMMEDIATE->format.attribIndexMap_f[i]);
+			gpu_glDisableVertexAttribArray(GPU_IMMEDIATE->format.attribIndexMap_f[i]);
 
 	/* byte vertex attribute */
 	for (i = 0; i < GPU_IMMEDIATE->format.attribCount_ub; i++)
 //		if (GPU_IMMEDIATE->format.attribSize_ub[i] > 0)

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list