diff options
Diffstat (limited to 'source/blender/nodes/shader/nodes/node_shader_tex_image.c')
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_tex_image.c | 31 |
1 files changed, 1 insertions, 30 deletions
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_image.c b/source/blender/nodes/shader/nodes/node_shader_tex_image.c index 562884a9ed9..a7b0925d001 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_image.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_image.c @@ -51,35 +51,6 @@ static void node_shader_init_tex_image(bNodeTree *UNUSED(ntree), bNode* node, bN node->storage = tex; } -static void node_shader_exec_tex_image(void *data, bNode *node, bNodeStack **in, bNodeStack **out) -{ - Image *ima= (Image*)node->id; - ShaderCallData *scd= (ShaderCallData*)data; - NodeTexImage *tex= (NodeTexImage*)node->storage; - bNodeSocket *vecsock = node->inputs.first; - float vec[3]; - - if(vecsock->link) - nodestack_get_vec(vec, SOCK_VECTOR, in[0]); - else - copy_v3_v3(vec, scd->co); - - if(ima) { - ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL); - - if(ibuf) { - float rgb[4]; - - ibuf_sample(ibuf, vec[0], vec[1], 0.0f, 0.0f, rgb); - - if(tex->color_space == SHD_COLORSPACE_SRGB) - srgb_to_linearrgb_v3_v3(out[0]->vec, rgb); - else - copy_v3_v3(out[0]->vec, rgb); - } - } -} - static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *out) { Image *ima= (Image*)node->id; @@ -110,7 +81,7 @@ void register_node_type_sh_tex_image(ListBase *lb) node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, node_shader_init_tex_image); node_type_storage(&ntype, "NodeTexImage", node_free_standard_storage, node_copy_standard_storage); - node_type_exec(&ntype, node_shader_exec_tex_image); + node_type_exec(&ntype, NULL); node_type_gpu(&ntype, node_shader_gpu_tex_image); nodeRegisterType(lb, &ntype); |