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
1 changed files with 9 additions and 12 deletions
Showing only changes of commit 11f54b0817 - Show all commits

View File

@ -47,7 +47,7 @@ using bke::greasepencil::Layer;
static void init_data(ModifierData *md)
{
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(omd, modifier));
@ -57,10 +57,8 @@ static void init_data(ModifierData *md)
static void copy_data(const ModifierData *md, ModifierData *target, const int flag)
{
const GreasePencilOpacityModifierData *omd =
reinterpret_cast<const GreasePencilOpacityModifierData *>(md);
GreasePencilOpacityModifierData *tomd = reinterpret_cast<GreasePencilOpacityModifierData *>(
target);
const auto *omd = reinterpret_cast<const GreasePencilOpacityModifierData *>(md);
LukasTonne marked this conversation as resolved Outdated

You can write const auto * with the cast, it might keep it on one line

You can write `const auto *` with the cast, it might keep it on one line
auto *tomd = reinterpret_cast<GreasePencilOpacityModifierData *>(target);
modifier::greasepencil::free_influence_data(&tomd->influence);
@ -70,13 +68,13 @@ static void copy_data(const ModifierData *md, ModifierData *target, const int fl
static void free_data(ModifierData *md)
{
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
modifier::greasepencil::free_influence_data(&omd->influence);
}
static void foreach_ID_link(ModifierData *md, Object *ob, IDWalkFunc walk, void *user_data)
{
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
modifier::greasepencil::foreach_influence_ID_link(&omd->influence, ob, walk, user_data);
}
@ -185,7 +183,7 @@ static void modify_curves(ModifierData *md,
const ModifierEvalContext *ctx,
bke::CurvesGeometry &curves)
{
LukasTonne marked this conversation as resolved
Review

Could this be skipped if there's no hardness attribute already?

Could this be skipped if there's no hardness attribute already?
Review

I suppose it could. The old modifier is quite inconsistent in how the "uniform" setting is applied (confusingly called "normalized" internally). In the color modes (stroke, fill) it then applies the settings as an offset rather than a factor, with some unexplained bias and clamping. But this isn't used for the hardness mode, so 🤷

I suppose it could. The old modifier is quite inconsistent in how the "uniform" setting is applied (confusingly called "normalized" internally). In the color modes (stroke, fill) it then applies the settings as an _offset_ rather than a factor, with some unexplained bias and clamping. But this isn't used for the hardness mode, so 🤷
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
IndexMaskMemory mask_memory;
IndexMask curves_mask = modifier::greasepencil::get_filtered_stroke_mask(
@ -212,7 +210,7 @@ static void modify_geometry_set(ModifierData *md,
const ModifierEvalContext *ctx,
bke::GeometrySet *geometry_set)
{
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
const Scene *scene = DEG_get_evaluated_scene(ctx->depsgraph);
const int frame = scene->r.cfra;
@ -284,8 +282,7 @@ static void panel_register(ARegionType *region_type)
static void blend_write(BlendWriter *writer, const ID * /*id_owner*/, const ModifierData *md)
{
const GreasePencilOpacityModifierData *omd =
reinterpret_cast<const GreasePencilOpacityModifierData *>(md);
const auto *omd = reinterpret_cast<const GreasePencilOpacityModifierData *>(md);
BLO_write_struct(writer, GreasePencilOpacityModifierData, omd);
modifier::greasepencil::write_influence_data(writer, &omd->influence);
@ -293,7 +290,7 @@ static void blend_write(BlendWriter *writer, const ID * /*id_owner*/, const Modi
static void blend_read(BlendDataReader *reader, ModifierData *md)
{
GreasePencilOpacityModifierData *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
auto *omd = reinterpret_cast<GreasePencilOpacityModifierData *>(md);
modifier::greasepencil::read_influence_data(reader, &omd->influence);
}