Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_lamp.c
| Show First 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | |||||
| static int gpu_shader_lamp(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out) | static int gpu_shader_lamp(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out) | ||||
| { | { | ||||
| if (node->id) { | if (node->id) { | ||||
| GPULamp *lamp = GPU_lamp_from_blender(GPU_material_scene(mat), (Object *)node->id, NULL); | GPULamp *lamp = GPU_lamp_from_blender(GPU_material_scene(mat), (Object *)node->id, NULL); | ||||
| GPUNodeLink *col, *lv, *dist, *visifac, *shadow, *energy; | GPUNodeLink *col, *lv, *dist, *visifac, *shadow, *energy; | ||||
| visifac = GPU_lamp_get_data(mat, lamp, &col, &lv, &dist, &shadow, &energy); | visifac = GPU_lamp_get_data(mat, lamp, &col, &lv, &dist, &shadow, &energy); | ||||
| bool ret = GPU_stack_link(mat, "lamp", in, out, col, energy, lv, dist, shadow, visifac); | bool ret = GPU_stack_link(mat, node, "lamp", in, out, col, energy, lv, dist, shadow, visifac); | ||||
| if (GPU_material_use_world_space_shading(mat)) | if (GPU_material_use_world_space_shading(mat)) | ||||
| ret &= GPU_link(mat, "direction_transform_m4v3", out[1].link, GPU_builtin(GPU_INVERSE_VIEW_MATRIX), &out[1].link); | ret &= GPU_link(mat, "direction_transform_m4v3", out[1].link, GPU_builtin(GPU_INVERSE_VIEW_MATRIX), &out[1].link); | ||||
| return ret; | return ret; | ||||
| } | } | ||||
| return false; | return false; | ||||
| } | } | ||||
| Show All 12 Lines | |||||