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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-05-23 13:13:21 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2018-05-23 14:21:02 +0300
commitb20449cc08f33fc6b55fc6c326f5ab1b5f240fb9 (patch)
treeac49c0554144d98392ff68de34d037cf7be391e6 /intern/cycles/blender/addon/engine.py
parentd59b74adb38f3ac6b85107aa506e471efbd2a20c (diff)
Cycles/Render API: changes for better copy-on-write support.
Mainly just passing the depsgraph and evaluated scene and camera, instead of the original one. Patch by Sergey, further modifications by Brecht.
Diffstat (limited to 'intern/cycles/blender/addon/engine.py')
-rw-r--r--intern/cycles/blender/addon/engine.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py
index 8a13b67f91d..b689c750be0 100644
--- a/intern/cycles/blender/addon/engine.py
+++ b/intern/cycles/blender/addon/engine.py
@@ -123,13 +123,12 @@ def exit():
_cycles.exit()
-def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=False):
- import bpy
+def create(engine, data, region=None, v3d=None, rv3d=None, preview_osl=False):
import _cycles
+ import bpy
data = data.as_pointer()
userpref = bpy.context.user_preferences.as_pointer()
- scene = scene.as_pointer()
if region:
region = region.as_pointer()
if v3d:
@@ -137,13 +136,8 @@ def create(engine, data, scene, region=None, v3d=None, rv3d=None, preview_osl=Fa
if rv3d:
rv3d = rv3d.as_pointer()
- if bpy.app.debug_value == 256:
- _cycles.debug_flags_update(scene)
- else:
- _cycles.debug_flags_reset()
-
engine.session = _cycles.create(
- engine.as_pointer(), userpref, data, scene, region, v3d, rv3d, preview_osl)
+ engine.as_pointer(), userpref, data, region, v3d, rv3d, preview_osl)
def free(engine):
@@ -167,14 +161,21 @@ def bake(engine, depsgraph, obj, pass_type, pass_filter, object_id, pixel_array,
_cycles.bake(engine.session, depsgraph.as_pointer(), obj.as_pointer(), pass_type, pass_filter, object_id, pixel_array.as_pointer(), num_pixels, depth, result.as_pointer())
-def reset(engine, data, scene):
+def reset(engine, data, depsgraph):
import _cycles
+ import bpy
+
+ if bpy.app.debug_value == 256:
+ _cycles.debug_flags_update(depsgraph.scene)
+ else:
+ _cycles.debug_flags_reset()
+
data = data.as_pointer()
- scene = scene.as_pointer()
- _cycles.reset(engine.session, data, scene)
+ depsgraph = depsgraph.as_pointer()
+ _cycles.reset(engine.session, data, depsgraph)
-def update(engine, depsgraph, data, scene):
+def sync(engine, depsgraph, data):
import _cycles
_cycles.sync(engine.session, depsgraph.as_pointer())