Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/render/svm.h')
-rw-r--r--intern/cycles/render/svm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/intern/cycles/render/svm.h b/intern/cycles/render/svm.h
index f76649e4a6f..05fb85b057f 100644
--- a/intern/cycles/render/svm.h
+++ b/intern/cycles/render/svm.h
@@ -24,6 +24,7 @@
#include "shader.h"
#include "util_set.h"
+#include "util_string.h"
CCL_NAMESPACE_BEGIN
@@ -65,6 +66,7 @@ public:
uint attribute(ustring name);
uint attribute(Attribute::Standard std);
uint encode_uchar4(uint x, uint y = 0, uint z = 0, uint w = 0);
+ uint closure_mix_weight_offset() { return mix_weight_offset; }
ShaderType output_type() { return current_type; }
@@ -75,6 +77,8 @@ public:
protected:
struct Stack {
+ Stack() { memset(users, 0, sizeof(users)); }
+
int users[SVM_STACK_SIZE];
};
@@ -88,6 +92,7 @@ protected:
void find_dependencies(set<ShaderNode*>& dependencies, const set<ShaderNode*>& done, ShaderInput *input);
void generate_svm_nodes(const set<ShaderNode*>& nodes, set<ShaderNode*>& done);
void generate_closure(ShaderNode *node, set<ShaderNode*> done, Stack stack);
+ void generate_multi_closure(ShaderNode *node, set<ShaderNode*>& done, uint in_offset);
void compile_type(Shader *shader, ShaderGraph *graph, ShaderType type);
@@ -96,6 +101,7 @@ protected:
Shader *current_shader;
Stack active_stack;
int max_stack_use;
+ uint mix_weight_offset;
};
CCL_NAMESPACE_END