[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16098] trunk/blender/source/gameengine: game engine python api
Campbell Barton
ideasman42 at gmail.com
Thu Aug 14 05:23:36 CEST 2008
Revision: 16098
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16098
Author: campbellbarton
Date: 2008-08-14 05:23:36 +0200 (Thu, 14 Aug 2008)
Log Message:
-----------
game engine python api
* removed macros that were not used much, some misleading.
* removed error string setting calls that overwrote the error set by PyArg_ParseTuple with a less useful one.
* use python macros Py_RETURN_NONE, Py_RETURN_TRUE, Py_RETURN_FALSE
Modified Paths:
--------------
trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp
trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.cpp
trunk/blender/source/gameengine/Expressions/InputParser.cpp
trunk/blender/source/gameengine/Expressions/ListValue.cpp
trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp
trunk/blender/source/gameengine/Expressions/PyObjectPlus.h
trunk/blender/source/gameengine/Expressions/Value.cpp
trunk/blender/source/gameengine/Expressions/Value.h
trunk/blender/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp
trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.cpp
trunk/blender/source/gameengine/Ketsji/BL_Shader.cpp
trunk/blender/source/gameengine/Ketsji/KX_ConstraintActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp
trunk/blender/source/gameengine/Ketsji/KX_IpoActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp
trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.cpp
trunk/blender/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp
trunk/blender/source/gameengine/Ketsji/KX_PyConstraintBinding.cpp
trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
trunk/blender/source/gameengine/Ketsji/KX_VehicleWrapper.cpp
Modified: trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Converter/BL_ActionActuator.cpp 2008-08-14 03:23:36 UTC (rev 16098)
@@ -484,17 +484,10 @@
PyObject* BL_ActionActuator::PyGetAction(PyObject* self,
PyObject* args,
PyObject* kwds) {
- PyObject *result;
-
if (m_action){
- result = Py_BuildValue("s", m_action->id.name+2);
+ return PyString_FromString(m_action->id.name+2);
}
- else{
- Py_INCREF(Py_None);
- result = Py_None;
- }
-
- return result;
+ Py_RETURN_NONE;
}
/* getProperty */
@@ -640,8 +633,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setStart */
@@ -662,8 +654,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setEnd */
@@ -684,8 +675,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setBlendin */
@@ -707,8 +697,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setBlendtime */
@@ -735,8 +724,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setPriority */
@@ -759,8 +747,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setFrame */
@@ -785,8 +772,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setProperty */
@@ -808,8 +794,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setFrameProperty */
@@ -830,8 +815,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/*
@@ -848,8 +832,7 @@
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
*/
@@ -934,8 +917,7 @@
}
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* getType */
Modified: trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.cpp
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.cpp 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.cpp 2008-08-14 03:23:36 UTC (rev 16098)
@@ -464,17 +464,10 @@
"\tReturns a string containing the name of the current action.\n";
PyObject* BL_ShapeActionActuator::PyGetAction(PyObject* self) {
- PyObject *result;
-
if (m_action){
- result = Py_BuildValue("s", m_action->id.name+2);
+ return PyString_FromString(m_action->id.name+2);
}
- else{
- Py_INCREF(Py_None);
- result = Py_None;
- }
-
- return result;
+ Py_RETURN_NONE;
}
/* getProperty */
@@ -590,13 +583,11 @@
m_blendframe = 0.f;
}
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setStart */
@@ -613,13 +604,11 @@
{
m_startframe = start;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setEnd */
@@ -636,13 +625,11 @@
{
m_endframe = end;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setBlendin */
@@ -660,13 +647,11 @@
{
m_blendin = blendin;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setBlendtime */
@@ -689,13 +674,11 @@
if (m_blendframe>m_blendin)
m_blendframe = m_blendin;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setPriority */
@@ -714,13 +697,11 @@
{
m_priority = priority;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setFrame */
@@ -741,13 +722,11 @@
else if (m_localtime>m_endframe)
m_localtime=m_endframe;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* setProperty */
@@ -765,13 +744,11 @@
{
m_propname = string;
}
- else {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
+ else {
return NULL;
}
- Py_INCREF(Py_None);
- return Py_None;
+ Py_RETURN_NONE;
}
/* getType */
@@ -793,7 +770,6 @@
short typeArg;
if (!PyArg_ParseTuple(args, "h", &typeArg)) {
- PyErr_SetString(PyExc_TypeError, "Invalid arguments");
return NULL;
}
Modified: trunk/blender/source/gameengine/Expressions/InputParser.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/InputParser.cpp 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Expressions/InputParser.cpp 2008-08-14 03:23:36 UTC (rev 16098)
@@ -631,7 +631,8 @@
PyObject* CParserPyMake(PyObject* ignored,PyObject* args)
{
char* txt;
- Py_Try(PyArg_ParseTuple(args,"s",&txt));
+ if (!PyArg_ParseTuple(args,"s",&txt))
+ return NULL;
CParser parser;
CExpression* expr = parser.ProcessText(txt);
CValue* val = expr->Calculate();
@@ -641,7 +642,7 @@
static PyMethodDef CParserMethods[] =
{
- { "calc", CParserPyMake , Py_NEWARGS},
+ { "calc", CParserPyMake , METH_VARARGS},
{ NULL,NULL} // Sentinel
};
Modified: trunk/blender/source/gameengine/Expressions/ListValue.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/ListValue.cpp 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Expressions/ListValue.cpp 2008-08-14 03:23:36 UTC (rev 16098)
@@ -43,7 +43,7 @@
return ((CListValue*) list)->GetValue(index)->AddRef();
}
- Py_Error(PyExc_IndexError, "Python ListIndex out of range");
+ PyErr_SetString(PyExc_IndexError, "Python ListIndex out of range");
return NULL;
}
@@ -130,9 +130,10 @@
}
}
- if (error)
- Py_Error(PyExc_SystemError, "Python Error: couldn't add one or more items to a list");
-
+ if (error) {
+ PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add one or more items to a list");
+ return NULL;
+ }
} else
{
@@ -155,8 +156,8 @@
listval->Add(objval);
} else
{
- Py_Error(PyExc_SystemError, "Python Error: couldn't add item to a list");
- // bad luck
+ PyErr_SetString(PyExc_SystemError, "Python Error: couldn't add item to a list");
+ return NULL;
}
}
}
Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp 2008-08-14 03:23:36 UTC (rev 16098)
@@ -94,7 +94,7 @@
* PyObjectPlus Methods -- Every class, even the abstract one should have a Methods
------------------------------*/
PyMethodDef PyObjectPlus::Methods[] = {
- {"isA", (PyCFunction) sPy_isA, Py_NEWARGS},
+ {"isA", (PyCFunction) sPy_isA, METH_VARARGS},
{NULL, NULL} /* Sentinel */
};
@@ -134,7 +134,8 @@
------------------------------*/
PyObject *PyObjectPlus::_repr(void)
{
- Py_Error(PyExc_SystemError, "Representation not overridden by object.");
+ PyErr_SetString(PyExc_SystemError, "Representation not overridden by object.");
+ return NULL;
}
/*------------------------------
@@ -164,11 +165,12 @@
PyObject *PyObjectPlus::Py_isA(PyObject *args) // Python wrapper for isA
{
char *mytypename;
- Py_Try(PyArg_ParseTuple(args, "s", &mytypename));
+ if (!PyArg_ParseTuple(args, "s", &mytypename))
+ return NULL;
if(isA(mytypename))
- {Py_INCREF(Py_True); return Py_True;}
+ Py_RETURN_TRUE;
else
- {Py_INCREF(Py_False); return Py_False;};
+ Py_RETURN_FALSE;
}
#endif //NO_EXP_PYTHON_EMBEDDING
Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.h 2008-08-14 03:05:13 UTC (rev 16097)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.h 2008-08-14 03:23:36 UTC (rev 16098)
@@ -44,23 +44,8 @@
------------------------------*/
// some basic python macros
-#define Py_NEWARGS 1
#define Py_Return { Py_INCREF(Py_None); return Py_None;}
-static inline PyObject* Py_Success(bool truth)
-{
- if (truth)
- {
- Py_INCREF(Py_True);
- return Py_True;
- }
- Py_INCREF(Py_False);
- return Py_False;
-}
-#define Py_Error(E, M) {PyErr_SetString(E, M); return NULL;}
-#define Py_Try(F) {if (!(F)) return NULL;}
-#define Py_Assert(A,E,M) {if (!(A)) {PyErr_SetString(E, M); return NULL;}}
-
static inline void Py_Fatal(char *M) {
//cout << M << endl;
exit(-1);
Modified: trunk/blender/source/gameengine/Expressions/Value.cpp
===================================================================
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list