[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27352] trunk/blender/source/blender: Fix [#21145] Preferences: Solid OpenGL lights viewport update

Matt Ebb matt at mke3.net
Tue Mar 9 07:20:08 CET 2010


Revision: 27352
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27352
Author:   broken
Date:     2010-03-09 07:20:08 +0100 (Tue, 09 Mar 2010)

Log Message:
-----------
Fix [#21145] Preferences: Solid OpenGL lights viewport update

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/space_view3d.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
    trunk/blender/source/blender/makesdna/DNA_view3d_types.h
    trunk/blender/source/blender/makesrna/intern/rna_userdef.c
    trunk/blender/source/blender/windowmanager/WM_types.h

Modified: trunk/blender/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/space_view3d.c	2010-03-09 04:38:51 UTC (rev 27351)
+++ trunk/blender/source/blender/editors/space_view3d/space_view3d.c	2010-03-09 06:20:08 UTC (rev 27352)
@@ -57,6 +57,8 @@
 
 #include "BIF_gl.h"
 
+#include "GPU_draw.h"
+
 #include "WM_api.h"
 #include "WM_types.h"
 
@@ -602,8 +604,13 @@
 			ED_region_tag_redraw(ar);
 			break;
 		case NC_SPACE:
-			if(wmn->data == ND_SPACE_VIEW3D)
+			if(wmn->data == ND_SPACE_VIEW3D) {
+				if (wmn->subtype == NS_VIEW3D_GPU) {
+					RegionView3D *rv3d= ar->regiondata;
+					rv3d->rflag |= RV3D_GPULIGHT_UPDATE;
+				}
 				ED_region_tag_redraw(ar);
+			}
 			break;
 		case NC_ID:
 			if(wmn->action == NA_RENAME)

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-03-09 04:38:51 UTC (rev 27351)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2010-03-09 06:20:08 UTC (rev 27352)
@@ -2188,6 +2188,12 @@
 	/* shadow buffers, before we setup matrices */
 	if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype))
 		gpu_update_lamps_shadows(scene, v3d);
+	
+	/* reset default OpenGL lights if needed (i.e. after preferences have been altered) */
+	if (rv3d->rflag & RV3D_GPULIGHT_UPDATE) {
+		rv3d->rflag &= ~RV3D_GPULIGHT_UPDATE;
+		GPU_default_lights();
+	}
 
 	/* clear background */
 	UI_GetThemeColor3fv(TH_BACK, col);

Modified: trunk/blender/source/blender/makesdna/DNA_view3d_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2010-03-09 04:38:51 UTC (rev 27351)
+++ trunk/blender/source/blender/makesdna/DNA_view3d_types.h	2010-03-09 06:20:08 UTC (rev 27352)
@@ -229,6 +229,7 @@
 #define RV3D_FLYMODE				2
 #define RV3D_CLIPPING				4
 #define RV3D_NAVIGATING				8
+#define RV3D_GPULIGHT_UPDATE		16
 
 /* RegionView3d->viewlock */
 #define RV3D_LOCKED			1

Modified: trunk/blender/source/blender/makesrna/intern/rna_userdef.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2010-03-09 04:38:51 UTC (rev 27351)
+++ trunk/blender/source/blender/makesrna/intern/rna_userdef.c	2010-03-09 06:20:08 UTC (rev 27352)
@@ -201,12 +201,9 @@
 	rna_userdef_update(bmain, scene, ptr);
 }
 
-// XXX - todo, this is not accessible from here and it only works when the userprefs are in the same window.
-// extern int GPU_default_lights(void);
 static void rna_UserDef_viewport_lights_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
-	// GPU_default_lights();
-	WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D, NULL);
+	WM_main_add_notifier(NC_SPACE|ND_SPACE_VIEW3D|NS_VIEW3D_GPU, NULL);
 	rna_userdef_update(bmain, scene, ptr);
 }
 

Modified: trunk/blender/source/blender/windowmanager/WM_types.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_types.h	2010-03-09 04:38:51 UTC (rev 27351)
+++ trunk/blender/source/blender/windowmanager/WM_types.h	2010-03-09 06:20:08 UTC (rev 27352)
@@ -267,6 +267,8 @@
 #define NS_MODE_POSE			(9<<8)
 #define NS_MODE_PARTICLE		(10<<8)
 
+/* subtype 3d view editing */
+#define NS_VIEW3D_GPU			(16<<8)
 
 /* action classification */
 #define NOTE_ACTION			(0x000000FF)





More information about the Bf-blender-cvs mailing list