Fix RenderEngine API docs

Correct access to passes, D1779 by @levon.

Also use is_preview attr and use register/unregister functions.
This commit is contained in:
Campbell Barton 2016-02-08 20:08:21 +11:00
parent d8163a08fb
commit 37a2a3c8dc
1 changed files with 33 additions and 17 deletions

View File

@ -9,8 +9,8 @@ import bpy
class CustomRenderEngine(bpy.types.RenderEngine):
# These three members are used by blender to set up the
# RenderEngine; define its internal name, visible name and capabilities.
bl_idname = 'custom_renderer'
bl_label = 'Flat Color Renderer'
bl_idname = "custom_renderer"
bl_label = "Flat Color Renderer"
bl_use_preview = True
# This is the only method called by blender, in this example
@ -21,7 +21,7 @@ class CustomRenderEngine(bpy.types.RenderEngine):
self.size_x = int(scene.render.resolution_x * scale)
self.size_y = int(scene.render.resolution_y * scale)
if scene.name == 'preview':
if self.is_preview:
self.render_preview(scene)
else:
self.render_scene(scene)
@ -36,7 +36,7 @@ class CustomRenderEngine(bpy.types.RenderEngine):
# Here we write the pixel values to the RenderResult
result = self.begin_result(0, 0, self.size_x, self.size_y)
layer = result.layers[0]
layer = result.layers[0].passes["Combined"]
layer.rect = green_rect
self.end_result(result)
@ -50,21 +50,37 @@ class CustomRenderEngine(bpy.types.RenderEngine):
# Here we write the pixel values to the RenderResult
result = self.begin_result(0, 0, self.size_x, self.size_y)
layer = result.layers[0]
layer = result.layers[0].passes["Combined"]
layer.rect = blue_rect
self.end_result(result)
# Register the RenderEngine
bpy.utils.register_class(CustomRenderEngine)
# RenderEngines also need to tell UI Panels that they are compatible
# Otherwise most of the UI will be empty when the engine is selected.
# In this example, we need to see the main render image button and
# the material preview panel.
from bl_ui import properties_render
properties_render.RENDER_PT_render.COMPAT_ENGINES.add('custom_renderer')
del properties_render
def register():
# Register the RenderEngine
bpy.utils.register_class(CustomRenderEngine)
from bl_ui import properties_material
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.add('custom_renderer')
del properties_material
# RenderEngines also need to tell UI Panels that they are compatible
# Otherwise most of the UI will be empty when the engine is selected.
# In this example, we need to see the main render image button and
# the material preview panel.
from bl_ui import (
properties_render,
properties_material,
)
properties_render.RENDER_PT_render.COMPAT_ENGINES.add(CustomRenderEngine.bl_idname)
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.add(CustomRenderEngine.bl_idname)
def unregister():
bpy.utils.unregister_class(CustomRenderEngine)
from bl_ui import (
properties_render,
properties_material,
)
properties_render.RENDER_PT_render.COMPAT_ENGINES.remove(CustomRenderEngine.bl_idname)
properties_material.MATERIAL_PT_preview.COMPAT_ENGINES.remove(CustomRenderEngine.bl_idname)
if __name__ == "__main__":
register()