[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54810] branches/ge_harmony/source/blender /gpu/intern/gpu_codegen.c: Avoid merging custom material shaders with the built in shaders until the merging process is a little smoother (such as removing duplicate assignments to gl_FragColor).

Daniel Stokes kupomail at gmail.com
Sun Feb 24 11:05:10 CET 2013


Revision: 54810
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54810
Author:   kupoman
Date:     2013-02-24 10:05:09 +0000 (Sun, 24 Feb 2013)
Log Message:
-----------
Avoid merging custom material shaders with the built in shaders until the merging process is a little smoother (such as removing duplicate assignments to gl_FragColor).

Modified Paths:
--------------
    branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c

Modified: branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c
===================================================================
--- branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c	2013-02-24 08:50:55 UTC (rev 54809)
+++ branches/ge_harmony/source/blender/gpu/intern/gpu_codegen.c	2013-02-24 10:05:09 UTC (rev 54810)
@@ -1419,12 +1419,21 @@
 	/* merge custom shaders */
 	for (link = custom_shaders->first; link; link = link->next) {
 		cs = (Shader*)link->data;
-		if (cs->type == SHADER_TYPE_VERTEX)
+		if (!cs->source) continue;
+
+		if (cs->type == SHADER_TYPE_VERTEX) {
+			BKE_shader_free(sh_vert);
+			sh_vert = BKE_shader_empty();
 			BKE_shader_source_merge(sh_vert, cs);
-		else if (cs->type == SHADER_TYPE_FRAGMENT)
+		}
+		else if (cs->type == SHADER_TYPE_FRAGMENT) {
+			BKE_shader_free(sh_frag);
+			sh_frag = BKE_shader_empty();
 			BKE_shader_source_merge(sh_frag, cs);
-		else if (cs->type == SHADER_TYPE_GEOMETRY)
+		}
+		else if (cs->type == SHADER_TYPE_GEOMETRY) {
 			BKE_shader_source_merge(sh_geom, cs);
+		}
 	}
 
 




More information about the Bf-blender-cvs mailing list