diff options
author | Antonio Vazquez <blendergit@gmail.com> | 2020-07-02 20:47:26 +0300 |
---|---|---|
committer | Antonio Vazquez <blendergit@gmail.com> | 2020-07-02 20:47:58 +0300 |
commit | f708aabf90b09d356154a3b86c043f0639b42901 (patch) | |
tree | 6cfe90c752b417614f8c1039c911467270a72bbb /source/blender/gpencil_modifiers/intern | |
parent | 99c50da0b78830d0efcff2069985f96675afdf18 (diff) |
GPencil: Pass gpd datablock to BKE_gpencil_stroke_geometry_update
This include the reverts commit 6beb37b197abb1542bf11b351299541d6d3404ef.
Diffstat (limited to 'source/blender/gpencil_modifiers/intern')
9 files changed, 38 insertions, 26 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c index 60c3877b89a..befdd7082dc 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilarmature.c @@ -122,10 +122,11 @@ static void deformStroke(GpencilModifierData *md, if (!mmd->object) { return; } + bGPdata *gpd = ob->data; gpencil_deform_verts(mmd, ob, gps); /* Calc geometry data. */ - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } static void bakeModifier(Main *bmain, Depsgraph *depsgraph, GpencilModifierData *md, Object *ob) diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c index 54ed2ffafe1..4987ce5fa60 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c @@ -121,7 +121,8 @@ static void gpf_clear_all_strokes(bGPDframe *gpf) * Note: This won't be called if all points are present/removed * TODO: Allow blending of growing/shrinking tip (e.g. for more gradual transitions) */ -static void reduce_stroke_points(bGPDstroke *gps, +static void reduce_stroke_points(bGPdata *gpd, + bGPDstroke *gps, const int num_points, const eBuildGpencil_Transition transition) { @@ -187,7 +188,7 @@ static void reduce_stroke_points(bGPDstroke *gps, gps->totpoints = num_points; /* Calc geometry data. */ - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } /* --------------------------------------------- */ @@ -204,7 +205,10 @@ typedef struct tStrokeBuildDetails { } tStrokeBuildDetails; /* Sequential - Show strokes one after the other */ -static void build_sequential(BuildGpencilModifierData *mmd, bGPDframe *gpf, float fac) +static void build_sequential(BuildGpencilModifierData *mmd, + bGPdata *gpd, + bGPDframe *gpf, + float fac) { const size_t tot_strokes = BLI_listbase_count(&gpf->strokes); bGPDstroke *gps; @@ -286,12 +290,12 @@ static void build_sequential(BuildGpencilModifierData *mmd, bGPDframe *gpf, floa else if (first_visible > cell->start_idx) { /* Starts partway through this stroke */ int num_points = cell->end_idx - first_visible; - reduce_stroke_points(cell->gps, num_points, mmd->transition); + reduce_stroke_points(gpd, cell->gps, num_points, mmd->transition); } else { /* Ends partway through this stroke */ int num_points = last_visible - cell->start_idx; - reduce_stroke_points(cell->gps, num_points, mmd->transition); + reduce_stroke_points(gpd, cell->gps, num_points, mmd->transition); } } } @@ -305,7 +309,10 @@ static void build_sequential(BuildGpencilModifierData *mmd, bGPDframe *gpf, floa /* Concurrent - Show multiple strokes at once */ // TODO: Allow random offsets to start times // TODO: Allow varying speeds? Scaling of progress? -static void build_concurrent(BuildGpencilModifierData *mmd, bGPDframe *gpf, float fac) +static void build_concurrent(BuildGpencilModifierData *mmd, + bGPdata *gpd, + bGPDframe *gpf, + float fac) { bGPDstroke *gps, *gps_next; int max_points = 0; @@ -404,16 +411,14 @@ static void build_concurrent(BuildGpencilModifierData *mmd, bGPDframe *gpf, floa } else if (num_points < gps->totpoints) { /* Remove some points */ - reduce_stroke_points(gps, num_points, mmd->transition); + reduce_stroke_points(gpd, gps, num_points, mmd->transition); } } } /* --------------------------------------------- */ -static void generate_geometry(GpencilModifierData *md, - Depsgraph *depsgraph, - bGPDlayer *gpl, - bGPDframe *gpf) +static void generate_geometry( + GpencilModifierData *md, Depsgraph *depsgraph, bGPdata *gpd, bGPDlayer *gpl, bGPDframe *gpf) { BuildGpencilModifierData *mmd = (BuildGpencilModifierData *)md; const bool reverse = (mmd->transition != GP_BUILD_TRANSITION_GROW); @@ -518,11 +523,11 @@ static void generate_geometry(GpencilModifierData *md, /* Time management mode */ switch (mmd->mode) { case GP_BUILD_MODE_SEQUENTIAL: - build_sequential(mmd, gpf, fac); + build_sequential(mmd, gpd, gpf, fac); break; case GP_BUILD_MODE_CONCURRENT: - build_concurrent(mmd, gpf, fac); + build_concurrent(mmd, gpd, gpf, fac); break; default: @@ -544,7 +549,7 @@ static void generateStrokes(GpencilModifierData *md, Depsgraph *depsgraph, Objec if (gpf == NULL) { continue; } - generate_geometry(md, depsgraph, gpl, gpf); + generate_geometry(md, depsgraph, gpd, gpl, gpf); } } diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c index a0987aafcd2..c02885c8b8f 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c @@ -229,6 +229,7 @@ static void deformStroke(GpencilModifierData *md, mmd->flag & GP_HOOK_INVERT_MATERIAL)) { return; } + bGPdata *gpd = ob->data; /* init struct */ tData.curfalloff = mmd->curfalloff; @@ -274,7 +275,7 @@ static void deformStroke(GpencilModifierData *md, gp_hook_co_apply(&tData, weight, pt); } /* Calc geometry data. */ - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } /* FIXME: Ideally we be doing this on a copy of the main depsgraph diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c index 0f5fc4d5cf6..c753238b3ec 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c @@ -84,6 +84,7 @@ static void deformStroke(GpencilModifierData *md, bGPDframe *UNUSED(gpf), bGPDstroke *gps) { + bGPdata *gpd = ob->data; LatticeGpencilModifierData *mmd = (LatticeGpencilModifierData *)md; const int def_nr = BKE_object_defgroup_name_index(ob, mmd->vgname); @@ -120,7 +121,7 @@ static void deformStroke(GpencilModifierData *md, (struct LatticeDeformData *)mmd->cache_data, &pt->x, mmd->strength * weight); } /* Calc geometry data. */ - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } /* FIXME: Ideally we be doing this on a copy of the main depsgraph diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c index 619c37015e4..9e8decae390 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilmultiply.c @@ -131,6 +131,7 @@ static void duplicateStroke(Object *ob, float fading_thickness, float fading_opacity) { + bGPdata *gpd = ob->data; int i; bGPDstroke *new_gps = NULL; float stroke_normal[3]; @@ -201,7 +202,7 @@ static void duplicateStroke(Object *ob, } /* Calc geometry data. */ if (new_gps != NULL) { - BKE_gpencil_stroke_geometry_update(new_gps); + BKE_gpencil_stroke_geometry_update(gpd, new_gps); } MEM_freeN(t1_array); MEM_freeN(t2_array); diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c index 9cc3712e8f4..09131b7d673 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c @@ -100,6 +100,7 @@ static void deformStroke(GpencilModifierData *md, mmd->flag & GP_OFFSET_INVERT_MATERIAL)) { return; } + bGPdata *gpd = ob->data; for (int i = 0; i < gps->totpoints; i++) { bGPDspoint *pt = &gps->points[i]; @@ -121,7 +122,7 @@ static void deformStroke(GpencilModifierData *md, mul_m4_v3(mat, &pt->x); } /* Calc geometry data. */ - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } static void bakeModifier(struct Main *UNUSED(bmain), diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c index 8d4556421eb..22dfc924f55 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c @@ -92,26 +92,26 @@ static void deformStroke(GpencilModifierData *md, mmd->flag & GP_SIMPLIFY_INVERT_MATERIAL)) { return; } - + bGPdata *gpd = ob->data; /* Select simplification mode. */ switch (mmd->mode) { case GP_SIMPLIFY_FIXED: { for (int i = 0; i < mmd->step; i++) { - BKE_gpencil_stroke_simplify_fixed(gps); + BKE_gpencil_stroke_simplify_fixed(gpd, gps); } break; } case GP_SIMPLIFY_ADAPTIVE: { /* simplify stroke using Ramer-Douglas-Peucker algorithm */ - BKE_gpencil_stroke_simplify_adaptive(gps, mmd->factor); + BKE_gpencil_stroke_simplify_adaptive(gpd, gps, mmd->factor); break; } case GP_SIMPLIFY_SAMPLE: { - BKE_gpencil_stroke_sample(gps, mmd->length, false); + BKE_gpencil_stroke_sample(gpd, gps, mmd->length, false); break; } case GP_SIMPLIFY_MERGE: { - BKE_gpencil_stroke_merge_distance(gpf, gps, mmd->distance, true); + BKE_gpencil_stroke_merge_distance(gpd, gpf, gps, mmd->distance, true); break; } default: diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c b/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c index 2797235c002..198a85405c4 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c @@ -77,6 +77,7 @@ static void deformStroke(GpencilModifierData *md, bGPDstroke *gps) { SubdivGpencilModifierData *mmd = (SubdivGpencilModifierData *)md; + bGPdata *gpd = ob->data; /* It makes sense when adding points to a straight line */ /* e.g. for creating thickness variation in later modifiers. */ @@ -97,7 +98,7 @@ static void deformStroke(GpencilModifierData *md, return; } - BKE_gpencil_stroke_subdivide(gps, mmd->level, mmd->type); + BKE_gpencil_stroke_subdivide(gpd, gps, mmd->level, mmd->type); } static void bakeModifier(struct Main *UNUSED(bmain), diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c b/source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c index 2d16b6ead5c..f2bf8c62228 100644 --- a/source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c +++ b/source/blender/gpencil_modifiers/intern/MOD_gpenciltexture.c @@ -86,6 +86,7 @@ static void deformStroke(GpencilModifierData *md, { TextureGpencilModifierData *mmd = (TextureGpencilModifierData *)md; const int def_nr = BKE_object_defgroup_name_index(ob, mmd->vgname); + bGPdata *gpd = ob->data; if (!is_stroke_affected_by_modifier(ob, mmd->layername, @@ -106,7 +107,7 @@ static void deformStroke(GpencilModifierData *md, gps->uv_translation[0] += mmd->fill_offset[0]; gps->uv_translation[1] += mmd->fill_offset[1]; gps->uv_scale *= mmd->fill_scale; - BKE_gpencil_stroke_geometry_update(gps); + BKE_gpencil_stroke_geometry_update(gpd, gps); } if ((mmd->mode == STROKE) || (mmd->mode == STROKE_AND_FILL)) { |