[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [45446] branches/soc-2008-mxcurioni/source /blender/render/intern/source/pipeline.c: Fix for a crash in the single layer mode with Freestyle enabled.
Tamito Kajiyama
rd6t-kjym at asahi-net.or.jp
Fri Apr 6 15:49:52 CEST 2012
Revision: 45446
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=45446
Author: kjym3
Date: 2012-04-06 13:49:51 +0000 (Fri, 06 Apr 2012)
Log Message:
-----------
Fix for a crash in the single layer mode with Freestyle enabled.
Modified Paths:
--------------
branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c
Modified: branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c 2012-04-06 12:50:46 UTC (rev 45445)
+++ branches/soc-2008-mxcurioni/source/blender/render/intern/source/pipeline.c 2012-04-06 13:49:51 UTC (rev 45446)
@@ -1387,21 +1387,24 @@
R.i.infostr= NULL;
}
-
/* invokes Freestyle stroke rendering */
static void add_freestyle(Render *re)
{
- SceneRenderLayer *srl;
+ SceneRenderLayer *srl, *actsrl;
LinkData *link;
+ actsrl = BLI_findlink(&re->r.layers, re->r.actlay);
+
FRS_init_stroke_rendering(re);
- for(srl= (SceneRenderLayer *)re->scene->r.layers.first; srl; srl= srl->next) {
+ for (srl= (SceneRenderLayer *)re->r.layers.first; srl; srl= srl->next) {
link = (LinkData *)MEM_callocN(sizeof(LinkData), "LinkData to Freestyle render");
BLI_addtail(&re->freestyle_renders, link);
- if( FRS_is_freestyle_enabled(srl) ) {
+ if ((re->r.scemode & R_SINGLE_LAYER) && srl != actsrl)
+ continue;
+ if (FRS_is_freestyle_enabled(srl)) {
link->data = (void *)FRS_do_stroke_rendering(re, srl);
}
}
@@ -1413,12 +1416,16 @@
static void composite_freestyle_renders(Render *re, int sample)
{
Render *freestyle_render;
- SceneRenderLayer *srl;
+ SceneRenderLayer *srl, *actsrl;
LinkData *link;
+ actsrl = BLI_findlink(&re->r.layers, re->r.actlay);
+
link = (LinkData *)re->freestyle_renders.first;
- for(srl= (SceneRenderLayer *)re->scene->r.layers.first; srl; srl= srl->next) {
- if( FRS_is_freestyle_enabled(srl) ) {
+ for (srl= (SceneRenderLayer *)re->r.layers.first; srl; srl= srl->next) {
+ if ((re->r.scemode & R_SINGLE_LAYER) && srl != actsrl)
+ continue;
+ if (FRS_is_freestyle_enabled(srl)) {
freestyle_render = (Render *)link->data;
render_result_exr_file_read(freestyle_render, sample);
FRS_composite_result(re, srl, freestyle_render);
@@ -1435,7 +1442,7 @@
Render *re1, *freestyle_render;
LinkData *link;
- for(re1= RenderGlobal.renderlist.first; re1; re1= re1->next) {
+ for (re1= RenderGlobal.renderlist.first; re1; re1= re1->next) {
for (link = (LinkData *)re1->freestyle_renders.first; link; link = link->next) {
if (link->data) {
freestyle_render = (Render *)link->data;
More information about the Bf-blender-cvs
mailing list