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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-17 18:26:45 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-05-17 18:26:45 +0400
commit8da594c8613ddcf4195c4429c81b48e24ae3dc94 (patch)
tree0bff28cbf9e04aaaba8a1decd1b56bd291a0c96d /intern
parent5f5e46911022be4e9a843fc259fdb24ccc303594 (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__.py29
-rw-r--r--intern/cycles/blender/addon/engine.py31
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)