diff options
author | Joseph Gilbert <ascotan@gmail.com> | 2004-05-15 18:32:21 +0400 |
---|---|---|
committer | Joseph Gilbert <ascotan@gmail.com> | 2004-05-15 18:32:21 +0400 |
commit | b4ecf7d973d2a89162fea1571cbc0fbd565cf946 (patch) | |
tree | 8cdf5b74d5058e42ef34a3a0407cd086f8f08bf2 /source | |
parent | 23637ccdd7befb3105f9f629b9ab86f0ba8d16b3 (diff) |
- added setBorder() to renderingContext to set border render rects from python.
- updated sizePreset() to deal with borders.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/python/api2_2x/sceneRender.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/source/blender/python/api2_2x/sceneRender.c b/source/blender/python/api2_2x/sceneRender.c index ab1b77a7be1..26c9f645917 100644 --- a/source/blender/python/api2_2x/sceneRender.c +++ b/source/blender/python/api2_2x/sceneRender.c @@ -129,6 +129,7 @@ static PyObject *RenderData_EnableOddFieldFirst (BPy_RenderData *self, PyObject static PyObject *RenderData_EnableFieldTimeDisable (BPy_RenderData *self, PyObject *args); static PyObject *RenderData_EnableGaussFilter (BPy_RenderData*self, PyObject *args); static PyObject *RenderData_EnableBorderRender (BPy_RenderData*self, PyObject *args); +static PyObject *RenderData_SetBorder(BPy_RenderData *self, PyObject *args); static PyObject *RenderData_EnableGammaCorrection (BPy_RenderData *self, PyObject *args); static PyObject *RenderData_GaussFilterSize (BPy_RenderData*self, PyObject *args); static PyObject *RenderData_StartFrame (BPy_RenderData*self, PyObject *args); @@ -263,6 +264,8 @@ static PyMethodDef BPy_RenderData_methods[] = { "(bool) - enable/disable Gauss sampling filter for antialiasing\n"}, {"enableBorderRender",(PyCFunction)RenderData_EnableBorderRender, METH_VARARGS, "(bool) - enable/disable small cut-out rendering\n"}, + {"setBorder",(PyCFunction)RenderData_SetBorder, METH_VARARGS, + "(f,f,f,f) - set the border for border rendering\n"}, {"enableGammaCorrection",(PyCFunction)RenderData_EnableGammaCorrection, METH_VARARGS, "(bool) - enable/disable gamma correction\n"}, {"gaussFilterSize",(PyCFunction)RenderData_GaussFilterSize, METH_VARARGS, @@ -1036,6 +1039,44 @@ PyObject *RenderData_EnableBorderRender(BPy_RenderData *self, PyObject *args) { return M_Render_BitToggleInt(args, R_BORDER, &self->renderContext->mode); } +//------------------------------------RenderData.SetBorder() --------------------------------------------------------- +PyObject *RenderData_SetBorder(BPy_RenderData *self, PyObject *args) +{ + float xmin, ymin, xmax, ymax; + int status = 0; + PyObject *ob_args; + + //left,botton | right,top coords - in that order + if (PyObject_Length (args) == 4) { + status = PyArg_ParseTuple (args, "ffff", &xmin, &ymin, &xmax, &ymax); + }else{ + if ( PyArg_ParseTuple (args, "O", &ob_args)){ + if(PyList_Check(ob_args)) + status = PyArg_ParseTuple (args, "(ffff)", &xmin, &ymin, &xmax, &ymax); + else{ + status = 0; + } + }else{ + status = 0; + } + } + if( !status) /* parsing args failed */ + return ( EXPP_ReturnPyObjError( PyExc_AttributeError, + "expected four floats")); + if ( xmin > 1.0 || xmin < 0.0 || ymin > 1.0 || ymin < 0.0 || + xmax > 1.0 || xmax < 0.0 || ymax > 1.0 || ymax < 0.0) + return (EXPP_ReturnPyObjError (PyExc_AttributeError, + "all values must be between 0.0 and 1.0")); + + self->renderContext->border.xmin = xmin; + self->renderContext->border.ymin = ymin; + self->renderContext->border.xmax = xmax; + self->renderContext->border.ymax = ymax; + + allqueue(REDRAWVIEWCAM, 1); + + return EXPP_incr_ret(Py_None); +} //------------------------------------RenderData.EnableGammaCorrection() ------------------------------------------ PyObject *RenderData_EnableGammaCorrection(BPy_RenderData *self, PyObject *args) { @@ -1197,35 +1238,43 @@ PyObject *RenderData_SizePreset(BPy_RenderData *self, PyObject *args) M_Render_DoSizePreset(self,720,576,54,51,100, self->renderContext->xparts, self->renderContext->yparts, 25, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_NTSC){ M_Render_DoSizePreset(self,720,480,10,11,100, 1, 1, 30, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_PRESET){ M_Render_DoSizePreset(self,720,576,54,51,100, 1, 1, self->renderContext->frs_sec, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode= R_OSA+R_SHADOW+R_FIELDS; self->renderContext->imtype= R_TARGA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_PRV){ M_Render_DoSizePreset(self,640,512,1,1,50, 1, 1, self->renderContext->frs_sec, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_PC){ M_Render_DoSizePreset(self,640,480,100,100,100, 1, 1, self->renderContext->frs_sec, 0.0, 1.0, 0.0, 1.0); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.0, 1.0, 0.0, 1.0); }else if (type == B_PR_PAL169){ M_Render_DoSizePreset(self,720,576,64,45,100, 1, 1, 25, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_PANO){ M_Render_DoSizePreset(self,36,176,115,100,100, 16, 1, self->renderContext->frs_sec, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode |= R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else if (type == B_PR_FULL){ M_Render_DoSizePreset(self,1280,1024,1,1,100, 1, 1, self->renderContext->frs_sec, 0.1, 0.9, 0.1, 0.9); self->renderContext->mode &= ~R_PANORAMA; + BLI_init_rctf(&self->renderContext->safety, 0.1, 0.9, 0.1, 0.9); }else return (EXPP_ReturnPyObjError (PyExc_AttributeError, "unknown constant - see modules dict for help")); |