[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11846] branches/soc-2007-maike/source/ blender: Some changes to draw correctly the drawtype menu and to fix default material glsl code creation as was being created twice

Miguel Torres Lima torreslima at gmail.com
Mon Aug 27 19:12:10 CEST 2007


Revision: 11846
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11846
Author:   maike
Date:     2007-08-27 19:12:10 +0200 (Mon, 27 Aug 2007)

Log Message:
-----------
Some changes to draw correctly the drawtype menu and to fix default material glsl code creation as was being created twice

Modified Paths:
--------------
    branches/soc-2007-maike/source/blender/blenkernel/intern/material.c
    branches/soc-2007-maike/source/blender/include/BIF_screen.h
    branches/soc-2007-maike/source/blender/src/editscreen.c
    branches/soc-2007-maike/source/blender/src/glutil.c

Modified: branches/soc-2007-maike/source/blender/blenkernel/intern/material.c
===================================================================
--- branches/soc-2007-maike/source/blender/blenkernel/intern/material.c	2007-08-27 16:20:54 UTC (rev 11845)
+++ branches/soc-2007-maike/source/blender/blenkernel/intern/material.c	2007-08-27 17:12:10 UTC (rev 11846)
@@ -76,7 +76,8 @@
 void init_def_material(void)
 {
         glsl_init_ghash();
-	init_material(&defmaterial);
+	if(glsl_active())
+	  init_material(&defmaterial);
 }
 
 /* not material itself */

Modified: branches/soc-2007-maike/source/blender/include/BIF_screen.h
===================================================================
--- branches/soc-2007-maike/source/blender/include/BIF_screen.h	2007-08-27 16:20:54 UTC (rev 11845)
+++ branches/soc-2007-maike/source/blender/include/BIF_screen.h	2007-08-27 17:12:10 UTC (rev 11846)
@@ -133,7 +133,5 @@
 }
 #endif
 
-void glsl_welcome_msg(void);
-
 #endif /* BIF_SCREEN_H */
 

Modified: branches/soc-2007-maike/source/blender/src/editscreen.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/editscreen.c	2007-08-27 16:20:54 UTC (rev 11845)
+++ branches/soc-2007-maike/source/blender/src/editscreen.c	2007-08-27 17:12:10 UTC (rev 11846)
@@ -1509,8 +1509,7 @@
 		}
 		/* Bizar hack. The event queue has mutated... */
 		if ( (firsttime) && (event == 0) ) {
-		        init_glsl();
-
+		        
 			if (onload_script) {
 				/* OnLoad scriptlink */
 				BPY_do_pyscript(&G.scene->id, SCRIPT_ONLOAD);
@@ -1535,9 +1534,10 @@
 				//       || G.save_over)) {
 					splash((void *)datatoc_splash_jpg,
 					       datatoc_splash_jpg_size, NULL);
-					glsl_welcome_msg();
 				//}
 			}
+			
+			init_glsl();
 			firsttime = 0;
 		}
 	}
@@ -3807,15 +3807,3 @@
 	window_set_custom_cursor(mainwin, mask, bitmap, 7, 7);
 	BIF_renderwin_set_custom_cursor(mask, bitmap);
 }
-
-
-/* GLSL Support Notification */
-
-void glsl_welcome_msg(void){
-  int n;
-  
-  if(glsl_supported())
-    n = pupmenu("GLSL Shaders:%t|Supported");
-  else
-    n = pupmenu("GLSL Shaders:%t|Not supported");
-}

Modified: branches/soc-2007-maike/source/blender/src/glutil.c
===================================================================
--- branches/soc-2007-maike/source/blender/src/glutil.c	2007-08-27 16:20:54 UTC (rev 11845)
+++ branches/soc-2007-maike/source/blender/src/glutil.c	2007-08-27 17:12:10 UTC (rev 11846)
@@ -705,7 +705,10 @@
 
 extern struct Material defmaterial;
 
+static int drawtype = -1;
+static int initialized = 0;
 
+
 static void check_glsl_support(void)
 {
   const unsigned char *gl_extensions;
@@ -719,6 +722,7 @@
     int iparams2[7];
 
     glsl_state = GLSL_SUPPORTED;
+    initialized = 1;
 
     printf("\nGLSL Supported\n");
 
@@ -760,17 +764,32 @@
 	   iparams2[0], iparams2[1], iparams2[2], iparams2[3], iparams2[4], iparams2[5], iparams2[6]);
 
     glsl_init_cb_globals();
-    glsl_change_state();
+
     allqueue(REDRAWVIEW3D, 1);
+
+    if(G.vd->drawtype == OB_GLSL){
+      glsl_state |= GLSL_ACTIVE;
+      glsl_create_all();
+    }
   }
   else{
+    if(G.vd->drawtype == OB_GLSL)
+      G.vd->drawtype = OB_SHADED;
+
+    allqueue(REDRAWVIEW3D, 1);
     printf("\nGLSL Not Supported\n");
   }
+
+  drawtype = G.vd->drawtype;
 }
 
 
-int drawtype = -1;
+int glsl_initialized(void)
+{
+  return initialized;
+}
 
+
 void init_glsl(void)
 {
   if(!glsl_state){
@@ -806,6 +825,7 @@
   return 0;
 }
 
+
 void glsl_init_firstdraw(void)
 {
   glsl_state |= GLSL_FIRSTDRAW;
@@ -815,10 +835,11 @@
   glsl_create_all();
 }
 
+
 void glsl_change_state(void)
 { 
   if(glsl_supported()){
-    if(G.vd && G.vd->drawtype == OB_GLSL && drawtype != G.vd->drawtype){
+    if(G.vd->drawtype == OB_GLSL && drawtype != G.vd->drawtype){
       glsl_state |= GLSL_ACTIVE;
       drawtype = G.vd->drawtype;
 
@@ -826,29 +847,14 @@
 
       printf("\nGLSL activated.\n");
     }
-    else if(G.vd && drawtype != G.vd->drawtype && drawtype == OB_GLSL){
+    else if(drawtype != G.vd->drawtype && drawtype == OB_GLSL){
       drawtype = G.vd->drawtype;
       glsl_state &= ~GLSL_ACTIVE;
  
       glsl_free_all();
       printf("\nGLSL deactivated.\n");
     }
-    else if(drawtype == -1){
-      drawtype = G.vd->drawtype;
-    }
   }
-  else{
-    if(G.vd && G.vd->drawtype == OB_GLSL){
-      if(drawtype == OB_GLSL){
-	glsl_free_all();
-	G.vd->drawtype = OB_SHADED;
-	drawtype = OB_SHADED;
-      }
-      else{
-	G.vd->drawtype = drawtype;
-      }
-    }
-  }
 }
 
 





More information about the Bf-blender-cvs mailing list