Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_math.c
| Show First 20 Lines • Show All 243 Lines • ▼ Show 20 Lines | switch (node->custom1) { | ||||
| case NODE_MATH_DIVIDE: | case NODE_MATH_DIVIDE: | ||||
| case NODE_MATH_POW: | case NODE_MATH_POW: | ||||
| case NODE_MATH_LOG: | case NODE_MATH_LOG: | ||||
| case NODE_MATH_MIN: | case NODE_MATH_MIN: | ||||
| case NODE_MATH_MAX: | case NODE_MATH_MAX: | ||||
| case NODE_MATH_LESS: | case NODE_MATH_LESS: | ||||
| case NODE_MATH_GREATER: | case NODE_MATH_GREATER: | ||||
| case NODE_MATH_MOD: | case NODE_MATH_MOD: | ||||
| GPU_stack_link(mat, names[node->custom1], in, out); | GPU_stack_link(mat, node, names[node->custom1], in, out); | ||||
| break; | break; | ||||
| case NODE_MATH_SIN: | case NODE_MATH_SIN: | ||||
| case NODE_MATH_COS: | case NODE_MATH_COS: | ||||
| case NODE_MATH_TAN: | case NODE_MATH_TAN: | ||||
| case NODE_MATH_ASIN: | case NODE_MATH_ASIN: | ||||
| case NODE_MATH_ACOS: | case NODE_MATH_ACOS: | ||||
| case NODE_MATH_ATAN: | case NODE_MATH_ATAN: | ||||
| case NODE_MATH_ROUND: | case NODE_MATH_ROUND: | ||||
| case NODE_MATH_ABS: | case NODE_MATH_ABS: | ||||
| if (in[0].hasinput || !in[1].hasinput) { | if (in[0].hasinput || !in[1].hasinput) { | ||||
| /* use only first item and terminator */ | /* use only first item and terminator */ | ||||
| GPUNodeStack tmp_in[2]; | GPUNodeStack tmp_in[2]; | ||||
| memcpy(&tmp_in[0], &in[0], sizeof(GPUNodeStack)); | memcpy(&tmp_in[0], &in[0], sizeof(GPUNodeStack)); | ||||
| memcpy(&tmp_in[1], &in[2], sizeof(GPUNodeStack)); | memcpy(&tmp_in[1], &in[2], sizeof(GPUNodeStack)); | ||||
| GPU_stack_link(mat, names[node->custom1], tmp_in, out); | GPU_stack_link(mat, node, names[node->custom1], tmp_in, out); | ||||
| } | } | ||||
| else { | else { | ||||
| /* use only second item and terminator */ | /* use only second item and terminator */ | ||||
| GPUNodeStack tmp_in[2]; | GPUNodeStack tmp_in[2]; | ||||
| memcpy(&tmp_in[0], &in[1], sizeof(GPUNodeStack)); | memcpy(&tmp_in[0], &in[1], sizeof(GPUNodeStack)); | ||||
| memcpy(&tmp_in[1], &in[2], sizeof(GPUNodeStack)); | memcpy(&tmp_in[1], &in[2], sizeof(GPUNodeStack)); | ||||
| GPU_stack_link(mat, names[node->custom1], tmp_in, out); | GPU_stack_link(mat, node, names[node->custom1], tmp_in, out); | ||||
| } | } | ||||
| break; | break; | ||||
| default: | default: | ||||
| return 0; | return 0; | ||||
| } | } | ||||
| if (node->custom2 & SHD_MATH_CLAMP) { | if (node->custom2 & SHD_MATH_CLAMP) { | ||||
| float min[3] = {0.0f, 0.0f, 0.0f}; | float min[3] = {0.0f, 0.0f, 0.0f}; | ||||
| Show All 21 Lines | |||||