Merge branch 'master' into blender2.8
[blender.git] / intern / cycles / render / background.h
1 /*
2  * Copyright 2011-2013 Blender Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #ifndef __BACKGROUND_H__
18 #define __BACKGROUND_H__
19
20 #include "graph/node.h"
21
22 #include "util/util_types.h"
23
24 CCL_NAMESPACE_BEGIN
25
26 class Device;
27 class DeviceScene;
28 class Scene;
29 class Shader;
30
31 class Background : public Node {
32 public:
33         NODE_DECLARE
34
35         float ao_factor;
36         float ao_distance;
37
38         bool use_shader;
39         bool use_ao;
40
41         uint visibility;
42         Shader *shader;
43
44         bool transparent;
45         bool transparent_glass;
46         float transparent_roughness_threshold;
47
48         bool need_update;
49
50         Background();
51         ~Background();
52
53         void device_update(Device *device, DeviceScene *dscene, Scene *scene);
54         void device_free(Device *device, DeviceScene *dscene);
55
56         bool modified(const Background& background);
57         void tag_update(Scene *scene);
58 };
59
60 CCL_NAMESPACE_END
61
62 #endif  /* __BACKGROUND_H__ */