Cycles:
[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
37 from cycles import ui
38 from cycles import properties
39 from cycles import xml
40 from cycles import engine
41 from cycles import presets
42
43
44 class CyclesRender(bpy.types.RenderEngine):
45     bl_idname = 'CYCLES'
46     bl_label = "Cycles Render"
47     bl_use_shading_nodes = True
48
49     def __init__(self):
50         engine.init()
51         self.session = None
52
53     def __del__(self):
54         engine.free(self)
55
56     # final render
57     def update(self, data, scene):
58         engine.create(self, data, scene)
59         engine.update(self, data, scene)
60
61     def render(self, scene):
62         engine.render(self)
63
64     # preview render
65     # def preview_update(self, context, id):
66     #    pass
67     #
68     # def preview_render(self):
69     #    pass
70
71     # viewport render
72     def view_update(self, context):
73         if not self.session:
74             engine.create(self, context.blend_data, context.scene,
75                 context.region, context.space_data, context.region_data)
76         engine.update(self, context.blend_data, context.scene)
77
78     def view_draw(self, context):
79         engine.draw(self, context.region, context.space_data, context.region_data)
80
81
82 def register():
83     properties.register()
84     ui.register()
85     xml.register()
86     presets.register()
87     bpy.utils.register_module(__name__)
88
89
90 def unregister():
91     xml.unregister()
92     ui.unregister()
93     properties.unregister()
94     presets.unregister()
95     bpy.utils.unregister_module(__name__)