[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21204] branches/blender2.5/blender/source /gameengine/BlenderRoutines: BGE Redraw problem:

Campbell Barton ideasman42 at gmail.com
Sun Jun 28 01:54:20 CEST 2009


Revision: 21204
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21204
Author:   campbellbarton
Date:     2009-06-28 01:54:20 +0200 (Sun, 28 Jun 2009)

Log Message:
-----------
BGE Redraw problem:
at the moment only files from blender 2.4x will display in 2.5x, compared area and window structs in both cases and dont see any differences.

This doesnt fix the problem but corrects a few things related to window drawing with the BGE,
also adds a hack because I noticed the window and area pointers in the KX_BlenderCanvas were offset after initialized, maybe need to use <static cast> ?

Modified Paths:
--------------
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/CMakeLists.txt
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
    branches/blender2.5/blender/source/gameengine/BlenderRoutines/SConscript

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2009-06-27 23:16:29 UTC (rev 21203)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp	2009-06-27 23:54:20 UTC (rev 21204)
@@ -65,6 +65,14 @@
 
 #include "SYS_System.h"
 
+#include "GPU_extensions.h"
+#include "Value.h"
+
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
 	/***/
 #include "DNA_view3d_types.h"
 #include "DNA_screen_types.h"
@@ -77,21 +85,13 @@
 //XXX #include "BIF_scrarea.h"
 
 #include "BKE_main.h"
-//#include "BKE_context.h"
 #include "BLI_blenlib.h"
 #include "BLO_readfile.h"
 #include "DNA_scene_types.h"
 	/***/
 
-#include "GPU_extensions.h"
-#include "Value.h"
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
 //XXX #include "BSE_headerbuttons.h"
+#include "BKE_context.h"
 #include "../../blender/windowmanager/WM_types.h"
 #include "../../blender/windowmanager/wm_window.h"
 #include "../../blender/windowmanager/wm_event_system.h"
@@ -118,19 +118,10 @@
 	return bfd;
 }
 
-
-/* screw it, BKE_context.h is complaining! */
-extern "C" struct wmWindow *CTX_wm_window(const bContext *C);
-extern "C" struct ScrArea *CTX_wm_area(const bContext *C);
-extern "C" struct ARegion *CTX_wm_region(const bContext *C);
-extern "C" struct Scene *CTX_data_scene(const bContext *C);
-extern "C" struct Main *CTX_data_main(const bContext *C);
-
 extern "C" void StartKetsjiShell(struct bContext *C, int always_use_expand_framing)
 {
 	/* context values */
 	struct wmWindow *win= CTX_wm_window(C);
-	struct ScrArea *area= CTX_wm_area(C); // curarea
 	struct ARegion *ar= CTX_wm_region(C);
 	struct Scene *scene= CTX_data_scene(C);
 	struct Main* maggie1= CTX_data_main(C);
@@ -159,8 +150,8 @@
 
 	do
 	{
-		View3D *v3d= (View3D*) area->spacedata.first;
-		RegionView3D *rv3d= (RegionView3D*) ar->regiondata;
+		View3D *v3d= CTX_wm_view3d(C);
+		RegionView3D *rv3d= CTX_wm_region_view3d(C);
 
 		// get some preferences
 		SYS_SystemHandle syshandle = SYS_GetSystem();
@@ -239,13 +230,12 @@
 			scene->camera= v3d->camera;
 		}
 
-	
 		// some blender stuff
 		MT_CmMatrix4x4 projmat;
 		MT_CmMatrix4x4 viewmat;
 		float camzoom;
 		int i;
-		
+
 		for (i = 0; i < 16; i++)
 		{
 			float *viewmat_linear= (float*) rv3d->viewmat;
@@ -257,7 +247,7 @@
 			projmat.setElem(i, projmat_linear[i]);
 		}
 		
-		if(v3d->persp==V3D_CAMOB) {
+		if(rv3d->persp==V3D_CAMOB) {
 			camzoom = (1.41421 + (rv3d->camzoom / 50.0));
 			camzoom *= camzoom;
 		}
@@ -348,10 +338,10 @@
 		
 		if (exitrequested != KX_EXIT_REQUEST_QUIT_GAME)
 		{
-			if (v3d->persp != V3D_CAMOB)
+			if (rv3d->persp != V3D_CAMOB)
 			{
 				ketsjiengine->EnableCameraOverride(startscenename);
-				ketsjiengine->SetCameraOverrideUseOrtho((v3d->persp == V3D_ORTHO));
+				ketsjiengine->SetCameraOverrideUseOrtho((rv3d->persp == V3D_ORTHO));
 				ketsjiengine->SetCameraOverrideProjectionMatrix(projmat);
 				ketsjiengine->SetCameraOverrideViewMatrix(viewmat);
 				ketsjiengine->SetCameraOverrideClipping(v3d->near, v3d->far);
@@ -587,7 +577,6 @@
 }
 
 extern "C" void StartKetsjiShellSimulation(struct wmWindow *win,
-								 struct ScrArea *area,
 								 struct ARegion *ar,
 								 char* scenename,
 								 struct Main* maggie,

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/CMakeLists.txt
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/CMakeLists.txt	2009-06-27 23:16:29 UTC (rev 21203)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/CMakeLists.txt	2009-06-27 23:54:20 UTC (rev 21204)
@@ -19,7 +19,8 @@
   ../../../source/blender/windowmanager
   ../../../source/blender 
   ../../../source/blender/include
-  ../../../source/blender/makesdna 
+  ../../../source/blender/makesdna
+  ../../../source/blender/makesrna 
   ../../../source/gameengine/Rasterizer 
   ../../../source/gameengine/GameLogic
   ../../../source/gameengine/Expressions 

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp	2009-06-27 23:16:29 UTC (rev 21203)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.cpp	2009-06-27 23:54:20 UTC (rev 21204)
@@ -28,15 +28,23 @@
 
 #include "KX_BlenderCanvas.h"
 #include "DNA_screen_types.h"
+#include "stdio.h"
 
 #ifdef HAVE_CONFIG_H
 #include <config.h>
 #endif
 
+// temp hack, prevents pointers being offset somehow, will need to look into this later - Campbell
+ARegion *m_ar;
+wmWindow *m_win;
+
+
 KX_BlenderCanvas::KX_BlenderCanvas(struct wmWindow *win, ARegion *ar) :
-m_win(win),
-m_ar(ar)
+__m_win(win),
+__m_ar(ar)
 {
+	m_ar= ar;
+	m_win= win;
 }
 
 KX_BlenderCanvas::~KX_BlenderCanvas()

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h	2009-06-27 23:16:29 UTC (rev 21203)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/KX_BlenderCanvas.h	2009-06-27 23:54:20 UTC (rev 21204)
@@ -163,8 +163,8 @@
 
 private:
 	/** Blender area the game engine is running within */
-	struct ARegion* m_ar;
-	struct wmWindow* m_win;
+	struct ARegion* __m_ar;
+	struct wmWindow* __m_win;
 	RAS_Rect 	m_area_rect;
 };
 

Modified: branches/blender2.5/blender/source/gameengine/BlenderRoutines/SConscript
===================================================================
--- branches/blender2.5/blender/source/gameengine/BlenderRoutines/SConscript	2009-06-27 23:16:29 UTC (rev 21203)
+++ branches/blender2.5/blender/source/gameengine/BlenderRoutines/SConscript	2009-06-27 23:54:20 UTC (rev 21204)
@@ -11,7 +11,8 @@
 incs += ' #intern/moto/include #source/gameengine/Ketsji #source/blender/blenlib'
 incs += ' #source/blender/blenkernel #source/blender'
 incs += ' #source/blender/blenfont #source/blender/editors/include'
-incs += ' #source/blender/makesdna #source/gameengine/Rasterizer #source/gameengine/GameLogic'
+incs += ' #source/blender/makesdna #source/blender/makesrna'
+incs += ' #source/gameengine/Rasterizer #source/gameengine/GameLogic'
 incs += ' #source/gameengine/Expressions #source/gameengine/Network'
 incs += ' #source/gameengine/SceneGraph #source/gameengine/Physics/common'
 incs += ' #source/gameengine/Physics/Bullet'





More information about the Bf-blender-cvs mailing list