Cycles: svn merge -r39669:39870 https://svn.blender.org/svnroot/bf-blender/trunk...
[blender-staging.git] / intern / cycles / blender / addon / engine.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 import bpy
20
21 def init():
22     import libcycles_blender as lib
23     import os.path
24     lib.init(os.path.dirname(__file__))
25
26 def create(engine, data, scene, region = 0, v3d = 0, rv3d = 0):
27     import libcycles_blender as lib
28
29     data = data.as_pointer()
30     scene = scene.as_pointer()
31     if region:
32         region = region.as_pointer()
33     if v3d:
34         v3d = v3d.as_pointer()
35     if rv3d:
36         rv3d = rv3d.as_pointer()
37
38     engine.session = lib.create(engine.as_pointer(), data, scene, region, v3d, rv3d)
39
40 def free(engine):
41     if "session" in dir(engine):
42         if engine.session:
43             import libcycles_blender as lib
44             lib.free(engine.session)
45         del engine.session
46
47 def render(engine):
48     import libcycles_blender as lib
49     lib.render(engine.session)
50
51 def update(engine, data, scene):
52     import libcycles_blender as lib
53     lib.sync(engine.session)
54
55 def draw(engine, region, v3d, rv3d):
56     import libcycles_blender as lib
57     v3d = v3d.as_pointer()
58     rv3d = rv3d.as_pointer()
59
60     # draw render image
61     lib.draw(engine.session, v3d, rv3d)
62
63 def available_devices():
64     import libcycles_blender as lib
65     return lib.available_devices()
66
67 def with_osl():
68     import libcycles_blender as lib
69     return lib.with_osl()
70