Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2013-01-28 21:37:51 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-01-28 21:37:51 +0400
commit5ac4b38a207ab7c40d50a0fe54cc41439ce82c63 (patch)
treec0908b86645dc00559056e687afcc95cced92969 /intern/cycles/blender/blender_python.cpp
parent74e5132d111ca3e24cc09b7e30b3bc35f71fdcfd (diff)
Cycles: preview rendering support for world/material/lamp.
Patch by Sergey, .blend by Thomas and some further tweaks by me. Still to solve later: allow external engines to specify own preview .blend, for now the code here is doing too much magic hacking on the preview scene still.
Diffstat (limited to 'intern/cycles/blender/blender_python.cpp')
-rw-r--r--intern/cycles/blender/blender_python.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp
index d164920ceff..676fba76ddf 100644
--- a/intern/cycles/blender/blender_python.cpp
+++ b/intern/cycles/blender/blender_python.cpp
@@ -52,8 +52,9 @@ static PyObject *init_func(PyObject *self, PyObject *args)
static PyObject *create_func(PyObject *self, PyObject *args)
{
PyObject *pyengine, *pyuserpref, *pydata, *pyscene, *pyregion, *pyv3d, *pyrv3d;
+ int preview_osl;
- if(!PyArg_ParseTuple(args, "OOOOOOO", &pyengine, &pyuserpref, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d))
+ if(!PyArg_ParseTuple(args, "OOOOOOOp", &pyengine, &pyuserpref, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d, &preview_osl))
return NULL;
/* RNA */
@@ -91,14 +92,22 @@ static PyObject *create_func(PyObject *self, PyObject *args)
Py_BEGIN_ALLOW_THREADS
if(rv3d) {
- /* interactive session */
+ /* interactive viewport session */
int width = region.width();
int height = region.height();
session = new BlenderSession(engine, userpref, data, scene, v3d, rv3d, width, height);
}
else {
- /* offline session */
+ /* override some settings for preview */
+ if(engine.is_preview()) {
+ PointerRNA cscene = RNA_pointer_get(&sceneptr, "cycles");
+
+ RNA_boolean_set(&cscene, "shading_system", preview_osl);
+ RNA_boolean_set(&cscene, "use_progressive_refine", true);
+ }
+
+ /* offline session or preview render */
session = new BlenderSession(engine, userpref, data, scene);
}