enable compiling without python again

This commit is contained in:
Campbell Barton 2010-03-23 21:37:02 +00:00
parent 6956f6c1c5
commit 377f06082a
4 changed files with 42 additions and 36 deletions

@ -64,11 +64,14 @@
void WM_operator_free(wmOperator *op) void WM_operator_free(wmOperator *op)
{ {
#ifndef DISABLE_PYTHON
if(op->py_instance) { if(op->py_instance) {
/* do this first incase there are any __del__ functions or /* do this first incase there are any __del__ functions or
* similar that use properties */ * similar that use properties */
BPY_DECREF(op->py_instance); BPY_DECREF(op->py_instance);
} }
#endif
if(op->ptr) { if(op->ptr) {
op->properties= op->ptr->data; op->properties= op->ptr->data;

@ -1309,8 +1309,10 @@ void KX_KetsjiEngine::RenderFrame(KX_Scene* scene, KX_Camera* cam)
m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true); m_logger->StartLog(tc_rasterizer, m_kxsystem->GetTimeInSeconds(), true);
SG_SetActiveStage(SG_STAGE_RENDER); SG_SetActiveStage(SG_STAGE_RENDER);
#ifndef DISABLE_PYTHON
// Run any pre-drawing python callbacks // Run any pre-drawing python callbacks
scene->RunDrawingCallbacks(scene->GetPreDrawCB()); scene->RunDrawingCallbacks(scene->GetPreDrawCB());
#endif
scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools); scene->RenderBuckets(camtrans, m_rasterizer, m_rendertools);
@ -1324,7 +1326,9 @@ void KX_KetsjiEngine::PostRenderScene(KX_Scene* scene)
{ {
m_rendertools->MotionBlur(m_rasterizer); m_rendertools->MotionBlur(m_rasterizer);
scene->Render2DFilters(m_canvas); scene->Render2DFilters(m_canvas);
#ifndef DISABLE_PYTHON
scene->RunDrawingCallbacks(scene->GetPostDrawCB()); scene->RunDrawingCallbacks(scene->GetPostDrawCB());
#endif
m_rasterizer->FlushDebugLines(); m_rasterizer->FlushDebugLines();
} }

@ -407,34 +407,6 @@ bool KX_Scene::IsClearingZBuffer()
return m_isclearingZbuffer; return m_isclearingZbuffer;
} }
void KX_Scene::RunDrawingCallbacks(PyObject* cb_list)
{
int len;
if (cb_list && (len=PyList_GET_SIZE(cb_list)))
{
PyObject* args= PyTuple_New(0); // save python creating each call
PyObject* func;
PyObject* ret;
// Iterate the list and run the callbacks
for (int pos=0; pos < len; pos++)
{
func= PyList_GET_ITEM(cb_list, pos);
ret= PyObject_Call(func, args, NULL);
if (ret==NULL) {
PyErr_Print();
PyErr_Clear();
}
else {
Py_DECREF(ret);
}
}
Py_DECREF(args);
}
}
void KX_Scene::EnableZBufferClearing(bool isclearingZbuffer) void KX_Scene::EnableZBufferClearing(bool isclearingZbuffer)
{ {
m_isclearingZbuffer = isclearingZbuffer; m_isclearingZbuffer = isclearingZbuffer;
@ -1657,9 +1629,6 @@ double KX_Scene::getSuspendedDelta()
return m_suspendeddelta; return m_suspendeddelta;
} }
#ifndef DISABLE_PYTHON
#include "KX_BulletPhysicsController.h" #include "KX_BulletPhysicsController.h"
static void MergeScene_LogicBrick(SCA_ILogicBrick* brick, KX_Scene *to) static void MergeScene_LogicBrick(SCA_ILogicBrick* brick, KX_Scene *to)
@ -1855,6 +1824,36 @@ void KX_Scene::Render2DFilters(RAS_ICanvas* canvas)
m_filtermanager.RenderFilters(canvas); m_filtermanager.RenderFilters(canvas);
} }
#ifndef DISABLE_PYTHON
void KX_Scene::RunDrawingCallbacks(PyObject* cb_list)
{
int len;
if (cb_list && (len=PyList_GET_SIZE(cb_list)))
{
PyObject* args= PyTuple_New(0); // save python creating each call
PyObject* func;
PyObject* ret;
// Iterate the list and run the callbacks
for (int pos=0; pos < len; pos++)
{
func= PyList_GET_ITEM(cb_list, pos);
ret= PyObject_Call(func, args, NULL);
if (ret==NULL) {
PyErr_Print();
PyErr_Clear();
}
else {
Py_DECREF(ret);
}
}
Py_DECREF(args);
}
}
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
//Python //Python

@ -291,11 +291,6 @@ public:
RAS_IRasterizer* rasty, RAS_IRasterizer* rasty,
RAS_IRenderTools* rendertools); RAS_IRenderTools* rendertools);
/**
* Run the registered python drawing functions.
*/
void RunDrawingCallbacks(PyObject* cb_list);
/** /**
* Update all transforms according to the scenegraph. * Update all transforms according to the scenegraph.
*/ */
@ -573,6 +568,11 @@ public:
static PyMappingMethods Mapping; static PyMappingMethods Mapping;
static PySequenceMethods Sequence; static PySequenceMethods Sequence;
/**
* Run the registered python drawing functions.
*/
void RunDrawingCallbacks(PyObject* cb_list);
PyObject* GetPreDrawCB() { return m_draw_call_pre; }; PyObject* GetPreDrawCB() { return m_draw_call_pre; };
PyObject* GetPostDrawCB() { return m_draw_call_post; }; PyObject* GetPostDrawCB() { return m_draw_call_post; };
#endif #endif