some bugs with previous renderlayer api

This commit is contained in:
2008-01-28 00:07:59 +00:00
parent a1f3af3d59
commit b115bd677b
2 changed files with 7 additions and 6 deletions

View File

@@ -1776,7 +1776,7 @@ PyObject *RenderData_getRenderLayers(BPy_RenderData * self)
list = PyList_New(0); list = PyList_New(0);
for(srl= self->renderContext->layers.first; srl; srl= srl->next) { for(srl= self->renderContext->layers.first; srl; srl= srl->next) {
layer = RenderLayer_CreatePyObject( srl ); layer = RenderLayer_CreatePyObject( self->scene, srl );
PyList_Append(list, layer); PyList_Append(list, layer);
Py_DECREF(layer); Py_DECREF(layer);
} }
@@ -1821,7 +1821,7 @@ PyObject *RenderData_removeRenderLayer(BPy_RenderData * self, BPy_RenderLayer *v
PyObject *RenderData_addRenderLayer(BPy_RenderData * self ) { PyObject *RenderData_addRenderLayer(BPy_RenderData * self ) {
scene_add_render_layer(self->scene); 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 ); laymask = ( unsigned int )PyInt_AS_LONG( value );
if( laymask <= 0 ) if((laymask < 0) || (!zlay && laymask == 0))
return EXPP_ReturnIntError( PyExc_ValueError, return EXPP_ReturnIntError( PyExc_ValueError,
"layer value cannot be zero or below" ); "layer value too low" );
if (zlay) { if (zlay) {
self->renderLayer->lay_zmask= laymask & ((1<<20) - 1); self->renderLayer->lay_zmask= laymask & ((1<<20) - 1);
@@ -3569,7 +3569,7 @@ PyTypeObject RenderLayer_Type = {
/* BPy_RenderData Callbacks */ /* BPy_RenderData Callbacks */
/***************************************************************************/ /***************************************************************************/
PyObject *RenderLayer_CreatePyObject( struct SceneRenderLayer * renderLayer ) PyObject *RenderLayer_CreatePyObject( struct Scene * scene, struct SceneRenderLayer * renderLayer )
{ {
BPy_RenderLayer *py_renderlayer; BPy_RenderLayer *py_renderlayer;
@@ -3581,6 +3581,7 @@ PyObject *RenderLayer_CreatePyObject( struct SceneRenderLayer * renderLayer )
return ( NULL ); return ( NULL );
} }
py_renderlayer->renderLayer = renderLayer; py_renderlayer->renderLayer = renderLayer;
py_renderlayer->scene = scene;
return ( ( PyObject * ) py_renderlayer ); return ( ( PyObject * ) py_renderlayer );
} }

View File

@@ -58,5 +58,5 @@ typedef struct {
PyObject *Render_Init( void ); PyObject *Render_Init( void );
PyObject *RenderData_CreatePyObject( struct Scene *scene ); 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 */ #endif /* EXPP_SCENERENDER_H */