updated render settings to support recent changes.

options like saveBuffers are available from Python and threads can be set from 1 to 8
usefull for python based renderfarms.
This commit is contained in:
Campbell Barton 2007-01-30 03:02:58 +00:00
parent 9c1ae55017
commit dcc834f3fa
3 changed files with 76 additions and 24 deletions

@ -181,7 +181,7 @@ def imageFromObjectsOrtho(objects, path, width, height, smooth, alpha= True, cam
Blender.Window.RedrawAll()
render_context.threads= True # good for dual core cpu's
render_context.threads= 2 # good for dual core cpu's
render_context.render()
render_context.saveRenderedImage(path)
Render.CloseRenderWindow()

@ -54,7 +54,7 @@ boolean attributes.
- MBLUR: Motion blur enabled
- UNIFIED: Unified Renderer enabled
- RAYTRACING: Ray tracing enabled
- THREADS: Render in two threads enabled
- THREADS: Render in two threads enabled (Deprecated, use L{RenderData.threads})
@type SceModes: readonly dictionary
@var SceModes: Constant dict used for with L{RenderData.sceneMode} bitfield attribute.
@ -62,6 +62,8 @@ Values can be ORed together. Individual bits can also be set/cleared with
boolean attributes.
- SEQUENCER: Enables sequencer output rendering.
- EXTENSION: Adds extensions to the output when rendering animations.
- SAVE_BUFFERS: Save render tiles to disk to save memory.
- FREE_IMAGES: Free images used by textures after each render.
@type FramingModes: readonly dictionary
@var FramingModes: Constant dict used for with L{RenderData.gameFrame}
@ -215,9 +217,8 @@ class RenderData:
Valid values are 0 (display in image editor view), 1 (display in render
window), or 2 (display full screen).
@type displayMode: int
@ivar threads: Render in two threads enabled.
Also see B{THREADS} in L{Modes} constant dict.
@type threads: boolean
@ivar threads: Number of threads to render, clamed [1-8]
@type threads: int
@ivar backbufPath: Path to a background image (setting loads image).
@type backbufPath: string
@ivar toonShading: Toon edge shading enabled.
@ -229,18 +230,33 @@ class RenderData:
@ivar gameFrameColor: RGB color triplet for bars.
Values are clamped in the range [0.0,1.0].
@type gameFrameColor: list of RGB 3 floats
@ivar extensions: Add extensions to output (when rendering animations).
Also see B{EXTENSION} in L{SceModes} constant dict.
@type extensions: boolean
@ivar saveBuffers: Save tiles for all renderlayers to disk saving memory.
Also see B{SAVE_BUFFERS} in L{SceModes} constant dict.
@type saveBuffers: boolean
@ivar sizeY: Image height (in pixels).
Values are clamped to the range [4,10000].
@type sizeY: int
@ivar renderer: Rendering engine choice.
Valid values are 0 (internal) or 1 (Yafray).
@type renderer: int
@ivar sequencer: Enables sequencer output rendering.
Also see B{SEQUENCER} in L{SceModes} constant dict.
@type sequencer: boolean
@ivar extensions: Add extensions to output (when rendering animations).
Also see B{EXTENSION} in L{SceModes} constant dict.
@type extensions: boolean
@ivar compositor: 'Do Compositor' enabled.
@type compositor: boolean
@ivar freeImages: 'Do Compositor' enabled.
@type freeImages: boolean
@ivar singleLayer: Only render the active layer.
@type singleLayer: boolean
@ivar saveBuffers: Save render buffers to disk while rendering, saves memory.
@type saveBuffers: boolean
@ivar compositeFree: Free nodes that are not used while composite.
@type compositeFree: boolean
@ivar panorama: Panorama rendering enabled.
Also see B{PANORAMA} in L{Modes} constant dict.
@type panorama: boolean

@ -540,12 +540,6 @@ PyObject *RenderData_EnableBackbuf( BPy_RenderData * self, PyObject * args )
&self->renderContext->bufflag );
}
PyObject *RenderData_EnableThreads( BPy_RenderData * self, PyObject * args )
{
return M_Render_BitToggleInt( args, R_THREADS,
&self->renderContext->mode );
}
PyObject *RenderData_EnableExtensions( BPy_RenderData * self, PyObject * args )
{
return M_Render_BitToggleShort( args, R_EXTENSION,
@ -1968,6 +1962,28 @@ static int RenderData_setSet( BPy_RenderData *self, PyObject *value )
return 0;
}
PyObject *RenderData_getThreads( BPy_RenderData * self )
{
return PyInt_FromLong( (long) self->renderContext->threads );
}
static int RenderData_setThreads( BPy_RenderData *self, PyObject *value )
{
int threads;
if( !PyInt_CheckExact( value ) )
return EXPP_ReturnIntError( PyExc_TypeError, "Error, threads must be an int" );
threads = PyInt_AsLong( value );
if (threads<1) threads = 1;
else if (threads>8) threads = 8;
self->renderContext->threads = (short)threads;
EXPP_allqueue( REDRAWBUTSSCENE, 0 );
return 0;
}
/***************************************************************************/
/* BPy_RenderData attribute def */
/***************************************************************************/
@ -2032,24 +2048,47 @@ static PyGetSetDef BPy_RenderData_getseters[] = {
(void *)R_RAYTRACE},
/* R_GAUSS unused */
/* R_FBUF unused */
/* R_THREADS unused */
{"threads",
(getter)RenderData_getModeBit, (setter)RenderData_setModeBit,
"Render in two threads enabled",
(void *)R_THREADS},
(getter)RenderData_getThreads, (setter)RenderData_setThreads,
"Number of threads used to render",
NULL},
/* R_SPEED unused */
{"mode",
(getter)RenderData_getMode, (setter)RenderData_setMode,
"Mode bitfield",
NULL},
{"extensions",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Add extensions to output (when rendering animations) enabled",
(void *)R_EXTENSION},
/* scene modes */
{"sequencer",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"'Do Sequence' enabled",
(void *)R_DOSEQ},
{"extensions",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Add extensions to output (when rendering animations) enabled",
(void *)R_EXTENSION},
{"compositor",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"'Do Compositor' enabled.",
(void *)R_DOCOMP},
{"freeImages",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Free texture images after render.",
(void *)R_FREE_IMAGE},
{"singleLayer",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Only render the active layer.",
(void *)R_SINGLE_LAYER},
{"saveBuffers",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Save render buffers to disk while rendering, saves memory.",
(void *)R_EXR_TILE_FILE},
{"compositeFree",
(getter)RenderData_getSceModeBits, (setter)RenderData_setSceModeBits,
"Free nodes that are not used while composite.",
(void *)R_COMP_FREE},
{"sceneMode",
(getter)RenderData_getSceMode, (setter)RenderData_setSceMode,
"Scene mode bitfield",
@ -2213,9 +2252,6 @@ static PyMethodDef BPy_RenderData_methods[] = {
{"enableBackbuf", ( PyCFunction ) RenderData_EnableBackbuf,
METH_VARARGS,
"(bool) - enable/disable the backbuf image"},
{"enableThreads", ( PyCFunction ) RenderData_EnableThreads,
METH_VARARGS,
"(bool) - enable/disable threaded rendering"},
{"setFtypePath", ( PyCFunction ) RenderData_SetFtypePath, METH_VARARGS,
"(string) - get/set the path to output the Ftype file"},
{"getFtypePath", ( PyCFunction ) RenderData_getFtypePath, METH_NOARGS,