diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-17 18:26:45 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-05-17 18:26:45 +0400 |
commit | 8da594c8613ddcf4195c4429c81b48e24ae3dc94 (patch) | |
tree | 0bff28cbf9e04aaaba8a1decd1b56bd291a0c96d /intern | |
parent | 5f5e46911022be4e9a843fc259fdb24ccc303594 (diff) |
Render API: first step in updating RenderEngine to work according to:
http://wiki.blender.org/index.php/Dev:2.5/Source/Render/RenderEngineAPI
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/blender/addon/__init__.py | 29 | ||||
-rw-r--r-- | intern/cycles/blender/addon/engine.py | 31 |
2 files changed, 35 insertions, 25 deletions
diff --git a/intern/cycles/blender/addon/__init__.py b/intern/cycles/blender/addon/__init__.py index 0a2e5cee142..e66d078f8c7 100644 --- a/intern/cycles/blender/addon/__init__.py +++ b/intern/cycles/blender/addon/__init__.py @@ -47,17 +47,30 @@ class CyclesRender(bpy.types.RenderEngine): def __del__(self): engine.free(self) - def render(self, scene): - engine.create(self, scene, True) - engine.render(self, scene) + # final render + def update(self, data, scene): + engine.create(self, data, scene) + engine.update(self, data, scene) - def draw(self, scene): + def render(self): + engine.render(self) + + # preview render + # def preview_update(self, context, id): + # pass + # + # def preview_render(self): + # pass + + # viewport render + def view_update(self, context): if not self.session: - engine.create(self, scene, False) - engine.draw(self, scene) + engine.create(self, context.blend_data, context.scene, + context.region, context.space_data, context.region_data) + engine.update(self, context.blend_data, context.scene) - def update(self, scene): - engine.update(self, scene) + def view_draw(self, context): + engine.draw(self, context.region, context.space_data, context.region_data) def register(): properties.register() diff --git a/intern/cycles/blender/addon/engine.py b/intern/cycles/blender/addon/engine.py index fb98068766f..a78107735eb 100644 --- a/intern/cycles/blender/addon/engine.py +++ b/intern/cycles/blender/addon/engine.py @@ -23,19 +23,17 @@ def init(): import os.path lib.init(os.path.dirname(__file__)) -def create(engine, scene, offline): +def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0): from cycles import libcycles_blender as lib - data = bpy.data.as_pointer() - scene = scene.as_pointer() - if not offline and bpy.context.area.type == 'VIEW_3D': - region = bpy.context.region.as_pointer() - v3d = bpy.context.space_data.as_pointer() - rv3d = bpy.context.region_data.as_pointer() - else: - region = 0 - v3d = 0 - rv3d = 0 + data = data.as_pointer() + scene = scene.as_pointer() + if region: + region = region.as_pointer() + if v3d: + v3d = v3d.as_pointer() + if rv3d: + rv3d = rv3d.as_pointer() engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d) @@ -46,19 +44,18 @@ def free(engine): lib.free(engine.session) del engine.session -def render(engine, scene): +def render(engine): from cycles import libcycles_blender as lib lib.render(engine.session) -def update(engine, scene): +def update(engine, data, scene): from cycles import libcycles_blender as lib lib.sync(engine.session) -def draw(engine, scene): +def draw(engine, region, v3d, rv3d): from cycles import libcycles_blender as lib - v3d = bpy.context.space_data.as_pointer() - rv3d = bpy.context.region_data.as_pointer() - region = bpy.context.region + v3d = v3d.as_pointer() + rv3d = rv3d.as_pointer() # draw render image status, substatus = lib.draw(engine.session, v3d, rv3d) |