Commit: 8fa50b522a10a3d8f2546d79410cfed35660e835
Author: Sebastian Parborg
Date:   Mon Jul 15 10:46:36 2019 +0200
Branches: master
https://developer.blender.org/rB8fa50b522a10a3d8f2546d79410cfed35660e835

Fix T66587: Can't bake second dynamic paint canvas to image sequence

The issue was the the copy data function didn't copy the active canvas number.
So it would always be 0 and thus use the first canvas when trying to bake.

Also fix not copying unused type data (unused canvas/brush settings).

Reviewed By: Brecht

Differential Revision: http://developer.blender.org/D5220

===================================================================

M       source/blender/blenkernel/intern/dynamicpaint.c

===================================================================

diff --git a/source/blender/blenkernel/intern/dynamicpaint.c 
b/source/blender/blenkernel/intern/dynamicpaint.c
index ef5e5bb24a8..16ce62da57e 100644
--- a/source/blender/blenkernel/intern/dynamicpaint.c
+++ b/source/blender/blenkernel/intern/dynamicpaint.c
@@ -1216,9 +1216,11 @@ void dynamicPaint_Modifier_copy(const struct 
DynamicPaintModifierData *pmd,
 {
   /* Init modifier */
   tpmd->type = pmd->type;
-  if ((pmd->canvas && pmd->type == MOD_DYNAMICPAINT_TYPE_CANVAS) ||
-      (pmd->brush && pmd->type == MOD_DYNAMICPAINT_TYPE_BRUSH)) {
-    dynamicPaint_createType(tpmd, pmd->type, NULL);
+  if (pmd->canvas) {
+    dynamicPaint_createType(tpmd, MOD_DYNAMICPAINT_TYPE_CANVAS, NULL);
+  }
+  if (pmd->brush) {
+    dynamicPaint_createType(tpmd, MOD_DYNAMICPAINT_TYPE_BRUSH, NULL);
   }
 
   /* Copy data */
@@ -1230,6 +1232,8 @@ void dynamicPaint_Modifier_copy(const struct 
DynamicPaintModifierData *pmd,
       dynamicPaint_freeSurface(tpmd, tpmd->canvas->surfaces.first);
     }
 
+    tpmd->canvas->active_sur = pmd->canvas->active_sur;
+
     /* copy existing surfaces */
     for (surface = pmd->canvas->surfaces.first; surface; surface = 
surface->next) {
       DynamicPaintSurface *t_surface = 
dynamicPaint_createNewSurface(tpmd->canvas, NULL);
@@ -1296,7 +1300,7 @@ void dynamicPaint_Modifier_copy(const struct 
DynamicPaintModifierData *pmd,
       BLI_strncpy(t_surface->output_name2, surface->output_name2, 
sizeof(t_surface->output_name2));
     }
   }
-  else if (tpmd->brush) {
+  if (tpmd->brush) {
     DynamicPaintBrushSettings *brush = pmd->brush, *t_brush = tpmd->brush;
     t_brush->pmd = tpmd;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to