Fix related to #31446: cycles glsl error with empty image texture node.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 18 May 2012 13:30:34 +0000 (13:30 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 18 May 2012 13:30:34 +0000 (13:30 +0000)
source/blender/gpu/shaders/gpu_shader_material.glsl
source/blender/gpu/shaders/gpu_shader_material.glsl.c
source/blender/nodes/shader/nodes/node_shader_tex_environment.c
source/blender/nodes/shader/nodes/node_shader_tex_image.c

index 9498bf92446601771bf9fafbec8d2b6f96bc4399..7e4312e21e0b47e4e5aba4ccd049e94d99cef2e8 100644 (file)
@@ -2127,12 +2127,23 @@ void node_tex_environment(vec3 co, sampler2D ima, out vec4 color)
        color = texture2D(ima, vec2(u, v));
 }
 
+void node_tex_environment_empty(vec3 co, out vec4 color)
+{
+       color = vec4(0.0);
+}
+
 void node_tex_image(vec3 co, sampler2D ima, out vec4 color, out float alpha)
 {
        color = texture2D(ima, co.xy);
     alpha = color.a;
 }
 
+void node_tex_image_empty(vec3 co, out vec4 color, out float alpha)
+{
+       color = vec4(0.0);
+    alpha = 0.0;
+}
+
 void node_tex_magic(vec3 p, float scale, float distortion, out vec4 color, out float fac)
 {
        color = vec4(1.0);
index 6d08d4c8ceca3161055bb58434758547e6d34dd7..91b2b13ea1a81dce06614ca93788f2f86084800e 100644 (file)
@@ -1,6 +1,6 @@
 /* DataToC output of file <gpu_shader_material_glsl> */
 
-int datatoc_gpu_shader_material_glsl_size = 50823;
+int datatoc_gpu_shader_material_glsl_size = 51015;
 char datatoc_gpu_shader_material_glsl[] = {
  10,102,108,111, 97,116, 32,
 101,120,112, 95, 98,108,101,110,100,101,114, 40,102,108,111, 97,116, 32,102, 41, 10,123, 10,  9,114,101,116,117,114,110, 32,112,
@@ -1539,11 +1539,17 @@ char datatoc_gpu_shader_material_glsl[] = {
  41, 47, 40, 50, 46, 48, 42, 77, 95, 80, 73, 41, 59, 10,  9,102,108,111, 97,116, 32,118, 32, 61, 32, 97,116, 97,110, 40, 99,111,
  46,122, 44, 32,104,121,112,111,116, 40, 99,111, 46,120, 44, 32, 99,111, 46,121, 41, 41, 47, 77, 95, 80, 73, 32, 43, 32, 48, 46,
  53, 59, 10, 10,  9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32,118,101, 99, 50,
- 40,117, 44, 32,118, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 40,
-118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52,
- 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10,  9, 99,111,108,111,
-114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,105,109, 97, 44, 32, 99,111, 46,120,121, 41, 59, 10, 32, 32, 32, 32, 97,
-108,112,104, 97, 32, 61, 32, 99,111,108,111,114, 46, 97, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120,
+ 40,117, 44, 32,118, 41, 41, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,101,110,118,105,114,111,
+110,109,101,110,116, 95,101,109,112,116,121, 40,118,101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,
+108,111,114, 41, 10,123, 10,  9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10,125, 10, 10,118,111,
+105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 40,118,101, 99, 51, 32, 99,111, 44, 32,115, 97,109,112,108,
+101,114, 50, 68, 32,105,109, 97, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,
+111, 97,116, 32, 97,108,112,104, 97, 41, 10,123, 10,  9, 99,111,108,111,114, 32, 61, 32,116,101,120,116,117,114,101, 50, 68, 40,
+105,109, 97, 44, 32, 99,111, 46,120,121, 41, 59, 10, 32, 32, 32, 32, 97,108,112,104, 97, 32, 61, 32, 99,111,108,111,114, 46, 97,
+ 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120, 95,105,109, 97,103,101, 95,101,109,112,116,121, 40,118,
+101, 99, 51, 32, 99,111, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,116, 32,102,108,111, 97,
+116, 32, 97,108,112,104, 97, 41, 10,123, 10,  9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 48, 46, 48, 41, 59, 10, 32,
+ 32, 32, 32, 97,108,112,104, 97, 32, 61, 32, 48, 46, 48, 59, 10,125, 10, 10,118,111,105,100, 32,110,111,100,101, 95,116,101,120,
  95,109, 97,103,105, 99, 40,118,101, 99, 51, 32,112, 44, 32,102,108,111, 97,116, 32,115, 99, 97,108,101, 44, 32,102,108,111, 97,
 116, 32,100,105,115,116,111,114,116,105,111,110, 44, 32,111,117,116, 32,118,101, 99, 52, 32, 99,111,108,111,114, 44, 32,111,117,
 116, 32,102,108,111, 97,116, 32,102, 97, 99, 41, 10,123, 10,  9, 99,111,108,111,114, 32, 61, 32,118,101, 99, 52, 40, 49, 46, 48,
index 852c056dc283dae1bddb6a003ace36c1933b206b..9e80f79b0c52c60cfc357c01a4e05d4aa4fc007a 100644 (file)
@@ -55,11 +55,8 @@ static int node_shader_gpu_tex_environment(GPUMaterial *mat, bNode *node, GPUNod
        Image *ima= (Image*)node->id;
        ImageUser *iuser= NULL;
 
-       if (!ima) {
-               float black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
-               GPUNodeLink *vec = GPU_uniform(black);
-               return GPU_stack_link(mat, "set_rgba", out, out, vec);
-       }
+       if (!ima)
+               return GPU_stack_link(mat, "node_tex_environment_empty", in, out);
 
        if (!in[0].link)
                in[0].link = GPU_builtin(GPU_VIEW_POSITION);
index 28dcada3d339eeab533c1e6eba0ed9610d8f2a0f..e00467a52ef315e1d139ff27d9e82a8feceed56d 100644 (file)
@@ -55,11 +55,8 @@ static int node_shader_gpu_tex_image(GPUMaterial *mat, bNode *node, GPUNodeStack
        Image *ima= (Image*)node->id;
        ImageUser *iuser= NULL;
 
-       if (!ima) {
-               float black[4] = {0.0f, 0.0f, 0.0f, 1.0f};
-               GPUNodeLink *vec = GPU_uniform(black);
-               return GPU_stack_link(mat, "set_rgba", out, out, vec);
-       }
+       if (!ima)
+               return GPU_stack_link(mat, "node_tex_image_empty", in, out);
        
        if (!in[0].link)
                in[0].link = GPU_attribute(CD_MTFACE, "");