[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41572] trunk/blender/source/gameengine: PyUnicode_From_STR_String utility function which passes STR_String to PyUnicode_FromStringAndSize (saves a call to strlen).
Campbell Barton
ideasman42 at gmail.com
Sun Nov 6 02:39:38 CET 2011
Revision: 41572
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41572
Author: campbellbarton
Date: 2011-11-06 01:39:36 +0000 (Sun, 06 Nov 2011)
Log Message:
-----------
PyUnicode_From_STR_String utility function which passes STR_String to PyUnicode_FromStringAndSize (saves a call to strlen).
Also made CValue::ConvertKeysToPython use faster list creation and improved some of the macro formatting.
Modified Paths:
--------------
trunk/blender/source/gameengine/Converter/BL_ActionActuator.h
trunk/blender/source/gameengine/Converter/BL_ArmatureActuator.h
trunk/blender/source/gameengine/Converter/BL_ArmatureConstraint.h
trunk/blender/source/gameengine/Converter/BL_ArmatureObject.h
trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.h
trunk/blender/source/gameengine/Expressions/Expression.h
trunk/blender/source/gameengine/Expressions/ListValue.h
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_2DFilterActuator.h
trunk/blender/source/gameengine/GameLogic/SCA_ANDController.h
trunk/blender/source/gameengine/GameLogic/SCA_ActuatorSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_AlwaysSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_DelaySensor.h
trunk/blender/source/gameengine/GameLogic/SCA_ExpressionController.h
trunk/blender/source/gameengine/GameLogic/SCA_IController.h
trunk/blender/source/gameengine/GameLogic/SCA_ILogicBrick.h
trunk/blender/source/gameengine/GameLogic/SCA_IObject.h
trunk/blender/source/gameengine/GameLogic/SCA_ISensor.h
trunk/blender/source/gameengine/GameLogic/SCA_JoystickSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_KeyboardSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_MouseSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_NANDController.h
trunk/blender/source/gameengine/GameLogic/SCA_NORController.h
trunk/blender/source/gameengine/GameLogic/SCA_ORController.h
trunk/blender/source/gameengine/GameLogic/SCA_PropertyActuator.h
trunk/blender/source/gameengine/GameLogic/SCA_PropertySensor.h
trunk/blender/source/gameengine/GameLogic/SCA_PythonController.cpp
trunk/blender/source/gameengine/GameLogic/SCA_PythonController.h
trunk/blender/source/gameengine/GameLogic/SCA_PythonKeyboard.h
trunk/blender/source/gameengine/GameLogic/SCA_PythonMouse.h
trunk/blender/source/gameengine/GameLogic/SCA_RandomActuator.h
trunk/blender/source/gameengine/GameLogic/SCA_RandomSensor.h
trunk/blender/source/gameengine/GameLogic/SCA_XNORController.h
trunk/blender/source/gameengine/GameLogic/SCA_XORController.h
trunk/blender/source/gameengine/Ketsji/BL_Shader.h
trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h
trunk/blender/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h
trunk/blender/source/gameengine/Ketsji/KX_ArmatureSensor.h
trunk/blender/source/gameengine/Ketsji/KX_BlenderMaterial.h
trunk/blender/source/gameengine/Ketsji/KX_Camera.h
trunk/blender/source/gameengine/Ketsji/KX_CameraActuator.h
trunk/blender/source/gameengine/Ketsji/KX_ConstraintActuator.h
trunk/blender/source/gameengine/Ketsji/KX_ConstraintWrapper.h
trunk/blender/source/gameengine/Ketsji/KX_FontObject.h
trunk/blender/source/gameengine/Ketsji/KX_GameActuator.h
trunk/blender/source/gameengine/Ketsji/KX_GameObject.cpp
trunk/blender/source/gameengine/Ketsji/KX_GameObject.h
trunk/blender/source/gameengine/Ketsji/KX_IpoActuator.h
trunk/blender/source/gameengine/Ketsji/KX_Light.h
trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.cpp
trunk/blender/source/gameengine/Ketsji/KX_MeshProxy.h
trunk/blender/source/gameengine/Ketsji/KX_MouseFocusSensor.h
trunk/blender/source/gameengine/Ketsji/KX_NavMeshObject.h
trunk/blender/source/gameengine/Ketsji/KX_NearSensor.h
trunk/blender/source/gameengine/Ketsji/KX_ObjectActuator.h
trunk/blender/source/gameengine/Ketsji/KX_ParentActuator.h
trunk/blender/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h
trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.cpp
trunk/blender/source/gameengine/Ketsji/KX_PolyProxy.h
trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.cpp
trunk/blender/source/gameengine/Ketsji/KX_PolygonMaterial.h
trunk/blender/source/gameengine/Ketsji/KX_RadarSensor.h
trunk/blender/source/gameengine/Ketsji/KX_RaySensor.h
trunk/blender/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
trunk/blender/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h
trunk/blender/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h
trunk/blender/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h
trunk/blender/source/gameengine/Ketsji/KX_Scene.cpp
trunk/blender/source/gameengine/Ketsji/KX_Scene.h
trunk/blender/source/gameengine/Ketsji/KX_SceneActuator.h
trunk/blender/source/gameengine/Ketsji/KX_SoundActuator.h
trunk/blender/source/gameengine/Ketsji/KX_StateActuator.h
trunk/blender/source/gameengine/Ketsji/KX_SteeringActuator.h
trunk/blender/source/gameengine/Ketsji/KX_TouchSensor.h
trunk/blender/source/gameengine/Ketsji/KX_TrackToActuator.h
trunk/blender/source/gameengine/Ketsji/KX_VehicleWrapper.h
trunk/blender/source/gameengine/Ketsji/KX_VertexProxy.h
trunk/blender/source/gameengine/Ketsji/KX_VisibilityActuator.h
Modified: trunk/blender/source/gameengine/Converter/BL_ActionActuator.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ActionActuator.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Converter/BL_ActionActuator.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -40,7 +40,7 @@
class BL_ActionActuator : public SCA_IActuator
{
public:
- Py_Header;
+ Py_Header
BL_ActionActuator(SCA_IObject* gameobj,
const STR_String& propname,
const STR_String& framepropname,
@@ -70,8 +70,8 @@
#ifdef WITH_PYTHON
- KX_PYMETHOD_O(BL_ActionActuator,GetChannel);
- KX_PYMETHOD_DOC(BL_ActionActuator,setChannel);
+ KX_PYMETHOD_O(BL_ActionActuator,GetChannel)
+ KX_PYMETHOD_DOC(BL_ActionActuator,setChannel)
static PyObject* pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
static int pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
Modified: trunk/blender/source/gameengine/Converter/BL_ArmatureActuator.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ArmatureActuator.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Converter/BL_ArmatureActuator.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -46,7 +46,7 @@
class BL_ArmatureActuator : public SCA_IActuator
{
- Py_Header;
+ Py_Header
public:
BL_ArmatureActuator(SCA_IObject* gameobj,
int type,
Modified: trunk/blender/source/gameengine/Converter/BL_ArmatureConstraint.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ArmatureConstraint.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Converter/BL_ArmatureConstraint.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -52,7 +52,7 @@
*/
class BL_ArmatureConstraint : public PyObjectPlus
{
- Py_Header;
+ Py_Header
private:
struct bConstraint* m_constraint;
Modified: trunk/blender/source/gameengine/Converter/BL_ArmatureObject.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ArmatureObject.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Converter/BL_ArmatureObject.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -51,7 +51,7 @@
class BL_ArmatureObject : public KX_GameObject
{
- Py_Header;
+ Py_Header
public:
double GetLastFrame ();
Modified: trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.h
===================================================================
--- trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Converter/BL_ShapeActionActuator.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -42,7 +42,7 @@
class BL_ShapeActionActuator : public SCA_IActuator
{
public:
- Py_Header;
+ Py_Header
BL_ShapeActionActuator(SCA_IObject* gameobj,
const STR_String& propname,
const STR_String& framepropname,
Modified: trunk/blender/source/gameengine/Expressions/Expression.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/Expression.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Expressions/Expression.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -24,19 +24,25 @@
//extern int gRefCountExpr; // only for debugging purposes (detect mem.leaks)
-#define PLUGIN_DECLARE_SERIAL_EXPRESSION(class_name,base_class_name) \
-public: \
- virtual base_class_name * Copy() { return new class_name; } \
- virtual bool EdSerialize(CompressorArchive& arch,class CFactoryManager* facmgr,bool bIsStoring); \
- virtual bool EdIdSerialize(CompressorArchive& arch,class CFactoryManager* facmgr,bool bIsStoring) \
-{ \
- if (bIsStoring) \
- { \
- unsigned char exprID = GetExpressionID(); \
- arch << exprID; \
- } \
- return true; \
-} \
+#define PLUGIN_DECLARE_SERIAL_EXPRESSION(class_name, base_class_name) \
+public: \
+ virtual base_class_name * Copy() { \
+ return new class_name; \
+ } \
+ virtual bool EdSerialize(CompressorArchive& arch, \
+ class CFactoryManager* facmgr, \
+ bool bIsStoring); \
+ virtual bool EdIdSerialize(CompressorArchive& arch, \
+ class CFactoryManager* facmgr, \
+ bool bIsStoring) \
+ { \
+ if (bIsStoring) \
+ { \
+ unsigned char exprID = GetExpressionID(); \
+ arch << exprID; \
+ } \
+ return true; \
+ } \
Modified: trunk/blender/source/gameengine/Expressions/ListValue.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/ListValue.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Expressions/ListValue.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -23,7 +23,7 @@
class CListValue : public CPropValue
{
- Py_Header;
+ Py_Header
//PLUGIN_DECLARE_SERIAL (CListValue,CValue)
public:
@@ -58,7 +58,7 @@
void Resize(int num);
void SetValue(int i,CValue* val);
CValue* GetValue(int i){ assertd(i < m_pValueArray.size()); return m_pValueArray[i];}
- int GetCount() { return m_pValueArray.size();};
+ int GetCount() { return m_pValueArray.size(); }
virtual const STR_String & GetText();
bool CheckEqual(CValue* first,CValue* second);
Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.cpp 2011-11-06 01:39:36 UTC (rev 41572)
@@ -470,7 +470,7 @@
case KX_PYATTRIBUTE_TYPE_STRING:
{
STR_String *val = reinterpret_cast<STR_String*>(ptr);
- return PyUnicode_FromString(*val);
+ return PyUnicode_From_STR_String(*val);
}
case KX_PYATTRIBUTE_TYPE_CHAR:
{
@@ -1171,6 +1171,11 @@
return self->m_proxy;
}
+PyObject *PyUnicode_From_STR_String(const STR_String& str)
+{
+ return PyUnicode_FromStringAndSize(str.ReadPtr(), str.Length());
+}
+
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
/* deprecation warning management */
Modified: trunk/blender/source/gameengine/Expressions/PyObjectPlus.h
===================================================================
--- trunk/blender/source/gameengine/Expressions/PyObjectPlus.h 2011-11-06 00:40:26 UTC (rev 41571)
+++ trunk/blender/source/gameengine/Expressions/PyObjectPlus.h 2011-11-06 01:39:36 UTC (rev 41572)
@@ -29,11 +29,12 @@
* \ingroup expressions
*/
+#ifndef _PY_OBJECT_PLUS_H
+#define _PY_OBJECT_PLUS_H
+
/* for now keep weakrefs optional */
#define USE_WEAKREFS
-#ifndef _adr_py_lib_h_ // only process once,
-#define _adr_py_lib_h_ // even if multiply included
#ifndef __cplusplus // c++ only
#error Must be compiled with C++
@@ -45,10 +46,6 @@
#include "SG_QList.h"
#include <stddef.h>
-/*------------------------------
- * Python defines
-------------------------------*/
-
#ifdef WITH_PYTHON
#ifdef USE_MATHUTILS
extern "C" {
@@ -110,7 +107,7 @@
#define BGE_PROXY_PYOWNS(_self) (((PyObjectPlus_Proxy *)_self)->py_owns)
#define BGE_PROXY_PYREF(_self) (((PyObjectPlus_Proxy *)_self)->py_ref)
#ifdef USE_WEAKREFS
- #define BGE_PROXY_WKREF(_self) (((PyObjectPlus_Proxy *)_self)->in_weakreflist)
+# define BGE_PROXY_WKREF(_self) (((PyObjectPlus_Proxy *)_self)->in_weakreflist)
#endif
/* Note, sometimes we dont care what BGE type this is as long as its a proxy */
@@ -124,45 +121,61 @@
// PyC++ class
// AttributesPtr correspond to attributes of proxy generic pointer
// each PyC++ class must be registered in KX_PythonInitTypes.cpp
-#define __Py_Header \
- public: \
- static PyTypeObject Type; \
- static PyMethodDef Methods[]; \
- static PyAttributeDef Attributes[]; \
- virtual PyTypeObject *GetType(void) {return &Type;}; \
- virtual PyObject *GetProxy() {return GetProxyPlus_Ext(this, &Type, NULL);}; \
- virtual PyObject *NewProxy(bool py_owns) {return NewProxyPlus_Ext(this, &Type, NULL, py_owns);}; \
+#define __Py_Header \
+public: \
+ static PyTypeObject Type; \
+ static PyMethodDef Methods[]; \
+ static PyAttributeDef Attributes[]; \
+ virtual PyTypeObject *GetType(void) { \
+ return &Type; \
+ } \
+ virtual PyObject *GetProxy() { \
+ return GetProxyPlus_Ext(this, &Type, NULL); \
+ } \
+ virtual PyObject *NewProxy(bool py_owns) { \
+ return NewProxyPlus_Ext(this, &Type, NULL, py_owns); \
+ } \
// leave above line empty (macro)!
// use this macro for class that use generic pointer in proxy
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list