[Bf-blender-cvs] [2b3657a] master: Code cleanup: minor cleanups for GPU_link return values, normal map node.
Brecht Van Lommel
noreply at git.blender.org
Wed Apr 27 00:26:46 CEST 2016
Commit: 2b3657a838fed826d29900bbf8824f909b9173bc
Author: Brecht Van Lommel
Date: Wed Apr 27 00:09:44 2016 +0200
Branches: master
https://developer.blender.org/rB2b3657a838fed826d29900bbf8824f909b9173bc
Code cleanup: minor cleanups for GPU_link return values, normal map node.
===================================================================
M source/blender/gpu/intern/gpu_codegen.c
M source/blender/nodes/shader/nodes/node_shader_lamp.c
M source/blender/nodes/shader/nodes/node_shader_mapping.c
M source/blender/nodes/shader/nodes/node_shader_normal_map.c
M source/blender/nodes/shader/nodes/node_shader_output_material.c
M source/blender/nodes/shader/nodes/node_shader_output_world.c
M source/blender/nodes/shader/nodes/node_shader_tex_environment.c
M source/blender/nodes/shader/nodes/node_shader_tex_image.c
M source/blender/nodes/shader/nodes/node_shader_texture.c
M source/blender/nodes/shader/nodes/node_shader_vectMath.c
M source/blender/nodes/shader/nodes/node_shader_vectTransform.c
M source/blender/nodes/shader/nodes/node_shader_volume_absorption.c
M source/blender/nodes/shader/nodes/node_shader_volume_scatter.c
===================================================================
diff --git a/source/blender/gpu/intern/gpu_codegen.c b/source/blender/gpu/intern/gpu_codegen.c
index 7cd05ef..94d52c3 100644
--- a/source/blender/gpu/intern/gpu_codegen.c
+++ b/source/blender/gpu/intern/gpu_codegen.c
@@ -1496,7 +1496,7 @@ bool GPU_link(GPUMaterial *mat, const char *name, ...)
function = gpu_lookup_function(name);
if (!function) {
fprintf(stderr, "GPU failed to find function %s\n", name);
- return 0;
+ return false;
}
node = GPU_node_begin(name);
@@ -1516,7 +1516,7 @@ bool GPU_link(GPUMaterial *mat, const char *name, ...)
gpu_material_add_node(mat, node);
- return 1;
+ return true;
}
bool GPU_stack_link(GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNodeStack *out, ...)
@@ -1530,7 +1530,7 @@ bool GPU_stack_link(GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNod
function = gpu_lookup_function(name);
if (!function) {
fprintf(stderr, "GPU failed to find function %s\n", name);
- return 0;
+ return false;
}
node = GPU_node_begin(name);
@@ -1577,7 +1577,7 @@ bool GPU_stack_link(GPUMaterial *mat, const char *name, GPUNodeStack *in, GPUNod
gpu_material_add_node(mat, node);
- return 1;
+ return true;
}
int GPU_link_changed(GPUNodeLink *link)
diff --git a/source/blender/nodes/shader/nodes/node_shader_lamp.c b/source/blender/nodes/shader/nodes/node_shader_lamp.c
index 3b000d4..d5dac3b 100644
--- a/source/blender/nodes/shader/nodes/node_shader_lamp.c
+++ b/source/blender/nodes/shader/nodes/node_shader_lamp.c
@@ -69,7 +69,7 @@ static int gpu_shader_lamp(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(
return GPU_stack_link(mat, "lamp", in, out, col, energy, lv, dist, shadow, visifac);
}
- return 0;
+ return false;
}
void register_node_type_sh_lamp(void)
diff --git a/source/blender/nodes/shader/nodes/node_shader_mapping.c b/source/blender/nodes/shader/nodes/node_shader_mapping.c
index 2af6e19..cd398cc 100644
--- a/source/blender/nodes/shader/nodes/node_shader_mapping.c
+++ b/source/blender/nodes/shader/nodes/node_shader_mapping.c
@@ -85,12 +85,12 @@ static int gpu_shader_mapping(GPUMaterial *mat, bNode *node, bNodeExecData *UNUS
GPUNodeLink *tdomin = GPU_uniform(&domin);
GPUNodeLink *tdomax = GPU_uniform(&domax);
- int result = GPU_stack_link(mat, "mapping", in, out, tmat, tmin, tmax, tdomin, tdomax);
+ GPU_stack_link(mat, "mapping", in, out, tmat, tmin, tmax, tdomin, tdomax);
- if (result && texmap->type == TEXMAP_TYPE_NORMAL)
+ if (texmap->type == TEXMAP_TYPE_NORMAL)
GPU_link(mat, "texco_norm", out[0].link, &out[0].link);
- return result;
+ return true;
}
void register_node_type_sh_mapping(void)
diff --git a/source/blender/nodes/shader/nodes/node_shader_normal_map.c b/source/blender/nodes/shader/nodes/node_shader_normal_map.c
index c65fac7f..642e5b2 100644
--- a/source/blender/nodes/shader/nodes/node_shader_normal_map.c
+++ b/source/blender/nodes/shader/nodes/node_shader_normal_map.c
@@ -48,18 +48,12 @@ static void node_shader_init_normal_map(bNodeTree *UNUSED(ntree), bNode *node)
static void node_shader_exec_normal_map(void *data, int UNUSED(thread), bNode *node, bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
{
- float vecIn[3];
- float strength;
- float B[4];
- float *T;
- float *N;
- int j;
-
if (data) {
ShadeInput *shi = ((ShaderCallData *)data)->shi;
NodeShaderNormalMap *nm = node->storage;
+ float strength, vecIn[3];
nodestack_get_vec(&strength, SOCK_FLOAT, in[0]);
nodestack_get_vec(vecIn, SOCK_VECTOR, in[1]);
@@ -69,7 +63,7 @@ static void node_shader_exec_normal_map(void *data, int UNUSED(thread), bNode *n
CLAMP_MIN(strength, 0.0f);
- N = shi->vno;
+ float *N = shi->vno;
int uv_index = 0;
switch (nm->space) {
case SHD_NORMAL_MAP_TANGENT:
@@ -86,12 +80,13 @@ static void node_shader_exec_normal_map(void *data, int UNUSED(thread), bNode *n
uv_index = shi->actuv;
}
- T = shi->tangents[uv_index];
+ float *T = shi->tangents[uv_index];
+ float B[3];
cross_v3_v3v3(B, N, T);
mul_v3_fl(B, T[3]);
- for (j = 0; j < 3; j++)
+ for (int j = 0; j < 3; j++)
out[0]->vec[j] = vecIn[0] * T[j] + vecIn[1] * B[j] + vecIn[2] * N[j];
interp_v3_v3v3(out[0]->vec, N, out[0]->vec, strength);
break;
@@ -114,7 +109,6 @@ static void node_shader_exec_normal_map(void *data, int UNUSED(thread), bNode *n
static int gpu_shader_normal_map(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
{
- int r;
NodeShaderNormalMap *nm = node->storage;
GPUNodeLink *negnorm;
GPUNodeLink *realnorm;
@@ -128,45 +122,35 @@ static int gpu_shader_normal_map(GPUMaterial *mat, bNode *node, bNodeExecData *U
strength = GPU_uniform(in[0].vec);
if (in[1].link) {
- r = GPU_link(mat, "color_to_normal", in[1].link, &realnorm);
- if (!r) return r;
- r = GPU_link(mat, "mtex_negate_texnormal", realnorm, &realnorm);
+ GPU_link(mat, "color_to_normal", in[1].link, &realnorm);
+ GPU_link(mat, "mtex_negate_texnormal", realnorm, &realnorm);
}
- else
- r = 1;
GPU_link(mat, "math_max", strength, GPU_uniform(d), &strength);
GPU_link(mat, "vec_math_negate", GPU_builtin(GPU_VIEW_NORMAL), &negnorm);
- switch (nm->space) {
- case SHD_NORMAL_MAP_TANGENT:
- if (in[1].link) {
- r = GPU_link(mat, "node_normal_map", GPU_attribute(CD_TANGENT, nm->uv_map), negnorm, realnorm, &out[0].link);
- if (!r) return r;
- }
- break;
- case SHD_NORMAL_MAP_OBJECT:
- case SHD_NORMAL_MAP_BLENDER_OBJECT:
- if (in[1].link) {
- r = GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_LOC_TO_VIEW_MATRIX), &out[0].link);
- if (!r) return r;
- }
- break;
- case SHD_NORMAL_MAP_WORLD:
- case SHD_NORMAL_MAP_BLENDER_WORLD:
- if (in[1].link) {
- r = GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_VIEW_MATRIX), &out[0].link);
- if (!r) return r;
- }
- break;
+
+ if (in[1].link) {
+ switch (nm->space) {
+ case SHD_NORMAL_MAP_TANGENT:
+ GPU_link(mat, "node_normal_map", GPU_attribute(CD_TANGENT, nm->uv_map), negnorm, realnorm, &out[0].link);
+ break;
+ case SHD_NORMAL_MAP_OBJECT:
+ case SHD_NORMAL_MAP_BLENDER_OBJECT:
+ GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_LOC_TO_VIEW_MATRIX), &out[0].link);
+ break;
+ case SHD_NORMAL_MAP_WORLD:
+ case SHD_NORMAL_MAP_BLENDER_WORLD:
+ GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_VIEW_MATRIX), &out[0].link);
+ break;
+ }
}
- if (out[0].link) {
- r = GPU_link(mat, "vec_math_mix", strength, out[0].link, negnorm, &out[0].link);
- if (!r) return r;
- r = GPU_link(mat, "vect_normalize", out[0].link, &out[0].link);
- if (!r) return r;
+ if (out[0].link) {
+ GPU_link(mat, "vec_math_mix", strength, out[0].link, negnorm, &out[0].link);
+ GPU_link(mat, "vect_normalize", out[0].link, &out[0].link);
}
- return r;
+
+ return true;
}
/* node type definition */
diff --git a/source/blender/nodes/shader/nodes/node_shader_output_material.c b/source/blender/nodes/shader/nodes/node_shader_output_material.c
index bd98dc1..336536b 100644
--- a/source/blender/nodes/shader/nodes/node_shader_output_material.c
+++ b/source/blender/nodes/shader/nodes/node_shader_output_material.c
@@ -43,7 +43,7 @@ static int node_shader_gpu_output_material(GPUMaterial *mat, bNode *UNUSED(node)
GPU_stack_link(mat, "node_output_material", in, out, &outlink);
GPU_material_output_link(mat, outlink);
- return 1;
+ return true;
}
diff --git a/source/blender/nodes/shader/nodes/node_shader_output_world.c b/source/blender/nodes/shader/nodes/node_shader_output_world.c
index ad7389f..f95cc84 100644
--- a/source/blender/nodes/shader/nodes/node_shader_output_world.c
+++ b/source/blender/nodes/shader/nodes/node_shader_output_world.c
@@ -42,7 +42,7 @@ static int node_shader_gpu_output_world(GPUMaterial *mat, bNode *UNUSED(node), b
GPU_stack_link(mat, "node_output_world", in, out, &outlink);
GPU_material_output_link(mat, outlink);
- return 1;
+ return true;
}
/* node type definition */
diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
index 2b43667..292221c 100644
--- a/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
+++ b/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
@@ -60,7 +60,6 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, bNodeE
ImageUser *iuser = NULL;
NodeTexImage *tex = node->storage;
int isdata = tex->color_space == SHD_COLORSPACE_NONE;
- int ret;
if (!ima)
return GPU_stack_link(mat, "node_tex_environment_empty", in, out);
@@ -77,21 +76,19 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, bNodeE
node_shader_gpu_tex_mapping(mat, node, in, out);
if (tex->projection == SHD_PROJ_EQUIRECTANGULAR)
- ret = GPU_stack_link(mat, "node_tex_environment_equirectangular", in, out, GPU_image(ima, iuser, isdata));
+ GPU_stack_link(mat, "node_tex_environment_equirectangular", in, out, GPU_image(ima, iuser, isdata));
else
- ret = GPU_stack_link(mat, "node_tex_environment_mirror_ball", in, out, GPU_image(ima, iuser, isdata));
+ GPU_stack_link(mat, "node_tex_environment_mirror_ball", in, out, GPU_image(ima, iuser, isdata));
- if (ret) {
- ImBuf *ibuf = BKE_image_acquire_ibuf(ima, iuser, NULL);
- if (ibuf && (ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA) == 0 &&
- GPU_material_do_color_management(mat))
- {
- GPU_link(mat, "srgb_to_linearrgb", out[0].link, &out[0].link);
- }
- BKE_image_release_ibuf(ima, ibuf, NULL);
+ ImBuf *ibuf = BKE_image_acquire_ibuf(ima, iuser, NULL);
+ if (ibuf && (ibuf->colormanage_flag & IMB_COLORMANAGE_IS_DATA) == 0 &&
+ GPU_material_do_color_management(mat))
+ {
+ GPU_link(mat, "srgb_to_linearrgb", out[0].link, &out[0].link);
}
+ BKE_image_release_ibuf(ima, ibuf, NULL);
- return ret;
+ return true;
}
/* node type definition */
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 f87e792..ac7a207 100644
--- a/source/blender/n
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list