[Bf-blender-cvs] [6aa29549e88] master: Fix T103887: Line Art Vertex Weight Transfer to target group broken
Philipp Oeser
noreply at git.blender.org
Sat Jan 21 08:30:24 CET 2023
Commit: 6aa29549e889679112fd55f8d4a867c860646387
Author: Philipp Oeser
Date: Fri Jan 20 11:51:43 2023 +0100
Branches: master
https://developer.blender.org/rB6aa29549e889679112fd55f8d4a867c860646387
Fix T103887: Line Art Vertex Weight Transfer to target group broken
Caused by {rB841df831e89d} and {rB3558bb8eae75}.
These commits moved flags from `eLineArtGPencilModifierFlags` to
`eLineartMainFlags`, but later on in code, these were still evaluated
from the modifiers `flags` (instead of `calculation_flags`).
This resulted in a false condition (`match_output` was assumed true but
it wasnt), leading to a wrong codepath taken.
This is now corrected (`calculation_flags` need to be passed around for
this as well).
Maniphest Tasks: T103887
Differential Revision: https://developer.blender.org/D17062
===================================================================
M source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
M source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
M source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.cc
M source/blender/gpencil_modifiers/intern/lineart/lineart_ops.c
===================================================================
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
index 88c7ab9d96c..995dc268123 100644
--- a/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
+++ b/source/blender/gpencil_modifiers/intern/MOD_gpencillineart.c
@@ -89,7 +89,8 @@ static void generate_strokes_actual(
lmd->silhouette_selection,
lmd->source_vertex_group,
lmd->vgname,
- lmd->flags);
+ lmd->flags,
+ lmd->calculation_flags);
}
static bool isModifierDisabled(GpencilModifierData *md)
diff --git a/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h b/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
index 9cd88e2d523..8909e9c8ccb 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
+++ b/source/blender/gpencil_modifiers/intern/lineart/MOD_lineart.h
@@ -923,7 +923,8 @@ void MOD_lineart_gpencil_generate(LineartCache *cache,
uint8_t silhouette_mode,
const char *source_vgname,
const char *vgname,
- int modifier_flags);
+ int modifier_flags,
+ int modifier_calculation_flags);
/**
* Length is in image space.
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.cc b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.cc
index 4361ec0f86d..fe8621bb9fe 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.cc
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_cpu.cc
@@ -5156,7 +5156,8 @@ static void lineart_gpencil_generate(LineartCache *cache,
uchar silhouette_mode,
const char *source_vgname,
const char *vgname,
- int modifier_flags)
+ int modifier_flags,
+ int modifier_calculation_flags)
{
if (cache == nullptr) {
if (G.debug_value == 4000) {
@@ -5182,8 +5183,8 @@ static void lineart_gpencil_generate(LineartCache *cache,
/* (!orig_col && !orig_ob) means the whole scene is selected. */
int enabled_types = cache->all_enabled_edge_types;
- bool invert_input = modifier_flags & LRT_GPENCIL_INVERT_SOURCE_VGROUP;
- bool match_output = modifier_flags & LRT_GPENCIL_MATCH_OUTPUT_VGROUP;
+ bool invert_input = modifier_calculation_flags & LRT_GPENCIL_INVERT_SOURCE_VGROUP;
+ bool match_output = modifier_calculation_flags & LRT_GPENCIL_MATCH_OUTPUT_VGROUP;
bool inverse_silhouette = modifier_flags & LRT_GPENCIL_INVERT_SILHOUETTE_FILTER;
LISTBASE_FOREACH (LineartEdgeChain *, ec, &cache->chains) {
@@ -5381,7 +5382,8 @@ void MOD_lineart_gpencil_generate(LineartCache *cache,
uchar silhouette_mode,
const char *source_vgname,
const char *vgname,
- int modifier_flags)
+ int modifier_flags,
+ int modifier_calculation_flags)
{
if (!gpl || !gpf || !ob) {
@@ -5427,5 +5429,6 @@ void MOD_lineart_gpencil_generate(LineartCache *cache,
silhouette_mode,
source_vgname,
vgname,
- modifier_flags);
+ modifier_flags,
+ modifier_calculation_flags);
}
diff --git a/source/blender/gpencil_modifiers/intern/lineart/lineart_ops.c b/source/blender/gpencil_modifiers/intern/lineart/lineart_ops.c
index 6f44cc68a19..45ceb646361 100644
--- a/source/blender/gpencil_modifiers/intern/lineart/lineart_ops.c
+++ b/source/blender/gpencil_modifiers/intern/lineart/lineart_ops.c
@@ -136,7 +136,8 @@ static bool bake_strokes(Object *ob,
lmd->silhouette_selection,
lmd->source_vertex_group,
lmd->vgname,
- lmd->flags);
+ lmd->flags,
+ lmd->calculation_flags);
if (!(lmd->flags & LRT_GPENCIL_USE_CACHE)) {
/* Clear local cache. */
More information about the Bf-blender-cvs
mailing list