[Bf-blender-cvs] [71683be4bb6] master: Fix T78884: GPencil weight paint crash when painting over modifier generated points

Antonio Vazquez noreply at git.blender.org
Fri Jul 31 18:20:59 CEST 2020


Commit: 71683be4bb6e8bb65844a48b282c3c5662839b1c
Author: Antonio Vazquez
Date:   Fri Jul 31 18:20:27 2020 +0200
Branches: master
https://developer.blender.org/rB71683be4bb6e8bb65844a48b282c3c5662839b1c

Fix T78884: GPencil weight paint crash when painting over modifier generated points

The weight must be added only to the real points, not to the autogenerated points by modifiers. This affects, not only to subdivide, but to any modifier that generate points.

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

M	source/blender/editors/gpencil/gpencil_weight_paint.c

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

diff --git a/source/blender/editors/gpencil/gpencil_weight_paint.c b/source/blender/editors/gpencil/gpencil_weight_paint.c
index e41146575e4..4392ec92824 100644
--- a/source/blender/editors/gpencil/gpencil_weight_paint.c
+++ b/source/blender/editors/gpencil/gpencil_weight_paint.c
@@ -453,9 +453,9 @@ static void gpencil_weightpaint_select_stroke(tGP_BrushWeightpaintData *gso,
 
           /* To each point individually... */
           pt = &gps->points[i];
-          pt_active = (pt->runtime.pt_orig) ? pt->runtime.pt_orig : pt;
-          index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i;
+          pt_active = pt->runtime.pt_orig;
           if (pt_active != NULL) {
+            index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i;
             gpencil_save_selected_point(gso, gps_active, index, pc1);
           }
 
@@ -469,9 +469,9 @@ static void gpencil_weightpaint_select_stroke(tGP_BrushWeightpaintData *gso,
            */
           if (i + 1 == gps->totpoints - 1) {
             pt = &gps->points[i + 1];
-            pt_active = (pt->runtime.pt_orig) ? pt->runtime.pt_orig : pt;
-            index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i + 1;
+            pt_active = pt->runtime.pt_orig;
             if (pt_active != NULL) {
+              index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i + 1;
               gpencil_save_selected_point(gso, gps_active, index, pc2);
               include_last = false;
             }
@@ -487,9 +487,9 @@ static void gpencil_weightpaint_select_stroke(tGP_BrushWeightpaintData *gso,
            * (but wasn't added then, to avoid double-ups).
            */
           pt = &gps->points[i];
-          pt_active = (pt->runtime.pt_orig) ? pt->runtime.pt_orig : pt;
-          index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i;
+          pt_active = pt->runtime.pt_orig;
           if (pt_active != NULL) {
+            index = (pt->runtime.pt_orig) ? pt->runtime.idx_orig : i;
             gpencil_save_selected_point(gso, gps_active, index, pc1);
 
             include_last = false;



More information about the Bf-blender-cvs mailing list