Cleanup: Use DNA defaults for grease pencil modifiers

This will make "Reset to Default Value" work properly for grease
pencil modifiers. See T80164 for more information.
This commit is contained in:
Hans Goudey 2020-10-15 09:44:39 -05:00
parent bac91956ae
commit d1b3439b80
Notes: blender-bot 2023-02-13 20:51:00 +01:00
Referenced by commit ba8233174c, Fix build error with clean builds
Referenced by issue #81747, missing `dna_type_infos.h` in `gpencil_modifiers`
23 changed files with 438 additions and 145 deletions

View File

@ -35,6 +35,9 @@ set(INC
../windowmanager
../../../intern/eigen
../../../intern/guardedalloc
# dna_type_offsets.h in BLO_read_write.h
${CMAKE_BINARY_DIR}/source/blender/makesdna/intern
)
set(INC_SYS

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_armature_types.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -68,8 +69,10 @@
static void initData(GpencilModifierData *md)
{
ArmatureGpencilModifierData *gpmd = (ArmatureGpencilModifierData *)md;
gpmd->object = NULL;
gpmd->deformflag = ARM_DEF_VGROUP;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(ArmatureGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -37,6 +37,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
@ -79,16 +80,10 @@ typedef struct tmpStrokes {
static void initData(GpencilModifierData *md)
{
ArrayGpencilModifierData *gpmd = (ArrayGpencilModifierData *)md;
gpmd->count = 2;
gpmd->shift[0] = 1.0f;
gpmd->shift[1] = 0.0f;
gpmd->shift[2] = 0.0f;
zero_v3(gpmd->offset);
zero_v3(gpmd->rnd_scale);
gpmd->object = NULL;
gpmd->flag |= GP_ARRAY_USE_RELATIVE;
gpmd->seed = 1;
gpmd->material = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(ArrayGpencilModifierData), modifier);
/* Open the first subpanel too, because it's activated by default. */
md->ui_expand_flag = (1 << 0) | (1 << 1);

View File

@ -32,6 +32,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -61,15 +62,9 @@ static void initData(GpencilModifierData *md)
{
BuildGpencilModifierData *gpmd = (BuildGpencilModifierData *)md;
/* We deliberately set this range to the half the default
* frame-range to have an immediate effect to suggest use-cases
*/
gpmd->start_frame = 1;
gpmd->end_frame = 125;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
/* Init default length of each build effect - Nothing special */
gpmd->start_delay = 0.0f;
gpmd->length = 100.0f;
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(BuildGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -31,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
@ -61,16 +62,13 @@
static void initData(GpencilModifierData *md)
{
ColorGpencilModifierData *gpmd = (ColorGpencilModifierData *)md;
gpmd->pass_index = 0;
ARRAY_SET_ITEMS(gpmd->hsv, 0.5f, 1.0f, 1.0f);
gpmd->material = NULL;
gpmd->modify_color = GP_MODIFY_COLOR_BOTH;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(ColorGpencilModifierData), modifier);
gpmd->curve_intensity = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_intensity) {
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemapping_init(curve);
}
BKE_curvemapping_init(gpmd->curve_intensity);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -87,15 +88,13 @@ struct GPHookData_cb {
static void initData(GpencilModifierData *md)
{
HookGpencilModifierData *gpmd = (HookGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->material = NULL;
gpmd->object = NULL;
gpmd->force = 0.5f;
gpmd->falloff_type = eGPHook_Falloff_Smooth;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(HookGpencilModifierData), modifier);
gpmd->curfalloff = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curfalloff) {
BKE_curvemapping_init(gpmd->curfalloff);
}
BKE_curvemapping_init(gpmd->curfalloff);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -22,12 +22,14 @@
*/
#include <stdio.h>
#include <string.h> /* For #MEMCPY_STRUCT_AFTER. */
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -65,11 +67,10 @@
static void initData(GpencilModifierData *md)
{
LatticeGpencilModifierData *gpmd = (LatticeGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->material = NULL;
gpmd->object = NULL;
gpmd->cache_data = NULL;
gpmd->strength = 1.0f;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(LatticeGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -67,10 +68,10 @@
static void initData(GpencilModifierData *md)
{
MirrorGpencilModifierData *gpmd = (MirrorGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->material = NULL;
gpmd->object = NULL;
gpmd->flag |= GP_MIRROR_AXIS_X;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(MirrorGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -25,6 +25,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
@ -74,14 +75,11 @@
static void initData(GpencilModifierData *md)
{
MultiplyGpencilModifierData *mmd = (MultiplyGpencilModifierData *)md;
mmd->duplications = 3;
mmd->distance = 0.1f;
mmd->split_angle = DEG2RADF(1.0f);
mmd->fading_center = 0.5f;
mmd->fading_thickness = 0.5f;
mmd->fading_opacity = 0.5f;
mmd->material = NULL;
MultiplyGpencilModifierData *gpmd = (MultiplyGpencilModifierData *)md;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(MultiplyGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -35,6 +35,7 @@
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -68,19 +69,15 @@
static void initData(GpencilModifierData *md)
{
NoiseGpencilModifierData *gpmd = (NoiseGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->flag |= GP_NOISE_FULL_STROKE;
gpmd->flag |= GP_NOISE_USE_RANDOM;
gpmd->factor = 0.5f;
gpmd->material = NULL;
gpmd->step = 4;
gpmd->seed = 1;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(NoiseGpencilModifierData), modifier);
gpmd->curve_intensity = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_intensity) {
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemap_reset(curve->cm, &curve->clipr, CURVE_PRESET_BELL, CURVEMAP_SLOPE_POSITIVE);
BKE_curvemapping_init(curve);
}
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemap_reset(curve->cm, &curve->clipr, CURVE_PRESET_BELL, CURVEMAP_SLOPE_POSITIVE);
BKE_curvemapping_init(curve);
}
static void freeData(GpencilModifierData *md)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -60,11 +61,10 @@
static void initData(GpencilModifierData *md)
{
OffsetGpencilModifierData *gpmd = (OffsetGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->material = NULL;
ARRAY_SET_ITEMS(gpmd->loc, 0.0f, 0.0f, 0.0f);
ARRAY_SET_ITEMS(gpmd->rot, 0.0f, 0.0f, 0.0f);
ARRAY_SET_ITEMS(gpmd->scale, 0.0f, 0.0f, 0.0f);
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(OffsetGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -62,16 +63,13 @@
static void initData(GpencilModifierData *md)
{
OpacityGpencilModifierData *gpmd = (OpacityGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->factor = 1.0f;
gpmd->hardeness = 1.0f;
gpmd->material = NULL;
gpmd->modify_color = GP_MODIFY_COLOR_BOTH;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(OpacityGpencilModifierData), modifier);
gpmd->curve_intensity = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_intensity) {
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemapping_init(curve);
}
BKE_curvemapping_init(gpmd->curve_intensity);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -22,12 +22,14 @@
*/
#include <stdio.h>
#include <string.h> /* For #MEMCPY_STRUCT_AFTER. */
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
@ -56,12 +58,10 @@
static void initData(GpencilModifierData *md)
{
SimplifyGpencilModifierData *gpmd = (SimplifyGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->step = 1;
gpmd->factor = 0.0f;
gpmd->length = 0.1f;
gpmd->distance = 0.1f;
gpmd->material = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(SimplifyGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -22,12 +22,14 @@
*/
#include <stdio.h>
#include <string.h> /* For #MEMCPY_STRUCT_AFTER. */
#include "BLI_listbase.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -57,17 +59,13 @@
static void initData(GpencilModifierData *md)
{
SmoothGpencilModifierData *gpmd = (SmoothGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->flag |= GP_SMOOTH_MOD_LOCATION;
gpmd->factor = 0.5f;
gpmd->material = NULL;
gpmd->step = 1;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(SmoothGpencilModifierData), modifier);
gpmd->curve_intensity = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_intensity) {
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemapping_init(curve);
}
BKE_curvemapping_init(gpmd->curve_intensity);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -22,6 +22,7 @@
*/
#include <stdio.h>
#include <string.h> /* For #MEMCPY_STRUCT_AFTER. */
#include "MEM_guardedalloc.h"
@ -30,6 +31,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -58,9 +60,10 @@
static void initData(GpencilModifierData *md)
{
SubdivGpencilModifierData *gpmd = (SubdivGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->level = 1;
gpmd->material = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(SubdivGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -60,15 +61,10 @@
static void initData(GpencilModifierData *md)
{
TextureGpencilModifierData *gpmd = (TextureGpencilModifierData *)md;
gpmd->fit_method = GP_TEX_CONSTANT_LENGTH;
gpmd->fill_rotation = 0.0f;
gpmd->fill_scale = 1.0f;
gpmd->fill_offset[0] = 0.0f;
gpmd->fill_offset[1] = 0.0f;
gpmd->uv_offset = 0.0f;
gpmd->uv_scale = 1.0f;
gpmd->pass_index = 0;
gpmd->material = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(TextureGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -59,14 +60,13 @@
static void initData(GpencilModifierData *md)
{
ThickGpencilModifierData *gpmd = (ThickGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->thickness_fac = 1.0f;
gpmd->thickness = 30;
gpmd->material = NULL;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(ThickGpencilModifierData), modifier);
gpmd->curve_thickness = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_thickness) {
BKE_curvemapping_init(gpmd->curve_thickness);
}
BKE_curvemapping_init(gpmd->curve_thickness);
}
static void freeData(GpencilModifierData *md)

View File

@ -29,6 +29,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -57,11 +58,10 @@
static void initData(GpencilModifierData *md)
{
TimeGpencilModifierData *gpmd = (TimeGpencilModifierData *)md;
gpmd->offset = 1;
gpmd->frame_scale = 1.0f;
gpmd->flag |= GP_TIME_KEEP_LOOP;
gpmd->sfra = 1;
gpmd->efra = 250;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(TimeGpencilModifierData), modifier);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -30,6 +30,7 @@
#include "BLT_translation.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_meshdata_types.h"
@ -71,13 +72,10 @@
static void initData(GpencilModifierData *md)
{
TintGpencilModifierData *gpmd = (TintGpencilModifierData *)md;
gpmd->pass_index = 0;
gpmd->material = NULL;
gpmd->object = NULL;
gpmd->radius = 1.0f;
gpmd->factor = 0.5f;
ARRAY_SET_ITEMS(gpmd->rgb, 1.0f, 1.0f, 1.0f);
gpmd->mode = GPPAINT_MODE_BOTH;
BLI_assert(MEMCMP_STRUCT_AFTER_IS_ZERO(gpmd, modifier));
MEMCPY_STRUCT_AFTER(gpmd, DNA_struct_default_get(TintGpencilModifierData), modifier);
/* Add default color ramp. */
gpmd->colorband = BKE_colorband_add(false);
@ -94,10 +92,7 @@ static void initData(GpencilModifierData *md)
}
gpmd->curve_intensity = BKE_curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f);
if (gpmd->curve_intensity) {
CurveMapping *curve = gpmd->curve_intensity;
BKE_curvemapping_init(curve);
}
BKE_curvemapping_init(gpmd->curve_intensity);
}
static void copyData(const GpencilModifierData *md, GpencilModifierData *target)

View File

@ -0,0 +1,286 @@
/*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/** \file
* \ingroup DNA
*/
#pragma once
/* Note that some struct members for colormapping and colorbands are not initialized here. */
/* Struct members on own line. */
/* clang-format off */
#define _DNA_DEFAULT_ArmatureGpencilModifierData \
{ \
.deformflag = ARM_DEF_VGROUP, \
.multi = 0, \
.object = NULL, \
.vert_coords_prev = NULL, \
.vgname = "", \
}
#define _DNA_DEFAULT_ArrayGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.count = 2, \
.flag = GP_ARRAY_USE_RELATIVE, \
.offset = {0.0f, 0.0f, 0.0f}, \
.shift = {1.0f, 0.0f, 0.0f}, \
.rnd_offset = {0.0f, 0.0f, 0.0f}, \
.rnd_rot = {0.0f, 0.0f, 0.0f}, \
.rnd_scale = {0.0f, 0.0f, 0.0f}, \
.seed = 1, \
.pass_index = 0, \
.layername = "", \
.mat_rpl = 0, \
.layer_pass = 0, \
}
/* Deliberately set this range to the half the default frame-range
* to have an immediate effect to suggest use-cases. */
#define _DNA_DEFAULT_BuildGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.layer_pass = 0, \
.start_frame = 1, \
.end_frame = 125, \
.start_delay = 0.0f, \
.length = 100.0f, \
.flag = 0, \
.mode = 0, \
.transition = 0, \
.time_alignment = 0, \
.percentage_fac = 0.0f, \
}
#define _DNA_DEFAULT_ColorGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.hsv = {0.5f, 1.0f, 1.0f}, \
.modify_color = GP_MODIFY_COLOR_BOTH, \
.layer_pass = 0, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_HookGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.subtarget = "", \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.layer_pass = 0, \
.flag = 0, \
.falloff_type = eGPHook_Falloff_Smooth, \
.parentinv = _DNA_DEFAULT_UNIT_M4, \
.cent = {0.0f, 0.0f, 0.0f}, \
.falloff = 0.0f, \
.force = 0.5f, \
.curfalloff = NULL, \
}
#define _DNA_DEFAULT_LatticeGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.strength = 1.0f, \
.layer_pass = 0, \
.cache_data = NULL, \
}
#define _DNA_DEFAULT_MirrorGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = GP_MIRROR_AXIS_X, \
.layer_pass = 0, \
}
#define _DNA_DEFAULT_MultiplyGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.layer_pass = 0, \
.flags = 0, \
.duplications = 3, \
.distance = 0.1f, \
.offset = 0.0f, \
.fading_center = 0.5f, \
.fading_thickness = 0.5f, \
.fading_opacity = 0.5f, \
.split_angle = DEG2RADF(1.0f), \
}
#define _DNA_DEFAULT_NoiseGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = GP_NOISE_FULL_STROKE | GP_NOISE_USE_RANDOM, \
.factor = 0.5f, \
.factor_strength = 0.0f, \
.factor_thickness = 0.0f, \
.factor_uvs = 0.0f, \
.noise_scale = 0.0f, \
.step = 4, \
.layer_pass = 0, \
.seed = 1, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_OffsetGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.loc = {0.0f, 0.0f, 0.0f}, \
.rot = {0.0f, 0.0f, 0.0f}, \
.scale = {0.0f, 0.0f, 0.0f}, \
.layer_pass = 0, \
}
#define _DNA_DEFAULT_OpacityGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.factor = 1.0f, \
.modify_color = GP_MODIFY_COLOR_BOTH, \
.layer_pass = 0, \
.hardeness = 1.0f, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_SimplifyGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.factor = 0.0f, \
.mode = 0, \
.step = 1, \
.layer_pass = 0, \
.length = 0.1f, \
.distance = 0.1f, \
}
#define _DNA_DEFAULT_SmoothGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = GP_SMOOTH_MOD_LOCATION, \
.factor = 0.5f, \
.step = 1, \
.layer_pass = 0, \
.curve_intensity = NULL, \
}
#define _DNA_DEFAULT_SubdivGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.pass_index = 0, \
.flag = 0, \
.level = 1, \
.layer_pass = 0, \
.type = 0, \
}
#define _DNA_DEFAULT_TextureGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.uv_offset = 0.0f, \
.uv_scale = 1.0f, \
.fill_rotation = 0.0f, \
.fill_offset = {0.0f, 0.0f}, \
.fill_scale = 1.0f, \
.layer_pass = 0, \
.fit_method = GP_TEX_CONSTANT_LENGTH, \
.mode = 0, \
}
#define _DNA_DEFAULT_ThickGpencilModifierData \
{ \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.flag = 0, \
.thickness_fac = 1.0f, \
.thickness = 30, \
.layer_pass = 0, \
}
#define _DNA_DEFAULT_TimeGpencilModifierData \
{ \
.layername = "", \
.layer_pass = 0, \
.flag = GP_TIME_KEEP_LOOP, \
.offset = 1, \
.frame_scale = 1.0f, \
.mode = 0, \
.sfra = 1, \
.efra = 250, \
}
#define _DNA_DEFAULT_TintGpencilModifierData \
{ \
.object = NULL, \
.material = NULL, \
.layername = "", \
.vgname = "", \
.pass_index = 0, \
.layer_pass = 0, \
.flag = 0, \
.mode = GPPAINT_MODE_BOTH, \
.factor = 0.5f, \
.radius = 1.0f, \
.rgb = {1.0f, 1.0f, 1.0f}, \
.type = 0, \
.curve_intensity = NULL, \
.colorband = NULL, \
}
/* clang-format off */

View File

@ -144,6 +144,7 @@ set(SRC
../DNA_curve_defaults.h
../DNA_defaults.h
../DNA_fluid_defaults.h
../DNA_gpencil_modifier_defaults.h
../DNA_hair_defaults.h
../DNA_image_defaults.h
../DNA_lattice_defaults.h

View File

@ -92,6 +92,7 @@
#include "DNA_collection_types.h"
#include "DNA_curve_types.h"
#include "DNA_fluid_types.h"
#include "DNA_gpencil_modifier_types.h"
#include "DNA_hair_types.h"
#include "DNA_image_types.h"
#include "DNA_key_types.h"
@ -122,6 +123,7 @@
#include "DNA_collection_defaults.h"
#include "DNA_curve_defaults.h"
#include "DNA_fluid_defaults.h"
#include "DNA_gpencil_modifier_defaults.h"
#include "DNA_hair_defaults.h"
#include "DNA_image_defaults.h"
#include "DNA_lattice_defaults.h"
@ -289,6 +291,26 @@ SDNA_DEFAULT_DECL_STRUCT(WeightVGProximityModifierData);
SDNA_DEFAULT_DECL_STRUCT(WeldModifierData);
SDNA_DEFAULT_DECL_STRUCT(WireframeModifierData);
/* DNA_gpencil_modifier_defaults.h */
SDNA_DEFAULT_DECL_STRUCT(ArmatureGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(ArrayGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(BuildGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(ColorGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(HookGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(LatticeGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(MirrorGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(MultiplyGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(NoiseGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(OffsetGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(OpacityGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(SimplifyGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(SmoothGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(SubdivGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(TextureGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(ThickGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(TimeGpencilModifierData);
SDNA_DEFAULT_DECL_STRUCT(TintGpencilModifierData);
#undef SDNA_DEFAULT_DECL_STRUCT
/* Reuse existing definitions. */
@ -488,6 +510,26 @@ const void *DNA_default_table[SDNA_TYPE_MAX] = {
SDNA_DEFAULT_DECL(WeightVGProximityModifierData),
SDNA_DEFAULT_DECL(WeldModifierData),
SDNA_DEFAULT_DECL(WireframeModifierData),
/* DNA_gpencil_modifier_defaults.h */
SDNA_DEFAULT_DECL(ArmatureGpencilModifierData),
SDNA_DEFAULT_DECL(ArrayGpencilModifierData),
SDNA_DEFAULT_DECL(BuildGpencilModifierData),
SDNA_DEFAULT_DECL(ColorGpencilModifierData),
SDNA_DEFAULT_DECL(HookGpencilModifierData),
SDNA_DEFAULT_DECL(LatticeGpencilModifierData),
SDNA_DEFAULT_DECL(MirrorGpencilModifierData),
SDNA_DEFAULT_DECL(MultiplyGpencilModifierData),
SDNA_DEFAULT_DECL(NoiseGpencilModifierData),
SDNA_DEFAULT_DECL(OffsetGpencilModifierData),
SDNA_DEFAULT_DECL(OpacityGpencilModifierData),
SDNA_DEFAULT_DECL(SimplifyGpencilModifierData),
SDNA_DEFAULT_DECL(SmoothGpencilModifierData),
SDNA_DEFAULT_DECL(SubdivGpencilModifierData),
SDNA_DEFAULT_DECL(TextureGpencilModifierData),
SDNA_DEFAULT_DECL(ThickGpencilModifierData),
SDNA_DEFAULT_DECL(TimeGpencilModifierData),
SDNA_DEFAULT_DECL(TintGpencilModifierData),
};
#undef SDNA_DEFAULT_DECL
#undef SDNA_DEFAULT_DECL_EX

View File

@ -459,7 +459,6 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "factor");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2);
RNA_def_property_float_default(prop, 0.5f);
RNA_def_property_ui_text(prop, "Offset Factor", "Amount of noise to apply");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -467,7 +466,6 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "factor_strength");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2);
RNA_def_property_float_default(prop, 0.5f);
RNA_def_property_ui_text(prop, "Strength Factor", "Amount of noise to apply to opacity");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -475,7 +473,6 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "factor_thickness");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2);
RNA_def_property_float_default(prop, 0.5f);
RNA_def_property_ui_text(prop, "Thickness Factor", "Amount of noise to apply to thickness");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -483,7 +480,6 @@ static void rna_def_modifier_gpencilnoise(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "factor_uvs");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 2);
RNA_def_property_float_default(prop, 0.5f);
RNA_def_property_ui_text(prop, "UV Factor", "Amount of noise to apply uv rotation");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -887,7 +883,6 @@ static void rna_def_modifier_gpencilthick(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "thickness_fac");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 10.0, 0.1, 3);
RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "Thickness Factor", "Factor to multiply the thickness with");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1218,7 +1213,6 @@ static void rna_def_modifier_gpenciltime(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "sfra");
RNA_def_property_int_funcs(prop, NULL, "rna_TimeModifier_start_frame_set", NULL);
RNA_def_property_range(prop, MINFRAME, MAXFRAME);
RNA_def_property_int_default(prop, 1);
RNA_def_property_ui_text(prop, "Start Frame", "First frame of the range");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1227,7 +1221,6 @@ static void rna_def_modifier_gpenciltime(BlenderRNA *brna)
RNA_def_property_int_sdna(prop, NULL, "efra");
RNA_def_property_int_funcs(prop, NULL, "rna_TimeModifier_end_frame_set", NULL);
RNA_def_property_range(prop, MINFRAME, MAXFRAME);
RNA_def_property_int_default(prop, 250);
RNA_def_property_ui_text(prop, "End Frame", "Final frame of the range");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1273,7 +1266,6 @@ static void rna_def_modifier_gpencilcolor(BlenderRNA *brna)
prop = RNA_def_property(srna, "hue", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0, 1.0);
RNA_def_property_ui_range(prop, 0.0, 1.0, 0.1, 3);
RNA_def_property_float_default(prop, 0.5);
RNA_def_property_float_sdna(prop, NULL, "hsv[0]");
RNA_def_property_ui_text(prop, "Hue", "Color Hue");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1281,7 +1273,6 @@ static void rna_def_modifier_gpencilcolor(BlenderRNA *brna)
prop = RNA_def_property(srna, "saturation", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 2.0, 0.1, 3);
RNA_def_property_float_default(prop, 1.0);
RNA_def_property_float_sdna(prop, NULL, "hsv[1]");
RNA_def_property_ui_text(prop, "Saturation", "Color Saturation");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1289,7 +1280,6 @@ static void rna_def_modifier_gpencilcolor(BlenderRNA *brna)
prop = RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 2.0, 0.1, 3);
RNA_def_property_float_default(prop, 1.0);
RNA_def_property_float_sdna(prop, NULL, "hsv[2]");
RNA_def_property_ui_text(prop, "Value", "Color Value");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -1382,7 +1372,6 @@ static void rna_def_modifier_gpencilopacity(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "hardeness");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, FLT_MAX, 0.1, 2);
RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "Hardness", "Factor of stroke hardness");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -2156,19 +2145,16 @@ static void rna_def_modifier_gpencilmultiply(BlenderRNA *brna)
prop = RNA_def_property(srna, "fading_thickness", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0, 1);
RNA_def_property_float_default(prop, 0.5);
RNA_def_property_ui_text(prop, "Thickness", "Fade influence of stroke's thickness");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
prop = RNA_def_property(srna, "fading_opacity", PROP_FLOAT, PROP_NONE);
RNA_def_property_range(prop, 0, 1);
RNA_def_property_float_default(prop, 0.5);
RNA_def_property_ui_text(prop, "Opacity", "Fade influence of stroke's opacity");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
prop = RNA_def_property(srna, "fading_center", PROP_FLOAT, PROP_FACTOR);
RNA_def_property_range(prop, 0, 1);
RNA_def_property_float_default(prop, 0.5);
RNA_def_property_ui_text(prop, "Center", "Fade center");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
}
@ -2267,7 +2253,6 @@ static void rna_def_modifier_gpenciltexture(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "uv_offset");
RNA_def_property_range(prop, -FLT_MAX, FLT_MAX);
RNA_def_property_ui_range(prop, -100.0, 100.0, 0.1, 3);
RNA_def_property_float_default(prop, 0.0f);
RNA_def_property_ui_text(prop, "UV Offset", "Offset value to add to stroke UVs");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");
@ -2275,7 +2260,6 @@ static void rna_def_modifier_gpenciltexture(BlenderRNA *brna)
RNA_def_property_float_sdna(prop, NULL, "uv_scale");
RNA_def_property_range(prop, 0.0, FLT_MAX);
RNA_def_property_ui_range(prop, 0.0, 100.0, 0.1, 3);
RNA_def_property_float_default(prop, 1.0f);
RNA_def_property_ui_text(prop, "UV Scale", "Factor to scale the UVs");
RNA_def_property_update(prop, 0, "rna_GpencilModifier_update");