[Bf-blender-cvs] [ceec9a6ddd1] temp-gpencil-bezier-stroke-type: GPencil: Fix drawing for Bezier weight paint
Antonio Vazquez
noreply at git.blender.org
Mon Apr 26 16:14:09 CEST 2021
Commit: ceec9a6ddd1496e83ccb0919760df11dd91c2bda
Author: Antonio Vazquez
Date: Mon Apr 26 16:14:03 2021 +0200
Branches: temp-gpencil-bezier-stroke-type
https://developer.blender.org/rBceec9a6ddd1496e83ccb0919760df11dd91c2bda
GPencil: Fix drawing for Bezier weight paint
===================================================================
M source/blender/draw/intern/draw_cache_impl_gpencil.c
===================================================================
diff --git a/source/blender/draw/intern/draw_cache_impl_gpencil.c b/source/blender/draw/intern/draw_cache_impl_gpencil.c
index 49b5e0fecd3..e18aaa4deb1 100644
--- a/source/blender/draw/intern/draw_cache_impl_gpencil.c
+++ b/source/blender/draw/intern/draw_cache_impl_gpencil.c
@@ -696,16 +696,16 @@ typedef struct gpEditCurveIterData {
int vgindex;
} gpEditCurveIterData;
-static uint32_t gpencil_point_edit_flag(const bool layer_lock,
- const bGPDspoint *pt,
- int v,
- int v_len)
+static uint32_t gpencil_point_edit_flag(
+ const bool layer_lock, const bool is_bezier, const bGPDspoint *pt, int v, int v_len)
{
uint32_t sflag = 0;
SET_FLAG_FROM_TEST(sflag, (!layer_lock) && pt->flag & GP_SPOINT_SELECT, GP_EDIT_POINT_SELECTED);
SET_FLAG_FROM_TEST(sflag, v == 0, GP_EDIT_STROKE_START);
SET_FLAG_FROM_TEST(sflag, v == (v_len - 1), GP_EDIT_STROKE_END);
- SET_FLAG_FROM_TEST(sflag, pt->runtime.pt_orig == NULL, GP_EDIT_POINT_DIMMED);
+ if (!is_bezier) {
+ SET_FLAG_FROM_TEST(sflag, pt->runtime.pt_orig == NULL, GP_EDIT_POINT_DIMMED);
+ }
return sflag;
}
@@ -724,6 +724,7 @@ static void gpencil_edit_stroke_iter_cb(bGPDlayer *gpl,
const int v = gps->runtime.stroke_start + 1;
MDeformVert *dvert = ((iter->vgindex > -1) && gps->dvert) ? gps->dvert : NULL;
gpEditVert *vert_ptr = iter->verts + v;
+ const bool is_bezier = GPENCIL_STROKE_TYPE_BEZIER(gps);
const bool layer_lock = (gpl->flag & GP_LAYER_LOCKED);
uint32_t sflag = 0;
@@ -732,12 +733,14 @@ static void gpencil_edit_stroke_iter_cb(bGPDlayer *gpl,
SET_FLAG_FROM_TEST(sflag, gpf->runtime.onion_id != 0.0f, GP_EDIT_MULTIFRAME);
for (int i = 0; i < v_len; i++) {
- vert_ptr->vflag = sflag | gpencil_point_edit_flag(layer_lock, &gps->points[i], i, v_len);
+ vert_ptr->vflag = sflag |
+ gpencil_point_edit_flag(layer_lock, is_bezier, &gps->points[i], i, v_len);
vert_ptr->weight = gpencil_point_edit_weight(dvert, i, iter->vgindex);
vert_ptr++;
}
/* Draw line to first point to complete the loop for cyclic strokes. */
- vert_ptr->vflag = sflag | gpencil_point_edit_flag(layer_lock, &gps->points[0], 0, v_len);
+ vert_ptr->vflag = sflag |
+ gpencil_point_edit_flag(layer_lock, is_bezier, &gps->points[0], 0, v_len);
vert_ptr->weight = gpencil_point_edit_weight(dvert, 0, iter->vgindex);
}
More information about the Bf-blender-cvs
mailing list