[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34470] trunk/blender: BGE: option in the UI to start with the mouse cursor visible.

Dalai Felinto dfelinto at gmail.com
Sun Jan 23 18:25:28 CET 2011


Revision: 34470
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34470
Author:   dfelinto
Date:     2011-01-23 17:25:27 +0000 (Sun, 23 Jan 2011)
Log Message:
-----------
BGE: option in the UI to start with the mouse cursor visible. Patch by Vitor Balbio, changes by me.
----------------------------------
While we are more and more moving towards enabling features in the Python API, it's also important to have Logic Bricks working with no scripts.

This option allows you to start the game with the mouse cursor on (it's on Render Buttons). The defalt is still off (no do_version needed here).

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_game.py
    trunk/blender/source/blender/makesdna/DNA_scene_types.h
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp

Modified: trunk/blender/release/scripts/ui/properties_game.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_game.py	2011-01-23 17:17:21 UTC (rev 34469)
+++ trunk/blender/release/scripts/ui/properties_game.py	2011-01-23 17:25:27 UTC (rev 34470)
@@ -217,7 +217,9 @@
 
         gs = context.scene.game_settings
 
-        layout.prop(gs, "show_fullscreen")
+        row = layout.row()
+        row.prop(gs, "show_fullscreen")
+        row.prop(gs, "show_mouse")
 
         split = layout.split()
 

Modified: trunk/blender/source/blender/makesdna/DNA_scene_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_scene_types.h	2011-01-23 17:17:21 UTC (rev 34469)
+++ trunk/blender/source/blender/makesdna/DNA_scene_types.h	2011-01-23 17:25:27 UTC (rev 34470)
@@ -492,6 +492,7 @@
 #define GAME_GLSL_NO_EXTRA_TEX				(1 << 11)
 #define GAME_IGNORE_DEPRECATION_WARNINGS	(1 << 12)
 #define GAME_ENABLE_ANIMATION_RECORD		(1 << 13)
+#define GAME_SHOW_MOUSE						(1 << 14)
 
 /* GameData.matmode */
 #define GAME_MAT_TEXFACE	0

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-01-23 17:17:21 UTC (rev 34469)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene.c	2011-01-23 17:25:27 UTC (rev 34470)
@@ -1811,6 +1811,10 @@
 	RNA_def_property_boolean_sdna(prop, NULL, "flag", GAME_SHOW_PHYSICS);
 	RNA_def_property_ui_text(prop, "Show Physics Visualization", "Show a visualization of physics bounds and interactions");
 
+	prop= RNA_def_property(srna, "show_mouse", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", GAME_SHOW_MOUSE);
+	RNA_def_property_ui_text(prop, "Show Mouse", "Start player with a visible mouse cursor");
+
 	prop= RNA_def_property(srna, "use_frame_rate", PROP_BOOLEAN, PROP_NONE);
 	RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", GAME_ENABLE_ALL_FRAMES);
 	RNA_def_property_ui_text(prop, "Use Frame Rate", "Respect the frame rate rather than rendering as many frames as possible");

Modified: trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2011-01-23 17:17:21 UTC (rev 34469)
+++ trunk/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2011-01-23 17:25:27 UTC (rev 34470)
@@ -176,11 +176,18 @@
 		bool nodepwarnings = (SYS_GetCommandLineInt(syshandle, "ignore_deprecation_warnings", 0) != 0);
 #endif
 		bool novertexarrays = (SYS_GetCommandLineInt(syshandle, "novertexarrays", 0) != 0);
+		bool mouse_state = startscene->gm.flag & GAME_SHOW_MOUSE;
+
 		if(animation_record) usefixed= true; /* override since you's always want fixed time for sim recording */
 
 		// create the canvas, rasterizer and rendertools
 		RAS_ICanvas* canvas = new KX_BlenderCanvas(win, area_rect, ar);
-		canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE);
+		
+		// default mouse state set on render panel
+		if (mouse_state)
+			canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);
+		else
+			canvas->SetMouseState(RAS_ICanvas::MOUSE_INVISIBLE);
 		RAS_IRenderTools* rendertools = new KX_BlenderRenderTools();
 		RAS_IRasterizer* rasterizer = NULL;
 		

Modified: trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp
===================================================================
--- trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp	2011-01-23 17:17:21 UTC (rev 34469)
+++ trunk/blender/source/gameengine/GamePlayer/ghost/GPG_Application.cpp	2011-01-23 17:25:27 UTC (rev 34470)
@@ -546,7 +546,10 @@
 		if (!m_canvas)
 			return false;
 				
-		m_canvas->Init();				
+		m_canvas->Init();
+		if (gm->flag & GAME_SHOW_MOUSE)
+			m_canvas->SetMouseState(RAS_ICanvas::MOUSE_NORMAL);				
+
 		m_rendertools = new GPC_RenderTools();
 		if (!m_rendertools)
 			goto initFailed;




More information about the Bf-blender-cvs mailing list