Commit: 0e0af4f77222002ddf029095ca36fea71c9ab049 Author: Ines Almeida Date: Mon Jan 12 20:10:07 2015 +0100 Branches: master https://developer.blender.org/rB0e0af4f77222002ddf029095ca36fea71c9ab049
BGE: python API cleanup - adding proper initialization to GameTypes =================================================================== M source/gameengine/Ketsji/KX_PythonInitTypes.cpp M source/gameengine/Ketsji/KX_PythonInitTypes.h =================================================================== diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp index 7d38ce5..5c1ad56 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.cpp +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.cpp @@ -171,8 +171,10 @@ void initPyTypes(void) * ..... */ + /* Use existing module where possible */ + PyObject *mod = initGameTypesPythonBinding(); + /* For now just do PyType_Ready */ - PyObject *mod = PyModule_New("GameTypes"); PyObject *dict = PyModule_GetDict(mod); PyDict_SetItemString(PySys_GetObject("modules"), "GameTypes", mod); Py_DECREF(mod); @@ -269,4 +271,42 @@ void initPyTypes(void) #endif } + +PyDoc_STRVAR(GameTypes_module_documentation, +"This module provides access to the game engine data types." +); +static struct PyModuleDef GameTypes_module_def = { + PyModuleDef_HEAD_INIT, + "GameTypes", /* m_name */ + GameTypes_module_documentation, /* m_doc */ + 0, /* m_size */ + NULL, /* m_methods */ + NULL, /* m_reload */ + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL, /* m_free */ +}; + + +PyMODINIT_FUNC initGameTypesPythonBinding(void) +{ + PyObject *m; + + /* Use existing module where possible */ + m = PyImport_ImportModule( "GameTypes" ); + if (m) { + Py_DECREF(m); + return m; + } + else { + PyErr_Clear(); + + // Create the module and add the functions + m = PyModule_Create(&GameTypes_module_def); + PyDict_SetItemString(PySys_GetObject("modules"), GameTypes_module_def.m_name, m); + } + + return m; +} + #endif // WITH_PYTHON diff --git a/source/gameengine/Ketsji/KX_PythonInitTypes.h b/source/gameengine/Ketsji/KX_PythonInitTypes.h index d8ee4f7..4d7d26f 100644 --- a/source/gameengine/Ketsji/KX_PythonInitTypes.h +++ b/source/gameengine/Ketsji/KX_PythonInitTypes.h @@ -33,7 +33,9 @@ #define __KX_PYTHON_INIT_TYPES__ #ifdef WITH_PYTHON +#include <Python.h> void initPyTypes(void); +PyMODINIT_FUNC initGameTypesPythonBinding(void); #endif #endif /* __KX_PYTHON_INIT_TYPES__ */ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs