[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15387] trunk/blender/source:

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Jun 29 23:51:28 CEST 2008


Revision: 15387
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15387
Author:   blendix
Date:     2008-06-29 23:51:27 +0200 (Sun, 29 Jun 2008)

Log Message:
-----------

Fix for bug #7753: after game engine drawing with vertex arrays,
nurbs/curves/text dissappears.

This also removes the "vertex arrays" option and enables it always
for OpenGL version >= 1.1 - there's no need to have an option to
make things render faster disabled by default, also it should work
stable now.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_userdef_types.h
    trunk/blender/source/blender/src/drawview.c
    trunk/blender/source/blender/src/space.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
    trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp

Modified: trunk/blender/source/blender/makesdna/DNA_userdef_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/blender/makesdna/DNA_userdef_types.h	2008-06-29 21:51:27 UTC (rev 15387)
@@ -310,7 +310,7 @@
 #define	USER_DUP_ACT			(1 << 10)
 
 /* gameflags */
-#define USER_VERTEX_ARRAYS		1
+#define USER_DEPRECATED_FLAG	1
 #define USER_DISABLE_SOUND		2
 #define USER_DISABLE_MIPMAP		4
 

Modified: trunk/blender/source/blender/src/drawview.c
===================================================================
--- trunk/blender/source/blender/src/drawview.c	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/blender/src/drawview.c	2008-06-29 21:51:27 UTC (rev 15387)
@@ -246,7 +246,8 @@
 	glDisable(GL_COLOR_MATERIAL);
 }
 
-/* also called when render 'ogl' */
+/* also called when render 'ogl'
+   keep synced with Myinit_gl_stuff in the game engine! */
 void init_gl_stuff(void)	
 {
 	float mat_ambient[] = { 0.0, 0.0, 0.0, 0.0 };

Modified: trunk/blender/source/blender/src/space.c
===================================================================
--- trunk/blender/source/blender/src/space.c	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/blender/src/space.c	2008-06-29 21:51:27 UTC (rev 15387)
@@ -378,9 +378,6 @@
 		
 	if ( (syshandle = SYS_GetSystem()) ) {
 		/* User defined settings */
-		a= (U.gameflags & USER_VERTEX_ARRAYS);
-		SYS_WriteCommandLineInt(syshandle, "vertexarrays", a);
-
 		a= (U.gameflags & USER_DISABLE_SOUND);
 		SYS_WriteCommandLineInt(syshandle, "noaudio", a);
 
@@ -4255,15 +4252,11 @@
 		uiDefButS(block, MENU, B_GLRESLIMITCHANGED, "GL Texture Clamp Off%x0|%l|GL Texture Clamp 8192%x8192|GL Texture Clamp 4096%x4096|GL Texture Clamp 2048%x2048|GL Texture Clamp 1024%x1024|GL Texture Clamp 512%x512|GL Texture Clamp 256%x256|GL Texture Clamp 128%x128",
 													(xpos+edgsp+(5*mpref)+(5*midsp)),y4,mpref,buth, &(U.glreslimit), 0, 0, 0, 0, "Limit the texture size to save graphics memory");
 		
-		uiDefButBitI(block, TOG, USER_VERTEX_ARRAYS, 0, "Vertex Arrays",
-			(xpos+edgsp+(5*mpref)+(5*midsp)),y3,mpref,buth,
-			&(U.gameflags), 0, 0, 0, 0, "Toggles between vertex arrays on (less reliable) and off (more reliable)");
-
 		uiDefButI(block, NUM, 0, "Time Out ",
-			(xpos+edgsp+(5*mpref)+(5*midsp)), y2, mpref, buth, 
+			(xpos+edgsp+(5*mpref)+(5*midsp)), y3, mpref, buth, 
 			&U.textimeout, 0.0, 3600.0, 30, 2, "Time since last access of a GL texture in seconds after which it is freed. (Set to 0 to keep textures allocated)");
 		uiDefButI(block, NUM, 0, "Collect Rate ",
-			(xpos+edgsp+(5*mpref)+(5*midsp)), y1, mpref, buth, 
+			(xpos+edgsp+(5*mpref)+(5*midsp)), y2, mpref, buth, 
 			&U.texcollectrate, 1.0, 3600.0, 30, 2, "Number of seconds between each run of the GL texture garbage collector.");
 
 		/* *** */

Modified: trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2008-06-29 21:51:27 UTC (rev 15387)
@@ -165,20 +165,14 @@
 		RAS_IRenderTools* rendertools = new KX_BlenderRenderTools();
 		RAS_IRasterizer* rasterizer = NULL;
 		
-		// let's see if we want to use vertexarrays or not
-		int usevta = SYS_GetCommandLineInt(syshandle,"vertexarrays",1);
-		bool useVertexArrays = (usevta > 0);
-		
-		bool lock_arrays = (displaylists && useVertexArrays);
-
-		if(displaylists){
-			if (useVertexArrays)
-				rasterizer = new RAS_ListRasterizer(canvas, true, lock_arrays);
+		if(displaylists) {
+			if (GLEW_VERSION_1_1)
+				rasterizer = new RAS_ListRasterizer(canvas, true, true);
 			else
 				rasterizer = new RAS_ListRasterizer(canvas);
 		}
-		else if (useVertexArrays && GLEW_VERSION_1_1)
-			rasterizer = new RAS_VAOpenGLRasterizer(canvas, lock_arrays);
+		else if (GLEW_VERSION_1_1)
+			rasterizer = new RAS_VAOpenGLRasterizer(canvas, false);
 		else
 			rasterizer = new RAS_OpenGLRasterizer(canvas);
 		
@@ -513,16 +507,14 @@
 		RAS_IRenderTools* rendertools = new KX_BlenderRenderTools();
 		RAS_IRasterizer* rasterizer = NULL;
 
-		// let's see if we want to use vertexarrays or not
-		int usevta = SYS_GetCommandLineInt(syshandle,"vertexarrays",1);
-		bool useVertexArrays = (usevta > 0);
-
-		bool lock_arrays = (displaylists && useVertexArrays);
-
-		if(displaylists && !useVertexArrays)
-			rasterizer = new RAS_ListRasterizer(canvas);
-		else if (useVertexArrays && GLEW_VERSION_1_1)
-			rasterizer = new RAS_VAOpenGLRasterizer(canvas, lock_arrays);
+		if(displaylists) {
+			if (GLEW_VERSION_1_1)
+				rasterizer = new RAS_ListRasterizer(canvas, true, true);
+			else
+				rasterizer = new RAS_ListRasterizer(canvas);
+		}
+		else if (GLEW_VERSION_1_1)
+			rasterizer = new RAS_VAOpenGLRasterizer(canvas, false);
 		else
 			rasterizer = new RAS_OpenGLRasterizer(canvas);
 

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp	2008-06-29 21:51:27 UTC (rev 15387)
@@ -496,7 +496,6 @@
 
 		bool fixed_framerate= (SYS_GetCommandLineInt(syshandle, "fixed_framerate", fixedFr) != 0);
 		bool frameRate = (SYS_GetCommandLineInt(syshandle, "show_framerate", 0) != 0);
-		bool useVertexArrays = SYS_GetCommandLineInt(syshandle,"vertexarrays",1) != 0;
 		bool useLists = (SYS_GetCommandLineInt(syshandle, "displaylists", G.fileflags & G_FILE_DIAPLAY_LISTS) != 0);
 
 		if(GLEW_ARB_multitexture && GLEW_VERSION_1_1) {
@@ -514,16 +513,17 @@
 		if (!m_rendertools)
 			goto initFailed;
 		
-		if(useLists)
-			if (useVertexArrays) {
+		if(useLists) {
+			if(GLEW_VERSION_1_1)
 				m_rasterizer = new RAS_ListRasterizer(m_canvas, true);
-			} else {
+			else
 				m_rasterizer = new RAS_ListRasterizer(m_canvas);
-			}
-		else if (useVertexArrays && GLEW_VERSION_1_1)
+		}
+		else if (GLEW_VERSION_1_1)
 			m_rasterizer = new RAS_VAOpenGLRasterizer(m_canvas);
 		else
 			m_rasterizer = new RAS_OpenGLRasterizer(m_canvas);
+
 		m_rasterizer->SetStereoMode((RAS_IRasterizer::StereoMode) stereoMode);
 		if (!m_rasterizer)
 			goto initFailed;

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp	2008-06-29 21:51:27 UTC (rev 15387)
@@ -187,11 +187,10 @@
 	printf("       show_framerate     0         Show the frame rate\n");
 	printf("       show_properties    0         Show debug properties\n");
 	printf("       show_profile       0         Show profiling information\n");
-	printf("       vertexarrays       1         Enable vertex arrays\n");
 	printf("       blender_material   0         Enable material settings\n");
 	printf("\n");
 	printf("example: %s -p 10 10 320 200 -g noaudio c:\\loadtest.blend\n", program);
-	printf("example: %s -g vertexarrays = 0 c:\\loadtest.blend\n", program);
+	printf("example: %s -g show_framerate = 0 c:\\loadtest.blend\n", program);
 }
 
 char *get_filename(int argc, char **argv) {

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp	2008-06-29 21:51:27 UTC (rev 15387)
@@ -125,6 +125,9 @@
 	glDisable(GL_TEXTURE_1D);
 	glDisable(GL_TEXTURE_2D);
 
+	glEnableClientState(GL_VERTEX_ARRAY);
+	glEnableClientState(GL_NORMAL_ARRAY);
+
 	glPixelTransferi(GL_MAP_COLOR, GL_FALSE);
 	glPixelTransferi(GL_RED_SCALE, 1);
 	glPixelTransferi(GL_RED_BIAS, 0);

Modified: trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
===================================================================
--- trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp	2008-06-29 21:06:18 UTC (rev 15386)
+++ trunk/blender/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp	2008-06-29 21:51:27 UTC (rev 15387)
@@ -91,9 +91,10 @@
 
 void RAS_VAOpenGLRasterizer::Exit()
 {
-	glDisableClientState(GL_VERTEX_ARRAY);
+	glEnableClientState(GL_VERTEX_ARRAY);
+	glEnableClientState(GL_NORMAL_ARRAY);
+	glDisableClientState(GL_TEXTURE_COORD_ARRAY);
 	glDisableClientState(GL_COLOR_ARRAY);
-	glDisableClientState(GL_NORMAL_ARRAY);
 	EnableTextures(false);
 
 	RAS_OpenGLRasterizer::Exit();





More information about the Bf-blender-cvs mailing list