2 * Copyright 2011-2013 Blender Foundation
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
20 #include "util/util_string.h"
21 #include "util/util_vector.h"
23 #include "kernel/kernel_types.h"
25 #include "graph/node.h"
33 typedef enum FilterType {
36 FILTER_BLACKMAN_HARRIS,
50 static void add(PassType type, vector<Pass>& passes, const char* name = NULL);
51 static bool equals(const vector<Pass>& A, const vector<Pass>& B);
52 static bool contains(const vector<Pass>& passes, PassType);
55 class Film : public Node {
61 bool denoising_data_pass;
62 bool denoising_clean_pass;
64 float pass_alpha_threshold;
67 int denoising_data_offset;
68 int denoising_clean_offset;
70 FilterType filter_type;
72 size_t filter_table_offset;
78 bool use_light_visibility;
79 bool use_sample_clamp;
80 CryptomatteType cryptomatte_passes;
81 int cryptomatte_depth;
88 void device_update(Device *device, DeviceScene *dscene, Scene *scene);
89 void device_free(Device *device, DeviceScene *dscene, Scene *scene);
91 bool modified(const Film& film);
92 void tag_passes_update(Scene *scene, const vector<Pass>& passes_);
93 void tag_update(Scene *scene);
98 #endif /* __FILM_H__ */