diff options
-rw-r--r-- | intern/cycles/blender/addon/__init__.py | 2 | ||||
-rw-r--r-- | intern/cycles/blender/addon/engine.py | 4 | ||||
-rw-r--r-- | intern/cycles/blender/blender_python.cpp | 13 |
3 files changed, 14 insertions, 5 deletions
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 64e4a8391d1..57025388bda 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -59,7 +59,7 @@ class CyclesRender(bpy.types.RenderEngine): None, None, None, use_osl) else: if not self.session: - engine.create(self, data, scene) + engine.create(self, data, scene, background=bpy.app.background) else: engine.reset(self, data, scene) diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index e1d82db25e1..492a254b9b9 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -28,7 +28,7 @@ def init(): _cycles.init(path, user_path) -def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False): +def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False, background=False): import bpy import _cycles @@ -42,7 +42,7 @@ def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=Fa if rv3d: rv3d = rv3d.as_pointer() - engine.session = _cycles.create(engine.as_pointer(), userpref, data, scene, region, v3d, rv3d, preview_osl) + engine.session = _cycles.create(engine.as_pointer(), userpref, data, scene, region, v3d, rv3d, preview_osl, background) def free(engine): diff --git a/intern/cycles/blender/blender_python.cpp b/intern/cycles/blender/blender_python.cpp index 37191bb797a..120d6b0d4de 100644 --- a/intern/cycles/blender/blender_python.cpp +++ b/intern/cycles/blender/blender_python.cpp @@ -90,10 +90,13 @@ 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; + int preview_osl, background; - if(!PyArg_ParseTuple(args, "OOOOOOOi", &pyengine, &pyuserpref, &pydata, &pyscene, &pyregion, &pyv3d, &pyrv3d, &preview_osl)) + if(!PyArg_ParseTuple(args, "OOOOOOOii", &pyengine, &pyuserpref, &pydata, &pyscene, + &pyregion, &pyv3d, &pyrv3d, &preview_osl, &background)) + { return NULL; + } /* RNA */ PointerRNA engineptr; @@ -143,6 +146,12 @@ static PyObject *create_func(PyObject *self, PyObject *args) RNA_boolean_set(&cscene, "use_progressive_refine", true); } + /* Use more optimal tile order when rendering from the command line. */ + if(background) { + PointerRNA cscene = RNA_pointer_get(&sceneptr, "cycles"); + RNA_enum_set(&cscene, "tile_order", (int)TILE_BOTTOM_TO_TOP); + } + /* offline session or preview render */ session = new BlenderSession(engine, userpref, data, scene); } |