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

Joseph Gilbert models at paposo.com
Fri May 14 02:46:49 CEST 2004


I'll go ahead an test this and commit it. Good work :)

-----Original Message-----
From: bf-python-admin at blender.org [mailto:bf-python-admin at blender.org]On
Behalf Of Campbell Barton
Sent: Thursday, May 13, 2004 7:15 AM
To: bf-python at blender.org
Subject: [Bf-python] setRenderBorder() patch for BF Blend CVS


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.

_______________________________________________
Bf-python mailing list
Bf-python at blender.org
http://www.blender.org/mailman/listinfo/bf-python





More information about the Bf-python mailing list