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 26 additions and 1 deletions
Showing only changes of commit 46a82c6a00 - Show all commits

View File

@ -317,12 +317,14 @@ static void blend_write(BlendWriter *writer, const ID * /*id_owner*/, const Modi
const GreasePencilOpacityModifierData *omd = (const GreasePencilOpacityModifierData *)md;
BLO_write_struct(writer, GreasePencilOpacityModifierData, omd);
greasepencil::write_influence_data(writer, &omd->influence);
}
static void blend_read(BlendDataReader *reader, ModifierData *md)
{
GreasePencilOpacityModifierData *omd = (GreasePencilOpacityModifierData *)md;
UNUSED_VARS(reader, omd);
greasepencil::read_influence_data(reader, &omd->influence);
}
} // namespace blender

View File

@ -21,6 +21,8 @@
#include "BKE_lib_query.h"
#include "BKE_material.h"
#include "BLO_read_write.hh"
#include "DNA_defaults.h"
#include "DEG_depsgraph_query.hh"
@ -70,6 +72,23 @@ void foreach_influence_ID_link(GreasePencilModifierInfluenceData *influence_data
walk(user_data, ob, (ID **)&influence_data->material, IDWALK_CB_USER);
}
void write_influence_data(BlendWriter *writer,
const GreasePencilModifierInfluenceData *influence_data)
{
if (influence_data->custom_curve) {
BKE_curvemapping_blend_write(writer, influence_data->custom_curve);
}
}
void read_influence_data(BlendDataReader *reader,
GreasePencilModifierInfluenceData *influence_data)
{
BLO_read_data_address(reader, &influence_data->custom_curve);
if (influence_data->custom_curve) {
BKE_curvemapping_blend_read(reader, influence_data->custom_curve);
}
}
void draw_layer_filter_settings(const bContext * /*C*/, uiLayout *layout, PointerRNA *ptr)
{
PointerRNA ob_ptr = RNA_pointer_create(ptr->owner_id, &RNA_Object, ptr->owner_id);

View File

@ -40,6 +40,10 @@ void foreach_influence_ID_link(GreasePencilModifierInfluenceData *influence_data
Object *ob,
IDWalkFunc walk,
void *user_data);
void write_influence_data(BlendWriter *writer,
const GreasePencilModifierInfluenceData *influence_data);
void read_influence_data(BlendDataReader *reader,
GreasePencilModifierInfluenceData *influence_data);
void draw_layer_filter_settings(const bContext *C, uiLayout *layout, PointerRNA *ptr);
void draw_material_filter_settings(const bContext *C, uiLayout *layout, PointerRNA *ptr);