[Bf-blender-cvs] [ba0978c] master: BGE: python API cleanup - bge submodules definitions

Ines Almeida noreply at git.blender.org
Tue Feb 3 16:49:09 CET 2015


Commit: ba0978c1a97668fb42a58c3f8479e910e69fd088
Author: Ines Almeida
Date:   Fri Jun 6 08:33:15 2014 +0100
Branches: master
https://developer.blender.org/rBba0978c1a97668fb42a58c3f8479e910e69fd088

BGE: python API cleanup - bge submodules definitions

===================================================================

M	source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
M	source/gameengine/Ketsji/KX_PyConstraintBinding.h
M	source/gameengine/Ketsji/KX_PythonInit.cpp
M	source/gameengine/Ketsji/KX_PythonInit.h
M	source/gameengine/VideoTexture/blendVideoTex.cpp

===================================================================

diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
index e970e87..ccb80fa 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
@@ -734,7 +734,7 @@ static struct PyMethodDef physicsconstraints_methods[] = {
 };
 
 static struct PyModuleDef PhysicsConstraints_module_def = {
-	{}, /* m_base */
+	PyModuleDef_HEAD_INIT,
 	"PhysicsConstraints",  /* m_name */
 	PhysicsConstraints_module_documentation,  /* m_doc */
 	0,  /* m_size */
@@ -745,7 +745,7 @@ static struct PyModuleDef PhysicsConstraints_module_def = {
 	0,  /* m_free */
 };
 
-PyObject *initPythonConstraintBinding()
+PyMODINIT_FUNC initConstraintPythonBinding()
 {
 
 	PyObject *ErrorObject;
@@ -804,7 +804,7 @@ PyObject *initPythonConstraintBinding()
 		Py_FatalError("can't initialize module PhysicsConstraints");
 	}
 
-	return d;
+	return m;
 }
 
 #if 0
diff --git a/source/gameengine/Ketsji/KX_PyConstraintBinding.h b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
index b4a520c..2bf9f7e 100644
--- a/source/gameengine/Ketsji/KX_PyConstraintBinding.h
+++ b/source/gameengine/Ketsji/KX_PyConstraintBinding.h
@@ -36,7 +36,8 @@
 
 #include <Python.h>
 
-PyObject*				initPythonConstraintBinding();
+PyMODINIT_FUNC initConstraintPythonBinding();
+
 void	PHY_SetActiveEnvironment(class	PHY_IPhysicsEnvironment* env);
 PHY_IPhysicsEnvironment*	PHY_GetActiveEnvironment();
 #endif  /* WITH_PYTHON */
diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp
index 641a038..26b9561 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.cpp
+++ b/source/gameengine/Ketsji/KX_PythonInit.cpp
@@ -1568,15 +1568,12 @@ static struct PyModuleDef GameLogic_module_def = {
 	0,  /* m_free */
 };
 
-PyObject *initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack to get gravity hook
+PyMODINIT_FUNC initGameLogicPythonBinding()
 {
 	PyObject *m;
 	PyObject *d;
 	PyObject *item; /* temp PyObject *storage */
 
-	gp_KetsjiEngine = engine;
-	gp_KetsjiScene = scene;
-
 	gUseVisibilityTemp=false;
 
 	PyObjectPlus::ClearDeprecationWarning(); /* Not that nice to call here but makes sure warnings are reset between loading scenes */
@@ -2257,19 +2254,24 @@ void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene *startscene, Main *
 		dictionaryobject= initGamePythonScripting(blenderdata);
 
 	ketsjiengine->SetPyNamespace(dictionaryobject);
-	initRasterizer(ketsjiengine->GetRasterizer(), ketsjiengine->GetCanvas());
-	*gameLogic = initGameLogic(ketsjiengine, startscene);
-
-	/* is set in initGameLogic so only set here if we want it to persist between scenes */
+	gp_Canvas = ketsjiengine->GetCanvas();
+	gp_Rasterizer = ketsjiengine->GetRasterizer();
+	gp_KetsjiEngine = ketsjiengine;
+	gp_KetsjiScene = startscene;
+
+	initGameLogicPythonBinding();
+	initRasterizerPythonBinding();
+	initGameKeysPythonBinding();
+	initConstraintPythonBinding();
+	initVideoTexturePythonBinding();
+
+	*gameLogic = PyDict_GetItemString(PyImport_GetModuleDict(), "GameLogic");
+	/* is set in initGameLogicPythonBinding so only set here if we want it to persist between scenes */
 	if (pyGlobalDict)
 		PyDict_SetItemString(PyModule_GetDict(*gameLogic), "globalDict", pyGlobalDict); // Same as importing the module.
 
 	*gameLogic_keys = PyDict_Keys(PyModule_GetDict(*gameLogic));
 
-	initGameKeys();
-	initPythonConstraintBinding();
-	initVideoTexture();
-
 	/* could be done a lot more nicely, but for now a quick way to get bge.* working */
 	PyRun_SimpleString("sys = __import__('sys');"
 	                   "bge = type(sys)('bge');"
@@ -2293,7 +2295,7 @@ void setupGamePython(KX_KetsjiEngine* ketsjiengine, KX_Scene *startscene, Main *
 }
 
 static struct PyModuleDef Rasterizer_module_def = {
-	{}, /* m_base */
+	PyModuleDef_HEAD_INIT,
 	"Rasterizer",  /* m_name */
 	Rasterizer_module_documentation,  /* m_doc */
 	0,  /* m_size */
@@ -2304,11 +2306,8 @@ static struct PyModuleDef Rasterizer_module_def = {
 	0,  /* m_free */
 };
 
-PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
+PyMODINIT_FUNC initRasterizerPythonBinding()
 {
-	gp_Canvas = canvas;
-	gp_Rasterizer = rasty;
-
 	PyObject *m;
 	PyObject *d;
 
@@ -2358,7 +2357,7 @@ PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
 		Py_FatalError("can't initialize module Rasterizer");
 	}
 
-	return d;
+	return m;
 }
 
 
@@ -2432,7 +2431,7 @@ static struct PyMethodDef gamekeys_methods[] = {
 };
 
 static struct PyModuleDef GameKeys_module_def = {
-	{}, /* m_base */
+	PyModuleDef_HEAD_INIT,
 	"GameKeys",  /* m_name */
 	GameKeys_module_documentation,  /* m_doc */
 	0,  /* m_size */
@@ -2443,7 +2442,7 @@ static struct PyModuleDef GameKeys_module_def = {
 	0,  /* m_free */
 };
 
-PyObject *initGameKeys()
+PyMODINIT_FUNC initGameKeysPythonBinding()
 {
 	PyObject *m;
 	PyObject *d;
@@ -2605,7 +2604,7 @@ PyObject *initGameKeys()
 		Py_FatalError("can't initialize module GameKeys");
 	}
 
-	return d;
+	return m;
 }
 
 // utility function for loading and saving the globalDict
diff --git a/source/gameengine/Ketsji/KX_PythonInit.h b/source/gameengine/Ketsji/KX_PythonInit.h
index e9c94a0..8eaef34 100644
--- a/source/gameengine/Ketsji/KX_PythonInit.h
+++ b/source/gameengine/Ketsji/KX_PythonInit.h
@@ -36,6 +36,9 @@
 #include "STR_String.h"
 #include "MT_Vector3.h"
 
+class KX_KetsjiEngine;
+class KX_Scene;
+
 typedef enum {
 	psl_Lowest = 0,
 	psl_Highest,
@@ -44,10 +47,10 @@ typedef enum {
 extern bool gUseVisibilityTemp;
 
 #ifdef WITH_PYTHON
-PyObject *initGameLogic(class KX_KetsjiEngine *engine, class KX_Scene *ketsjiscene);
-PyObject *initGameKeys();
-PyObject *initRasterizer(class RAS_IRasterizer *rasty,class RAS_ICanvas *canvas);
-PyObject *initVideoTexture(void);
+PyMODINIT_FUNC initGameLogicPythonBinding(void);
+PyMODINIT_FUNC initGameKeysPythonBinding(void);
+PyMODINIT_FUNC initRasterizerPythonBinding(void);
+PyMODINIT_FUNC initVideoTexturePythonBinding(void);
 PyObject *initGamePlayerPythonScripting(struct Main *maggie, int argc, char **argv);
 PyObject *initGamePythonScripting(struct Main *maggie);
 
@@ -68,9 +71,9 @@ void removeImportMain(struct Main *maggie);
 class KX_KetsjiEngine;
 class KX_Scene;
 
-void KX_SetActiveScene(class KX_Scene *scene);
-class KX_Scene *KX_GetActiveScene();
-class KX_KetsjiEngine *KX_GetActiveEngine();
+void KX_SetActiveScene(KX_Scene *scene);
+KX_Scene *KX_GetActiveScene();
+KX_KetsjiEngine *KX_GetActiveEngine();
 
 typedef int (*PyNextFrameFunc)(void *);
 
diff --git a/source/gameengine/VideoTexture/blendVideoTex.cpp b/source/gameengine/VideoTexture/blendVideoTex.cpp
index 014b4c5..50b973d 100644
--- a/source/gameengine/VideoTexture/blendVideoTex.cpp
+++ b/source/gameengine/VideoTexture/blendVideoTex.cpp
@@ -162,7 +162,7 @@ PyDoc_STRVAR(VideoTexture_module_documentation,
 );
 
 static struct PyModuleDef VideoTexture_module_def = {
-	{}, /* m_base */
+	PyModuleDef_HEAD_INIT,
 	"VideoTexture",  /* m_name */
 	VideoTexture_module_documentation,  /* m_doc */
 	0,  /* m_size */
@@ -173,7 +173,7 @@ static struct PyModuleDef VideoTexture_module_def = {
 	0,  /* m_free */
 };
 
-PyObject *initVideoTexture(void)
+PyMODINIT_FUNC initVideoTexturePythonBinding(void)
 {
 	PyObject *m;




More information about the Bf-blender-cvs mailing list