GPv3: Opacity modifier #116946

Merged
Lukas Tönne merged 52 commits from LukasTonne/blender:gp3-opacity-modifier into main 2024-01-16 16:56:22 +01:00
3 changed files with 11 additions and 18 deletions
Showing only changes of commit 50a330a250 - Show all commits

View File

@ -801,4 +801,11 @@
.mat_ofs = 0, \
}
#define _DNA_DEFAULT_GreasePencilOpacityModifierData \
{ \
.color_mode = MOD_GREASE_PENCIL_COLOR_BOTH, \
.color_factor = 1.0f, \
.hardness_factor = 1.0f, \
}
/* clang-format off */

View File

@ -322,6 +322,7 @@ SDNA_DEFAULT_DECL_STRUCT(DashGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(DashGpencilModifierSegment);
SDNA_DEFAULT_DECL_STRUCT(ShrinkwrapGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(EnvelopeGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(GreasePencilOpacityModifierData);
#undef SDNA_DEFAULT_DECL_STRUCT
@ -566,6 +567,7 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = {
SDNA_DEFAULT_DECL(DashGpencilModifierSegment),
SDNA_DEFAULT_DECL(ShrinkwrapGpencilModifierData),
SDNA_DEFAULT_DECL(EnvelopeGpencilModifierData),
SDNA_DEFAULT_DECL(GreasePencilOpacityModifierData),
};
#undef SDNA_DEFAULT_DECL
#undef SDNA_DEFAULT_DECL_EX

View File

@ -51,15 +51,7 @@ static void init_data(ModifierData *md)
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(omd, modifier));
// XXX Why is this crashing, but the expanded code below works fine?!?
// MEMCPY_STRUCT_AFTER(omd, DNA_struct_default_get(GreasePencilOpacityModifierData), modifier);
{
CHECK_TYPE_NONCONST(omd);
memcpy((char *)(omd) + OFFSETOF_STRUCT_AFTER(omd, modifier),
(const char *)(md) + OFFSETOF_STRUCT_AFTER(omd, modifier),
sizeof(*(omd)) - OFFSETOF_STRUCT_AFTER(omd, modifier));
}
MEMCPY_STRUCT_AFTER(omd, DNA_struct_default_get(GreasePencilOpacityModifierData), modifier);
greasepencil::init_influence_data(&omd->influence, true);
}
@ -81,14 +73,6 @@ static void free_data(ModifierData *md)
greasepencil::free_influence_data(&omd->influence);
}
static void required_data_mask(ModifierData *md, CustomData_MeshMasks *r_cddata_masks)
{
GreasePencilOpacityModifierData *omd = (GreasePencilOpacityModifierData *)md;
// TODO
UNUSED_VARS(omd, r_cddata_masks);
}
static void foreach_ID_link(ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
{
GreasePencilOpacityModifierData *omd = (GreasePencilOpacityModifierData *)md;
@ -352,7 +336,7 @@ ModifierTypeInfo modifierType_GreasePencilOpacity = {
/*modify_geometry_set*/ blender::modify_geometry_set,
/*init_data*/ blender::init_data,
/*required_data_mask*/ blender::required_data_mask,
/*required_data_mask*/ nullptr,
/*free_data*/ blender::free_data,
/*is_disabled*/ nullptr,
/*update_depsgraph*/ nullptr,