[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59776] trunk/blender/source/blender/ render/intern/source/rendercore.c: Fix #36194, Halo material on Layer 2 produces flares on layer 1.

Lukas Toenne lukas.toenne at googlemail.com
Tue Sep 3 20:59:52 CEST 2013


Revision: 59776
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59776
Author:   lukastoenne
Date:     2013-09-03 18:59:52 +0000 (Tue, 03 Sep 2013)
Log Message:
-----------
Fix #36194, Halo material on Layer 2 produces flares on layer 1. Halo flares were simply rendered on the first available halo-enabled layer. Now use the flare layers correctly.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2013-09-03 18:31:51 UTC (rev 59775)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2013-09-03 18:59:52 UTC (rev 59776)
@@ -1957,35 +1957,37 @@
 	RenderResult *rr= re->result;
 	RenderLayer *rl;
 	HaloRen *har;
-	int a, mode, do_draw = FALSE;
+	int a, mode;
 	
 	/* for now, we get the first renderlayer in list with halos set */
-	for (rl= rr->layers.first; rl; rl= rl->next)
-		if (rl->layflag & SCE_LAY_HALO)
-			break;
-
-	if (rl==NULL || rl->rectf==NULL)
-		return;
-	
-	mode= R.r.mode;
-	R.r.mode &= ~R_PANORAMA;
-	
-	project_renderdata(&R, projectverto, 0, 0, 0);
-	
-	for (a=0; a<R.tothalo; a++) {
-		har= R.sortedhalos[a];
+	for (rl= rr->layers.first; rl; rl= rl->next) {
+		int do_draw = FALSE;
 		
-		if (har->flarec) {
-			do_draw = TRUE;
-			renderflare(rr, rl->rectf, har);
+		if ((rl->layflag & SCE_LAY_HALO) == 0)
+			continue;
+		if (rl->rectf==NULL)
+			continue;
+		
+		mode= R.r.mode;
+		R.r.mode &= ~R_PANORAMA;
+		
+		project_renderdata(&R, projectverto, 0, 0, 0);
+		
+		for (a=0; a<R.tothalo; a++) {
+			har= R.sortedhalos[a];
+			
+			if (har->flarec && (har->lay & rl->lay)) {
+				do_draw = TRUE;
+				renderflare(rr, rl->rectf, har);
+			}
 		}
+		
+		if (do_draw) {
+			/* weak... the display callback wants an active renderlayer pointer... */
+			rr->renlay= rl;
+			re->display_draw(re->ddh, rr, NULL);
+		}
 	}
-
-	if (do_draw) {
-		/* weak... the display callback wants an active renderlayer pointer... */
-		rr->renlay= rl;
-		re->display_draw(re->ddh, rr, NULL);
-	}
 	
 	R.r.mode= mode;
 }




More information about the Bf-blender-cvs mailing list