From b115bd677b1aed98f9534898dfaf09f8c6fc0adc Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 28 Jan 2008 00:07:59 +0000 Subject: [PATCH] some bugs with previous renderlayer api --- source/blender/python/api2_2x/sceneRender.c | 11 ++++++----- source/blender/python/api2_2x/sceneRender.h | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/source/blender/python/api2_2x/sceneRender.c b/source/blender/python/api2_2x/sceneRender.c index 224a3dc0d2b..1e0997630a1 100644 --- a/source/blender/python/api2_2x/sceneRender.c +++ b/source/blender/python/api2_2x/sceneRender.c @@ -1776,7 +1776,7 @@ PyObject *RenderData_getRenderLayers(BPy_RenderData * self) list = PyList_New(0); for(srl= self->renderContext->layers.first; srl; srl= srl->next) { - layer = RenderLayer_CreatePyObject( srl ); + layer = RenderLayer_CreatePyObject( self->scene, srl ); PyList_Append(list, layer); Py_DECREF(layer); } @@ -1821,7 +1821,7 @@ PyObject *RenderData_removeRenderLayer(BPy_RenderData * self, BPy_RenderLayer *v PyObject *RenderData_addRenderLayer(BPy_RenderData * self ) { scene_add_render_layer(self->scene); - return RenderLayer_CreatePyObject( self->renderContext->layers.last ); + return RenderLayer_CreatePyObject( self->scene, self->renderContext->layers.last ); } @@ -3209,9 +3209,9 @@ static int RenderLayer_setLayers( BPy_RenderLayer * self, PyObject * value, void laymask = ( unsigned int )PyInt_AS_LONG( value ); - if( laymask <= 0 ) + if((laymask < 0) || (!zlay && laymask == 0)) return EXPP_ReturnIntError( PyExc_ValueError, - "layer value cannot be zero or below" ); + "layer value too low" ); if (zlay) { self->renderLayer->lay_zmask= laymask & ((1<<20) - 1); @@ -3569,7 +3569,7 @@ PyTypeObject RenderLayer_Type = { /* BPy_RenderData Callbacks */ /***************************************************************************/ -PyObject *RenderLayer_CreatePyObject( struct SceneRenderLayer * renderLayer ) +PyObject *RenderLayer_CreatePyObject( struct Scene * scene, struct SceneRenderLayer * renderLayer ) { BPy_RenderLayer *py_renderlayer; @@ -3581,6 +3581,7 @@ PyObject *RenderLayer_CreatePyObject( struct SceneRenderLayer * renderLayer ) return ( NULL ); } py_renderlayer->renderLayer = renderLayer; + py_renderlayer->scene = scene; return ( ( PyObject * ) py_renderlayer ); } diff --git a/source/blender/python/api2_2x/sceneRender.h b/source/blender/python/api2_2x/sceneRender.h index 5127c05e271..1200bb87af2 100644 --- a/source/blender/python/api2_2x/sceneRender.h +++ b/source/blender/python/api2_2x/sceneRender.h @@ -58,5 +58,5 @@ typedef struct { PyObject *Render_Init( void ); PyObject *RenderData_CreatePyObject( struct Scene *scene ); -PyObject *RenderLayer_CreatePyObject( struct SceneRenderLayer * renderLayer ); +PyObject *RenderLayer_CreatePyObject( struct Scene *scene, struct SceneRenderLayer * renderLayer ); #endif /* EXPP_SCENERENDER_H */