Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/render/svm.cpp
| Show First 20 Lines • Show All 158 Lines • ▼ Show 20 Lines | |||||
| SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_manager_) | SVMCompiler::SVMCompiler(ShaderManager *shader_manager_, ImageManager *image_manager_) | ||||
| { | { | ||||
| shader_manager = shader_manager_; | shader_manager = shader_manager_; | ||||
| image_manager = image_manager_; | image_manager = image_manager_; | ||||
| max_stack_use = 0; | max_stack_use = 0; | ||||
| current_type = SHADER_TYPE_SURFACE; | current_type = SHADER_TYPE_SURFACE; | ||||
| current_shader = NULL; | current_shader = NULL; | ||||
| current_graph = NULL; | current_graph = NULL; | ||||
| scene = NULL; | |||||
| background = false; | background = false; | ||||
| mix_weight_offset = SVM_STACK_INVALID; | mix_weight_offset = SVM_STACK_INVALID; | ||||
| compile_failed = false; | compile_failed = false; | ||||
| } | } | ||||
| int SVMCompiler::stack_size(SocketType::Type type) | int SVMCompiler::stack_size(SocketType::Type type) | ||||
| { | { | ||||
| int size = 0; | int size = 0; | ||||
| ▲ Show 20 Lines • Show All 612 Lines • ▼ Show 20 Lines | void SVMCompiler::compile_type(Shader *shader, ShaderGraph *graph, ShaderType type) | ||||
| } | } | ||||
| /* for bump shaders we fall thru to the surface shader, but if this is any other kind of shader it ends here */ | /* for bump shaders we fall thru to the surface shader, but if this is any other kind of shader it ends here */ | ||||
| if(type != SHADER_TYPE_BUMP) { | if(type != SHADER_TYPE_BUMP) { | ||||
| add_node(NODE_END, 0, 0, 0); | add_node(NODE_END, 0, 0, 0); | ||||
| } | } | ||||
| } | } | ||||
| void SVMCompiler::compile(Scene *scene, | void SVMCompiler::compile(Scene *scene_, | ||||
| Shader *shader, | Shader *shader, | ||||
| vector<int4>& svm_nodes, | vector<int4>& svm_nodes, | ||||
| int index, | int index, | ||||
| Summary *summary) | Summary *summary) | ||||
| { | { | ||||
| scene = scene_; | |||||
| /* copy graph for shader with bump mapping */ | /* copy graph for shader with bump mapping */ | ||||
| ShaderNode *node = shader->graph->output(); | ShaderNode *node = shader->graph->output(); | ||||
| int start_num_svm_nodes = svm_nodes.size(); | int start_num_svm_nodes = svm_nodes.size(); | ||||
| const double time_start = time_dt(); | const double time_start = time_dt(); | ||||
| if(node->input("Surface")->link && node->input("Displacement")->link) | if(node->input("Surface")->link && node->input("Displacement")->link) | ||||
| if(!shader->graph_bump) | if(!shader->graph_bump) | ||||
| ▲ Show 20 Lines • Show All 137 Lines • Show Last 20 Lines | |||||