Cycles: integrator presets, patch by Thomas.
[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 bl_info = {
20     "name": "Cycles Render Engine",
21     "author": "",
22     "version": (0,0),
23     "blender": (2, 5, 6),
24     "api": 34462,
25     "location": "Info header, render engine menu",
26     "description": "Cycles Render Engine integration.",
27     "warning": "",
28     "wiki_url": "",
29     "tracker_url": "",
30     "category": "Render"}
31
32 import bpy
33
34 from cycles import ui
35 from cycles import properties
36 from cycles import xml
37 from cycles import engine
38 from cycles import presets
39
40 class CyclesRender(bpy.types.RenderEngine):
41     bl_idname = 'CYCLES'
42     bl_label = "Cycles"
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):
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 def register():
77     properties.register()
78     ui.register()
79     xml.register()
80     presets.register()
81     bpy.utils.register_module(__name__)
82
83 def unregister():
84     xml.unregister()
85     ui.unregister()
86     properties.unregister()
87     presets.unregister()
88     bpy.utils.unregister_module(__name__)
89