svn merge ^/trunk/blender -r42303:42329
[blender.git] / intern / cycles / blender / addon / __init__.py
1 #
2 # Copyright 2011, Blender Foundation.
3 #
4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software Foundation,
16 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 #
18
19 # <pep8 compliant>
20
21 bl_info = {
22     "name": "Cycles Render Engine",
23     "author": "",
24     "version": (0, 0),
25     "blender": (2, 6, 0),
26     "api": 41670,
27     "location": "Info header, render engine menu",
28     "description": "Cycles Render Engine integration.",
29     "warning": "",
30     "wiki_url": "http://wiki.blender.org/index.php/Dev:2.6/Source/Render/Cycles",
31     "tracker_url": "",
32     "support": 'OFFICIAL',
33     "category": "Render"}
34
35 import bpy
36 from . import ui, properties, engine, presets
37
38
39 class CyclesRender(bpy.types.RenderEngine):
40     bl_idname = 'CYCLES'
41     bl_label = "Cycles Render"
42     bl_use_shading_nodes = True
43
44     def __init__(self):
45         engine.init()
46         self.session = None
47
48     def __del__(self):
49         engine.free(self)
50
51     # final render
52     def update(self, data, scene):
53         engine.create(self, data, scene)
54         engine.update(self, data, scene)
55
56     def render(self, scene):
57         engine.render(self)
58
59     # preview render
60     # def preview_update(self, context, id):
61     #    pass
62     #
63     # def preview_render(self):
64     #    pass
65
66     # viewport render
67     def view_update(self, context):
68         if not self.session:
69             engine.create(self, context.blend_data, context.scene,
70                 context.region, context.space_data, context.region_data)
71         engine.update(self, context.blend_data, context.scene)
72
73     def view_draw(self, context):
74         engine.draw(self, context.region, context.space_data, context.region_data)
75
76
77 def register():
78     properties.register()
79     ui.register()
80     presets.register()
81     bpy.utils.register_module(__name__)
82
83
84 def unregister():
85     ui.unregister()
86     properties.unregister()
87     presets.unregister()
88     bpy.utils.unregister_module(__name__)