forked from bartvdbraak/blender
BGE: python API cleanup - using PyDoc_STRVAR instead of static char*
Cherry-picking d503f8a onto 117edbb Conflicts: source/gameengine/Ketsji/KX_PythonInit.cpp
This commit is contained in:
parent
95425bc97a
commit
a7b0330c13
@ -56,38 +56,95 @@
|
||||
// if there is a better way (without global), please do so!
|
||||
static PHY_IPhysicsEnvironment* g_CurrentActivePhysicsEnvironment = NULL;
|
||||
|
||||
static char PhysicsConstraints_module_documentation[] =
|
||||
"This is the Python API for the Physics Constraints";
|
||||
|
||||
PyDoc_STRVAR(PhysicsConstraints_module_documentation,
|
||||
"This is the Python API for the Physics Constraints"
|
||||
);
|
||||
|
||||
static char gPySetGravity__doc__[] = "setGravity(float x,float y,float z)";
|
||||
static char gPySetDebugMode__doc__[] = "setDebugMode(int mode)";
|
||||
PyDoc_STRVAR(gPySetGravity__doc__,
|
||||
"setGravity(float x,float y,float z)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPySetDebugMode__doc__,
|
||||
"setDebugMode(int mode)\n"
|
||||
""
|
||||
);
|
||||
|
||||
static char gPySetNumIterations__doc__[] = "setNumIterations(int numiter) This sets the number of iterations for an iterative constraint solver";
|
||||
static char gPySetNumTimeSubSteps__doc__[] = "setNumTimeSubSteps(int numsubstep) This sets the number of substeps for each physics proceed. Tradeoff quality for performance.";
|
||||
PyDoc_STRVAR(gPySetNumIterations__doc__,
|
||||
"setNumIterations(int numiter)\n"
|
||||
"This sets the number of iterations for an iterative constraint solver"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetNumTimeSubSteps__doc__,
|
||||
"setNumTimeSubSteps(int numsubstep)\n"
|
||||
"This sets the number of substeps for each physics proceed. Tradeoff quality for performance."
|
||||
);
|
||||
|
||||
PyDoc_STRVAR(gPySetDeactivationTime__doc__,
|
||||
"setDeactivationTime(float time)\n"
|
||||
"This sets the time after which a resting rigidbody gets deactived"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetDeactivationLinearTreshold__doc__,
|
||||
"setDeactivationLinearTreshold(float linearTreshold)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPySetDeactivationAngularTreshold__doc__,
|
||||
"setDeactivationAngularTreshold(float angularTreshold)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPySetContactBreakingTreshold__doc__,
|
||||
"setContactBreakingTreshold(float breakingTreshold)\n"
|
||||
"Reasonable default is 0.02 (if units are meters)"
|
||||
);
|
||||
|
||||
static char gPySetDeactivationTime__doc__[] = "setDeactivationTime(float time) This sets the time after which a resting rigidbody gets deactived";
|
||||
static char gPySetDeactivationLinearTreshold__doc__[] = "setDeactivationLinearTreshold(float linearTreshold)";
|
||||
static char gPySetDeactivationAngularTreshold__doc__[] = "setDeactivationAngularTreshold(float angularTreshold)";
|
||||
static char gPySetContactBreakingTreshold__doc__[] = "setContactBreakingTreshold(float breakingTreshold) Reasonable default is 0.02 (if units are meters)";
|
||||
|
||||
static char gPySetCcdMode__doc__[] = "setCcdMode(int ccdMode) Very experimental, not recommended";
|
||||
static char gPySetSorConstant__doc__[] = "setSorConstant(float sor) Very experimental, not recommended";
|
||||
static char gPySetSolverTau__doc__[] = "setTau(float tau) Very experimental, not recommended";
|
||||
static char gPySetSolverDamping__doc__[] = "setDamping(float damping) Very experimental, not recommended";
|
||||
static char gPySetLinearAirDamping__doc__[] = "setLinearAirDamping(float damping) Very experimental, not recommended";
|
||||
static char gPySetUseEpa__doc__[] = "setUseEpa(int epa) Very experimental, not recommended";
|
||||
static char gPySetSolverType__doc__[] = "setSolverType(int solverType) Very experimental, not recommended";
|
||||
|
||||
|
||||
static char gPyCreateConstraint__doc__[] = "createConstraint(ob1,ob2,float restLength,float restitution,float damping)";
|
||||
static char gPyGetVehicleConstraint__doc__[] = "getVehicleConstraint(int constraintId)";
|
||||
static char gPyGetCharacter__doc__[] = "getCharacter(KX_GameObject obj)";
|
||||
static char gPyRemoveConstraint__doc__[] = "removeConstraint(int constraintId)";
|
||||
static char gPyGetAppliedImpulse__doc__[] = "getAppliedImpulse(int constraintId)";
|
||||
|
||||
PyDoc_STRVAR(gPySetCcdMode__doc__,
|
||||
"setCcdMode(int ccdMode)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetSorConstant__doc__,
|
||||
"setSorConstant(float sor)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetSolverTau__doc__,
|
||||
"setTau(float tau)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetSolverDamping__doc__,
|
||||
"setDamping(float damping)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetLinearAirDamping__doc__,
|
||||
"setLinearAirDamping(float damping)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetUseEpa__doc__,
|
||||
"setUseEpa(int epa)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
PyDoc_STRVAR(gPySetSolverType__doc__,
|
||||
"setSolverType(int solverType)\n"
|
||||
"Very experimental, not recommended"
|
||||
);
|
||||
|
||||
PyDoc_STRVAR(gPyCreateConstraint__doc__,
|
||||
"createConstraint(ob1,ob2,float restLength,float restitution,float damping)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPyGetVehicleConstraint__doc__,
|
||||
"getVehicleConstraint(int constraintId)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPyGetCharacter__doc__,
|
||||
"getCharacter(KX_GameObject obj)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPyRemoveConstraint__doc__,
|
||||
"removeConstraint(int constraintId)\n"
|
||||
""
|
||||
);
|
||||
PyDoc_STRVAR(gPyGetAppliedImpulse__doc__,
|
||||
"getAppliedImpulse(int constraintId)\n"
|
||||
""
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
@ -223,8 +223,11 @@ static void KX_MACRO_addTypesToDict_fn(PyObject *dict, const char *name, long va
|
||||
// List of methods defined in the module
|
||||
|
||||
static PyObject *ErrorObject;
|
||||
static const char *gPyGetRandomFloat_doc="getRandomFloat returns a random floating point value in the range [0..1]";
|
||||
|
||||
PyDoc_STRVAR(gPyGetRandomFloat_doc,
|
||||
"getRandomFloat()\n"
|
||||
"returns a random floating point value in the range [0..1]"
|
||||
);
|
||||
static PyObject *gPyGetRandomFloat(PyObject *)
|
||||
{
|
||||
return PyFloat_FromDouble(MT_random());
|
||||
@ -242,15 +245,15 @@ static PyObject *gPySetGravity(PyObject *, PyObject *value)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPyExpandPath_doc[] =
|
||||
"(path) - Converts a blender internal path into a proper file system path.\n\
|
||||
path - the string path to convert.\n\n\
|
||||
Use / as directory separator in path\n\
|
||||
You can use '//' at the start of the string to define a relative path;\n\
|
||||
Blender replaces that string by the directory of the current .blend or runtime\n\
|
||||
file to make a full path name.\n\
|
||||
The function also converts the directory separator to the local file system format.";
|
||||
|
||||
PyDoc_STRVAR(gPyExpandPath_doc,
|
||||
"expandPath(path)\n"
|
||||
"Converts a blender internal path into a proper file system path.\n"
|
||||
" path - the string path to convert.\n"
|
||||
"Use / as directory separator in path\n"
|
||||
"You can use '//' at the start of the string to define a relative path."
|
||||
"Blender replaces that string by the directory of the current .blend or runtime file to make a full path name.\n"
|
||||
"The function also converts the directory separator to the local file system format."
|
||||
);
|
||||
static PyObject *gPyExpandPath(PyObject *, PyObject *args)
|
||||
{
|
||||
char expanded[FILE_MAX];
|
||||
@ -264,10 +267,10 @@ static PyObject *gPyExpandPath(PyObject *, PyObject *args)
|
||||
return PyC_UnicodeFromByte(expanded);
|
||||
}
|
||||
|
||||
static char gPyStartGame_doc[] =
|
||||
"startGame(blend)\n\
|
||||
Loads the blend file";
|
||||
|
||||
PyDoc_STRVAR(gPyStartGame_doc,
|
||||
"startGame(blend)\n"
|
||||
"Loads the blend file"
|
||||
);
|
||||
static PyObject *gPyStartGame(PyObject *, PyObject *args)
|
||||
{
|
||||
char* blendfile;
|
||||
@ -281,10 +284,10 @@ static PyObject *gPyStartGame(PyObject *, PyObject *args)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPyEndGame_doc[] =
|
||||
"endGame()\n\
|
||||
Ends the current game";
|
||||
|
||||
PyDoc_STRVAR(gPyEndGame_doc,
|
||||
"endGame()\n"
|
||||
"Ends the current game"
|
||||
);
|
||||
static PyObject *gPyEndGame(PyObject *)
|
||||
{
|
||||
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_QUIT_GAME);
|
||||
@ -294,10 +297,10 @@ static PyObject *gPyEndGame(PyObject *)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPyRestartGame_doc[] =
|
||||
"restartGame()\n\
|
||||
Restarts the current game by reloading the .blend file";
|
||||
|
||||
PyDoc_STRVAR(gPyRestartGame_doc,
|
||||
"restartGame()\n"
|
||||
"Restarts the current game by reloading the .blend file"
|
||||
);
|
||||
static PyObject *gPyRestartGame(PyObject *)
|
||||
{
|
||||
gp_KetsjiEngine->RequestExit(KX_EXIT_REQUEST_RESTART_GAME);
|
||||
@ -306,10 +309,10 @@ static PyObject *gPyRestartGame(PyObject *)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPySaveGlobalDict_doc[] =
|
||||
"saveGlobalDict()\n"
|
||||
"Saves bge.logic.globalDict to a file";
|
||||
|
||||
PyDoc_STRVAR(gPySaveGlobalDict_doc,
|
||||
"saveGlobalDict()\n"
|
||||
"Saves bge.logic.globalDict to a file"
|
||||
);
|
||||
static PyObject *gPySaveGlobalDict(PyObject *)
|
||||
{
|
||||
char marshal_path[512];
|
||||
@ -343,10 +346,10 @@ static PyObject *gPySaveGlobalDict(PyObject *)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPyLoadGlobalDict_doc[] =
|
||||
"LoadGlobalDict()\n"
|
||||
"Loads bge.logic.globalDict from a file";
|
||||
|
||||
PyDoc_STRVAR(gPyLoadGlobalDict_doc,
|
||||
"LoadGlobalDict()\n"
|
||||
"Loads bge.logic.globalDict from a file"
|
||||
);
|
||||
static PyObject *gPyLoadGlobalDict(PyObject *)
|
||||
{
|
||||
char marshal_path[512];
|
||||
@ -384,23 +387,23 @@ static PyObject *gPyLoadGlobalDict(PyObject *)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static char gPyGetProfileInfo_doc[] =
|
||||
PyDoc_STRVAR(gPyGetProfileInfo_doc,
|
||||
"getProfileInfo()\n"
|
||||
"returns a dictionary with profiling information";
|
||||
|
||||
"returns a dictionary with profiling information"
|
||||
);
|
||||
static PyObject *gPyGetProfileInfo(PyObject *)
|
||||
{
|
||||
return gp_KetsjiEngine->GetPyProfileDict();
|
||||
}
|
||||
|
||||
static char gPySendMessage_doc[] =
|
||||
"sendMessage(subject, [body, to, from])\n\
|
||||
sends a message in same manner as a message actuator\
|
||||
subject = Subject of the message\
|
||||
body = Message body\
|
||||
to = Name of object to send the message to\
|
||||
from = Name of object to send the string from";
|
||||
|
||||
PyDoc_STRVAR(gPySendMessage_doc,
|
||||
"sendMessage(subject, [body, to, from])\n"
|
||||
"sends a message in same manner as a message actuator"
|
||||
" subject = Subject of the message"
|
||||
" body = Message body"
|
||||
" to = Name of object to send the message to"
|
||||
" from = Name of object to send the string from"
|
||||
);
|
||||
static PyObject *gPySendMessage(PyObject *, PyObject *args)
|
||||
{
|
||||
char* subject;
|
||||
@ -560,11 +563,12 @@ static PyObject *gPyGetBlendFileList(PyObject *, PyObject *args)
|
||||
return list;
|
||||
}
|
||||
|
||||
static char gPyAddScene_doc[] =
|
||||
"addScene(name, [overlay])\n\
|
||||
adds a scene to the game engine\n\
|
||||
name = Name of the scene\n\
|
||||
overlay = Overlay or underlay";
|
||||
PyDoc_STRVAR(gPyAddScene_doc,
|
||||
"addScene(name, [overlay])\n"
|
||||
"Adds a scene to the game engine.\n"
|
||||
" name = Name of the scene\n"
|
||||
" overlay = Overlay or underlay"
|
||||
);
|
||||
static PyObject *gPyAddScene(PyObject *, PyObject *args)
|
||||
{
|
||||
char* name;
|
||||
@ -578,17 +582,19 @@ static PyObject *gPyAddScene(PyObject *, PyObject *args)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
static const char *gPyGetCurrentScene_doc =
|
||||
PyDoc_STRVAR(gPyGetCurrentScene_doc,
|
||||
"getCurrentScene()\n"
|
||||
"Gets a reference to the current scene.\n";
|
||||
"Gets a reference to the current scene."
|
||||
);
|
||||
static PyObject *gPyGetCurrentScene(PyObject *self)
|
||||
{
|
||||
return gp_KetsjiScene->GetProxy();
|
||||
}
|
||||
|
||||
static const char *gPyGetSceneList_doc =
|
||||
PyDoc_STRVAR(gPyGetSceneList_doc,
|
||||
"getSceneList()\n"
|
||||
"Return a list of converted scenes.\n";
|
||||
"Return a list of converted scenes."
|
||||
);
|
||||
static PyObject *gPyGetSceneList(PyObject *self)
|
||||
{
|
||||
KX_KetsjiEngine* m_engine = KX_GetActiveEngine();
|
||||
@ -1484,6 +1490,9 @@ static PyObject *gPyClearDebugList(PyObject *)
|
||||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(Rasterizer_module_documentation,
|
||||
"This is the Python API for the game engine of Rasterizer"
|
||||
);
|
||||
|
||||
static struct PyMethodDef rasterizer_methods[] = {
|
||||
{"getWindowWidth",(PyCFunction) gPyGetWindowWidth,
|
||||
@ -1541,15 +1550,11 @@ static struct PyMethodDef rasterizer_methods[] = {
|
||||
{ NULL, (PyCFunction) NULL, 0, NULL }
|
||||
};
|
||||
|
||||
// Initialization function for the module (*must* be called initGameLogic)
|
||||
|
||||
static char GameLogic_module_documentation[] =
|
||||
|
||||
PyDoc_STRVAR(GameLogic_module_documentation,
|
||||
"This is the Python API for the game engine of bge.logic"
|
||||
;
|
||||
|
||||
static char Rasterizer_module_documentation[] =
|
||||
"This is the Python API for the game engine of Rasterizer"
|
||||
;
|
||||
);
|
||||
|
||||
static struct PyModuleDef GameLogic_module_def = {
|
||||
{}, /* m_base */
|
||||
@ -1568,12 +1573,12 @@ PyObject *initGameLogic(KX_KetsjiEngine *engine, KX_Scene* scene) // quick hack
|
||||
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 */
|
||||
|
||||
/* Use existing module where possible
|
||||
@ -2104,7 +2109,7 @@ PyObject *initGamePlayerPythonScripting(Main *maggie, int argc, char** argv)
|
||||
* parse from the 'sysconfig' module which is used by 'site',
|
||||
* so for now disable site. alternatively we could copy the file. */
|
||||
if (py_path_bundle != NULL) {
|
||||
Py_NoSiteFlag = 1;
|
||||
Py_NoSiteFlag = 1; /* inhibits the automatic importing of 'site' */
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2303,6 +2308,7 @@ PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
|
||||
{
|
||||
gp_Canvas = canvas;
|
||||
gp_Rasterizer = rasty;
|
||||
|
||||
PyObject *m;
|
||||
PyObject *d;
|
||||
|
||||
@ -2361,13 +2367,14 @@ PyObject *initRasterizer(RAS_IRasterizer* rasty,RAS_ICanvas* canvas)
|
||||
/* GameKeys: symbolic constants for key mapping */
|
||||
/* ------------------------------------------------------------------------- */
|
||||
|
||||
static char GameKeys_module_documentation[] =
|
||||
PyDoc_STRVAR(GameKeys_module_documentation,
|
||||
"This modules provides defines for key-codes"
|
||||
;
|
||||
);
|
||||
|
||||
static char gPyEventToString_doc[] =
|
||||
"EventToString(event) - Take a valid event from the GameKeys module or Keyboard Sensor and return a name"
|
||||
;
|
||||
PyDoc_STRVAR(gPyEventToString_doc,
|
||||
"EventToString(event)\n"
|
||||
"Take a valid event from the GameKeys module or Keyboard Sensor and return a name"
|
||||
);
|
||||
|
||||
static PyObject *gPyEventToString(PyObject *, PyObject *value)
|
||||
{
|
||||
@ -2395,9 +2402,11 @@ static PyObject *gPyEventToString(PyObject *, PyObject *value)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static char gPyEventToCharacter_doc[] =
|
||||
"EventToCharacter(event, is_shift) - Take a valid event from the GameKeys module or Keyboard Sensor and return a character"
|
||||
;
|
||||
|
||||
PyDoc_STRVAR(gPyEventToCharacter_doc,
|
||||
"EventToCharacter(event, is_shift)\n"
|
||||
"Take a valid event from the GameKeys module or Keyboard Sensor and return a character"
|
||||
);
|
||||
|
||||
static PyObject *gPyEventToCharacter(PyObject *, PyObject *args)
|
||||
{
|
||||
@ -2438,7 +2447,7 @@ PyObject *initGameKeys()
|
||||
{
|
||||
PyObject *m;
|
||||
PyObject *d;
|
||||
|
||||
|
||||
/* Use existing module where possible */
|
||||
m = PyImport_ImportModule( "GameKeys" );
|
||||
if (m) {
|
||||
@ -2447,7 +2456,7 @@ PyObject *initGameKeys()
|
||||
}
|
||||
else {
|
||||
PyErr_Clear();
|
||||
|
||||
|
||||
// Create the module and add the functions
|
||||
m = PyModule_Create(&GameKeys_module_def);
|
||||
PyDict_SetItemString(PySys_GetObject("modules"), GameKeys_module_def.m_name, m);
|
||||
|
@ -157,10 +157,14 @@ static void registerAllTypes(void)
|
||||
pyFilterTypes.add(&FilterBGR24Type, "FilterBGR24");
|
||||
}
|
||||
|
||||
PyDoc_STRVAR(VideoTexture_module_documentation,
|
||||
"Module that allows to play video files on textures in GameBlender."
|
||||
);
|
||||
|
||||
static struct PyModuleDef VideoTexture_module_def = {
|
||||
{}, /* m_base */
|
||||
"VideoTexture", /* m_name */
|
||||
"Module that allows to play video files on textures in GameBlender.", /* m_doc */
|
||||
VideoTexture_module_documentation, /* m_doc */
|
||||
0, /* m_size */
|
||||
moduleMethods, /* m_methods */
|
||||
0, /* m_reload */
|
||||
|
Loading…
Reference in New Issue
Block a user