[Bf-python] setRenderBorder() patch for BF Blend CVS

Campbell Barton cbarton at metavr.com
Thu May 13 13:15:11 CEST 2004


Here is the patch, it works fine by all accounts and documentation is 
aded too, Needs a Window.Redraw() to show the chatnge, that or 
mousewheel on the camera view- Dont consider this a bug, many blender 
funcs are like this.

Use this python code to test it.


import Blender
from Blender import *
from Blender.Scene import Render

scn = Scene.GetCurrent()
context = scn.getRenderingContext()

context.enableBorderRender(1)
context.setRenderBorder(0.3, 0.4, 0.5, 0.7)



Patch
|
|
v








Index: source/blender/python/api2_2x/sceneRender.c
===================================================================
RCS file: 
/cvsroot/bf-blender/blender/source/blender/python/api2_2x/sceneRender.c,v
retrieving revision 1.2
diff -u -r1.2 sceneRender.c
--- source/blender/python/api2_2x/sceneRender.c    25 Apr 2004 05:18:43 
-0000    1.2
+++ source/blender/python/api2_2x/sceneRender.c    11 May 2004 23:10:58 
-0000
@@ -129,6 +129,7 @@
 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_SetRenderBorder (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 @@
                 "(bool) - enable/disable Gauss sampling filter for 
antialiasing\n"},
     {"enableBorderRender",(PyCFunction)RenderData_EnableBorderRender, 
METH_VARARGS,
                 "(bool) - enable/disable small cut-out rendering\n"},
+    {"setRenderBorder",(PyCFunction)RenderData_SetRenderBorder, 
METH_VARARGS,
+                "(enum) - enable/disable small cut-out 
rendering\n"},               
     
{"enableGammaCorrection",(PyCFunction)RenderData_EnableGammaCorrection, 
METH_VARARGS,
                 "(bool) - enable/disable gamma correction\n"},
     {"gaussFilterSize",(PyCFunction)RenderData_GaussFilterSize, 
METH_VARARGS,
@@ -1035,6 +1038,30 @@
 PyObject *RenderData_EnableBorderRender(BPy_RenderData *self, PyObject 
*args)
 {
     return M_Render_BitToggleInt(args, R_BORDER, 
&self->renderContext->mode);
+}
+//------------------------------------RenderData.SetRenderBorder() 
------------------------------------------
+PyObject *RenderData_SetRenderBorder(BPy_RenderData *self, PyObject *args)
+{
+    float xmin;
+    float ymin;
+    float xmax;
+    float ymax;
+   
+    // return M_Render_BitToggleInt(args, R_BORDER, 
&self->renderContext->mode);
+    if (!PyArg_ParseTuple(args, "ffff", &xmin, &ymin, &xmax, &ymax))
+    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"));
+   
+    G.scene->r.border.xmin= xmin;
+    G.scene->r.border.ymin= ymin;
+    G.scene->r.border.xmax= xmax;
+    G.scene->r.border.ymax= ymax;
+   
+    return EXPP_incr_ret(Py_None);
 }
 //------------------------------------RenderData.EnableGammaCorrection() 
------------------------------------------
 PyObject *RenderData_EnableGammaCorrection(BPy_RenderData *self, 
PyObject *args)
Index: source/blender/python/api2_2x/doc/Render.py
===================================================================
RCS file: 
/cvsroot/bf-blender/blender/source/blender/python/api2_2x/doc/Render.py,v
retrieving revision 1.1
diff -u -r1.1 Render.py
--- source/blender/python/api2_2x/doc/Render.py    2 May 2004 14:29:31 
-0000    1.1
+++ source/blender/python/api2_2x/doc/Render.py    11 May 2004 23:11:00 
-0000
@@ -389,6 +389,20 @@
     @param toggle: pass 1 for on / 0 for off
     """
 
+  def setRenderBorder(xmin, ymin, xmax, ymax):
+    """
+    Set the size of the render border. Passing (0.0, 0.0, 1.0, 1.0) 
will set the border to full size. Enable the render border with 
enableBorderRender(1) for the border to be used.
+    @type xmin: float
+    @type ymin: float
+    @type xmax: float
+    @type ymax: float
+    @param xmin: must be between 0 - 1.0
+    @param ymin: must be between 0 - 1.0 
+    @param xmax: must be between 0 - 1.0
+    @param ymax: must be between 0 - 1.0
+   
+    """
+
   def enableGammaCorrection(toggle):
     """
     Enable/disable gamma correction.




More information about the Bf-python mailing list