Blender Git Loki

Git Commits -> Revision fd2b115

Revision fd2b115 by Campbell Barton (master)
April 3, 2009, 14:51 (GMT)
Python BGE API
- Initialize python types with PyType_Ready, which adds methods to the type dictionary.
- use Pythons get/setattro (uses a python string for the attribute rather then char*). Using basic C strings seems nice but internally python converts them to python strings and discards them for most functions that accept char arrays.
- Method lookups use the PyTypes dictionary (should be faster then Py_FindMethod)
- Renamed __getattr -> py_base_getattro, _getattr -> py_getattro, __repr -> py_base_repr, py_delattro, py_getattro_self etc.

From here is possible to put all the parent classes methods into each python types dictionary to avoid nested lookups (api has 4 levels of lookups in some places), tested this but its not ready yet.

Simple tests for getting a method within a loop show this to be between 0.5 and 3.2x faster then using Py_FindMethod()

Commit Details:

Full Hash: fd2b1156783d52dbb7c93c53fe008d9e14cbffdd
SVN Revision: 19519
Parent Commit: e30cb79
Lines Changed: +1384, -905

2 Added Paths:

/source/gameengine/Ketsji/KX_PythonInitTypes.cpp (+204, -0) (View)
/source/gameengine/Ketsji/KX_PythonInitTypes.h (+35, -0) (View)

126 Modified Paths:

/source/gameengine/Converter/BL_ActionActuator.cpp (+19, -13) (Diff)
/source/gameengine/Converter/BL_ActionActuator.h (+2, -2) (Diff)
/source/gameengine/Converter/BL_ShapeActionActuator.cpp (+19, -14) (Diff)
/source/gameengine/Converter/BL_ShapeActionActuator.h (+2, -2) (Diff)
/source/gameengine/Expressions/ListValue.cpp (+10, -7) (Diff)
/source/gameengine/Expressions/ListValue.h (+1, -1) (Diff)
/source/gameengine/Expressions/PyObjectPlus.cpp (+31, -23) (Diff)
/source/gameengine/Expressions/PyObjectPlus.h (+29, -21) (Diff)
/source/gameengine/Expressions/Value.cpp (+21, -15) (Diff)
/source/gameengine/Expressions/Value.h (+4, -4) (Diff)
/source/gameengine/GameLogic/SCA_2DFilterActuator.cpp (+13, -10) (Diff)
/source/gameengine/GameLogic/SCA_2DFilterActuator.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_ActuatorSensor.cpp (+14, -11) (Diff)
/source/gameengine/GameLogic/SCA_ActuatorSensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_AlwaysSensor.cpp (+11, -8) (Diff)
/source/gameengine/GameLogic/SCA_AlwaysSensor.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_ANDController.cpp (+10, -7) (Diff)
/source/gameengine/GameLogic/SCA_ANDController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_DelaySensor.cpp (+15, -12) (Diff)
/source/gameengine/GameLogic/SCA_DelaySensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_ExpressionController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_ILogicBrick.cpp (+15, -12) (Diff)
/source/gameengine/GameLogic/SCA_ILogicBrick.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_IObject.cpp (+11, -8) (Diff)
/source/gameengine/GameLogic/SCA_IObject.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_ISensor.cpp (+19, -14) (Diff)
/source/gameengine/GameLogic/SCA_ISensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_JoystickSensor.cpp (+24, -19) (Diff)
/source/gameengine/GameLogic/SCA_JoystickSensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_KeyboardSensor.cpp (+15, -12) (Diff)
/source/gameengine/GameLogic/SCA_KeyboardSensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_MouseSensor.cpp (+15, -12) (Diff)
/source/gameengine/GameLogic/SCA_MouseSensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_NANDController.cpp (+10, -7) (Diff)
/source/gameengine/GameLogic/SCA_NANDController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_NORController.cpp (+10, -7) (Diff)
/source/gameengine/GameLogic/SCA_NORController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_ORController.cpp (+11, -8) (Diff)
/source/gameengine/GameLogic/SCA_ORController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_PropertyActuator.cpp (+14, -11) (Diff)
/source/gameengine/GameLogic/SCA_PropertyActuator.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_PropertySensor.cpp (+14, -11) (Diff)
/source/gameengine/GameLogic/SCA_PropertySensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_PythonController.cpp (+19, -14) (Diff)
/source/gameengine/GameLogic/SCA_PythonController.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_RandomActuator.cpp (+19, -13) (Diff)
/source/gameengine/GameLogic/SCA_RandomActuator.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_RandomSensor.cpp (+19, -13) (Diff)
/source/gameengine/GameLogic/SCA_RandomSensor.h (+2, -2) (Diff)
/source/gameengine/GameLogic/SCA_XNORController.cpp (+10, -7) (Diff)
/source/gameengine/GameLogic/SCA_XNORController.h (+1, -1) (Diff)
/source/gameengine/GameLogic/SCA_XORController.cpp (+10, -7) (Diff)
/source/gameengine/GameLogic/SCA_XORController.h (+1, -1) (Diff)
/source/gameengine/Ketsji/BL_Shader.cpp (+11, -8) (Diff)
/source/gameengine/Ketsji/BL_Shader.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageSensor.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.cpp (+13, -10) (Diff)
/source/gameengine/Ketsji/KX_BlenderMaterial.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_Camera.cpp (+33, -27) (Diff)
/source/gameengine/Ketsji/KX_Camera.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_CameraActuator.cpp (+19, -15) (Diff)
/source/gameengine/Ketsji/KX_CameraActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_CDActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_CDActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_ConstraintActuator.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_ConstraintActuator.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_ConstraintWrapper.cpp (+12, -9) (Diff)
/source/gameengine/Ketsji/KX_ConstraintWrapper.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_GameActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_GameActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_GameObject.cpp (+15, -13) (Diff)
/source/gameengine/Ketsji/KX_GameObject.h (+3, -3) (Diff)
/source/gameengine/Ketsji/KX_IpoActuator.cpp (+14, -15) (Diff)
/source/gameengine/Ketsji/KX_IpoActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_Light.cpp (+39, -33) (Diff)
/source/gameengine/Ketsji/KX_Light.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_MeshProxy.cpp (+13, -8) (Diff)
/source/gameengine/Ketsji/KX_MeshProxy.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_MouseFocusSensor.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_MouseFocusSensor.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_NearSensor.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_NearSensor.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_ObjectActuator.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_ObjectActuator.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_ParentActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_ParentActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.cpp (+15, -10) (Diff)
/source/gameengine/Ketsji/KX_PhysicsObjectWrapper.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.cpp (+43, -38) (Diff)
/source/gameengine/Ketsji/KX_PolygonMaterial.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_PolyProxy.cpp (+21, -17) (Diff)
/source/gameengine/Ketsji/KX_PolyProxy.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_PythonInit.cpp (+5, -1) (Diff)
/source/gameengine/Ketsji/KX_RadarSensor.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_RadarSensor.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_RaySensor.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_RaySensor.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp (+15, -11) (Diff)
/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_SCA_DynamicActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_SCA_DynamicActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_SCA_EndObjectActuator.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.cpp (+15, -11) (Diff)
/source/gameengine/Ketsji/KX_SCA_ReplaceMeshActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_Scene.cpp (+21, -16) (Diff)
/source/gameengine/Ketsji/KX_Scene.h (+4, -4) (Diff)
/source/gameengine/Ketsji/KX_SceneActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_SceneActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_SoundActuator.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_SoundActuator.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_StateActuator.cpp (+10, -7) (Diff)
/source/gameengine/Ketsji/KX_StateActuator.h (+1, -1) (Diff)
/source/gameengine/Ketsji/KX_TouchSensor.cpp (+21, -16) (Diff)
/source/gameengine/Ketsji/KX_TouchSensor.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_TrackToActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_TrackToActuator.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_VehicleWrapper.cpp (+13, -9) (Diff)
/source/gameengine/Ketsji/KX_VehicleWrapper.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_VertexProxy.cpp (+43, -39) (Diff)
/source/gameengine/Ketsji/KX_VertexProxy.h (+2, -2) (Diff)
/source/gameengine/Ketsji/KX_VisibilityActuator.cpp (+14, -11) (Diff)
/source/gameengine/Ketsji/KX_VisibilityActuator.h (+2, -2) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021