[Bf-blender-cvs] [f8197097e54] temp-greasepencil-object-stacksplit: WIP: More changes for modifiers
Antonio Vazquez
noreply at git.blender.org
Fri Jun 15 20:36:02 CEST 2018
Commit: f8197097e5446e886e1113be8cf6f432e6499445
Author: Antonio Vazquez
Date: Fri Jun 15 20:35:51 2018 +0200
Branches: temp-greasepencil-object-stacksplit
https://developer.blender.org/rBf8197097e5446e886e1113be8cf6f432e6499445
WIP: More changes for modifiers
===================================================================
M source/blender/blenkernel/BKE_gpencil.h
M source/blender/blenkernel/BKE_gpencil_modifier.h
M source/blender/blenkernel/intern/gpencil_modifier.c
M source/blender/blenkernel/intern/object.c
M source/blender/blenloader/intern/writefile.c
M source/blender/draw/engines/gpencil/gpencil_draw_utils.c
M source/blender/editors/include/ED_object.h
M source/blender/editors/object/CMakeLists.txt
A source/blender/editors/object/object_gpencil_modifier.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilbuild.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilcolor.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilhook.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilinstance.c
M source/blender/gpencil_modifiers/intern/MOD_gpencillattice.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilnoise.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciloffset.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilopacity.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsimplify.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsmooth.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilsubdiv.c
M source/blender/gpencil_modifiers/intern/MOD_gpencilthick.c
M source/blender/gpencil_modifiers/intern/MOD_gpenciltint.c
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_greasepencil_modifier.c
===================================================================
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index cc4e5dcfb61..f579a494de7 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -195,6 +195,6 @@ float BKE_gpencil_multiframe_falloff_calc(struct bGPDframe *gpf, int actnum, int
/* modifiers */
-bool greasepencil_modifier_unique_name(struct ListBase *modifiers, struct GreasePencilModifierData *gmd);
+bool gpencil_modifier_unique_name(struct ListBase *modifiers, struct GreasePencilModifierData *gmd);
#endif /* __BKE_GPENCIL_H__ */
diff --git a/source/blender/blenkernel/BKE_gpencil_modifier.h b/source/blender/blenkernel/BKE_gpencil_modifier.h
index a29ad3f4ffc..e54023699f2 100644
--- a/source/blender/blenkernel/BKE_gpencil_modifier.h
+++ b/source/blender/blenkernel/BKE_gpencil_modifier.h
@@ -47,12 +47,13 @@ struct DepsNodeHandle;
struct bGPDlayer;
struct bGPDframe;
struct bGPDstroke;
+struct ModifierUpdateDepsgraphContext;
typedef enum {
- eModifierTypeFlag_AcceptsMesh = (1 << 0),
- eModifierTypeFlag_AcceptsCVs = (1 << 1),
- eModifierTypeFlag_SupportsMapping = (1 << 2),
- eModifierTypeFlag_SupportsEditmode = (1 << 3),
+ eGreasePencilModifierTypeFlag_AcceptsMesh = (1 << 0),
+ eGreasePencilModifierTypeFlag_AcceptsCVs = (1 << 1),
+ eGreasePencilModifierTypeFlag_SupportsMapping = (1 << 2),
+ eGreasePencilModifierTypeFlag_SupportsEditmode = (1 << 3),
/* For modifiers that support editmode this determines if the
* modifier should be enabled by default in editmode. This should
@@ -60,28 +61,28 @@ typedef enum {
* also generally used in editmode, otherwise let the user enable
* it by hand.
*/
- eModifierTypeFlag_EnableInEditmode = (1 << 4),
+ eGreasePencilModifierTypeFlag_EnableInEditmode = (1 << 4),
/* For modifiers that require original data and so cannot
* be placed after any non-deformative modifier.
*/
- eModifierTypeFlag_RequiresOriginalData = (1 << 5),
+ eGreasePencilModifierTypeFlag_RequiresOriginalData = (1 << 5),
/* For modifiers that support pointcache, so we can check to see if it has files we need to deal with
*/
- eModifierTypeFlag_UsesPointCache = (1 << 6),
+ eGreasePencilModifierTypeFlag_UsesPointCache = (1 << 6),
/* For physics modifiers, max one per type */
- eModifierTypeFlag_Single = (1 << 7),
+ eGreasePencilModifierTypeFlag_Single = (1 << 7),
/* Some modifier can't be added manually by user */
- eModifierTypeFlag_NoUserAdd = (1 << 8),
+ eGreasePencilModifierTypeFlag_NoUserAdd = (1 << 8),
/* For modifiers that use CD_PREVIEW_MCOL for preview. */
- eModifierTypeFlag_UsesPreview = (1 << 9),
- eModifierTypeFlag_AcceptsLattice = (1 << 10),
+ eGreasePencilModifierTypeFlag_UsesPreview = (1 << 9),
+ eGreasePencilModifierTypeFlag_AcceptsLattice = (1 << 10),
/* Grease pencil modifiers (do not change mesh, only is placeholder) */
- eModifierTypeFlag_GpencilMod = (1 << 11),
+ eGreasePencilModifierTypeFlag_GpencilMod = (1 << 11),
} GreasePencilModifierTypeFlag;
typedef struct GreasePencilModifierTypeInfo {
@@ -196,7 +197,7 @@ typedef struct GreasePencilModifierTypeInfo {
* This function is optional.
*/
void (*updateDepsgraph)(struct GreasePencilModifierData *md,
- const ModifierUpdateDepsgraphContext *ctx);
+ const struct ModifierUpdateDepsgraphContext *ctx);
/* Should return true if the modifier needs to be recalculated on time
* changes.
@@ -250,11 +251,11 @@ typedef struct GreasePencilModifierTypeInfo {
/* Initialize modifier's global data (type info and some common global storages). */
void BKE_modifier_init(void);
-const GreasePencilModifierTypeInfo *modifierType_getInfo(GreasePencilModifierType type);
+const GreasePencilModifierTypeInfo *BKE_gpencil_modifierType_getInfo(GreasePencilModifierType type);
-struct GreasePencilModifierData *modifier_new(int type);
-void modifier_free_ex(struct GreasePencilModifierData *md, const int flag);
-void modifier_free(struct GreasePencilModifierData *md);
+struct GreasePencilModifierData *BKE_gpencil_modifier_new(int type);
+void BKE_gpencil_modifier_free(struct GreasePencilModifierData *md);
-bool greasepencil_modifier_unique_name(struct ListBase *modifiers, struct GreasePencilModifierData *gmd);
+bool BKE_gpencil_modifier_unique_name(struct ListBase *modifiers, struct GreasePencilModifierData *gmd);
+#endif __BKE_GREASEPENCIL_H__
\ No newline at end of file
diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c b/source/blender/blenkernel/intern/gpencil_modifier.c
index 33cb9711b77..0f98e19c2e1 100644
--- a/source/blender/blenkernel/intern/gpencil_modifier.c
+++ b/source/blender/blenkernel/intern/gpencil_modifier.c
@@ -47,7 +47,7 @@
#include "BKE_global.h"
#include "BKE_gpencil.h"
#include "BKE_lattice.h"
-#include "BKE_modifier.h"
+#include "BKE_gpencil_modifier.h"
#include "BKE_object.h"
#include "DEG_depsgraph.h"
@@ -317,9 +317,9 @@ void BKE_gpencil_simplify_fixed(bGPDstroke *gps)
/* init lattice deform data */
void BKE_gpencil_lattice_init(Object *ob)
{
- ModifierData *md;
+ GreasePencilModifierData *md;
for (md = ob->modifiers.first; md; md = md->next) {
- if (md->type == eModifierType_Gpencil_Lattice) {
+ if (md->type == eGreasePencilModifierType_Lattice) {
LatticeGreasePencilModifierData *mmd = (LatticeGreasePencilModifierData *)md;
Object *latob = NULL;
@@ -340,9 +340,9 @@ void BKE_gpencil_lattice_init(Object *ob)
/* clear lattice deform data */
void BKE_gpencil_lattice_clear(Object *ob)
{
- ModifierData *md;
+ GreasePencilModifierData *md;
for (md = ob->modifiers.first; md; md = md->next) {
- if (md->type == eModifierType_Gpencil_Lattice) {
+ if (md->type == eGreasePencilModifierType_Lattice) {
LatticeGreasePencilModifierData *mmd = (LatticeGreasePencilModifierData *)md;
if ((mmd) && (mmd->cache_data)) {
end_latt_deform((struct LatticeDeformData *)mmd->cache_data);
@@ -358,9 +358,9 @@ void BKE_gpencil_lattice_clear(Object *ob)
/* check if exist geometry modifiers */
bool BKE_gpencil_has_geometry_modifiers(Object *ob)
{
- ModifierData *md;
+ GreasePencilModifierData *md;
for (md = ob->modifiers.first; md; md = md->next) {
- const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ const GreasePencilModifierTypeInfo *mti = BKE_gpencil_modifierType_getInfo(md->type);
if (mti && mti->gp_generateStrokes) {
return true;
@@ -372,14 +372,14 @@ bool BKE_gpencil_has_geometry_modifiers(Object *ob)
/* apply stroke modifiers */
void BKE_gpencil_stroke_modifiers(Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *UNUSED(gpf), bGPDstroke *gps, bool is_render)
{
- ModifierData *md;
+ GreasePencilModifierData *md;
bGPdata *gpd = ob->data;
const bool is_edit = GPENCIL_ANY_EDIT_MODE(gpd);
for (md = ob->modifiers.first; md; md = md->next) {
if (GPENCIL_MODIFIER_ACTIVE(md, is_render))
{
- const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ const GreasePencilModifierTypeInfo *mti = BKE_gpencil_modifierType_getInfo(md->type);
if (GPENCIL_MODIFIER_EDIT(md, is_edit)) {
continue;
@@ -395,14 +395,14 @@ void BKE_gpencil_stroke_modifiers(Depsgraph *depsgraph, Object *ob, bGPDlayer *g
/* apply stroke geometry modifiers */
void BKE_gpencil_geometry_modifiers(Depsgraph *depsgraph, Object *ob, bGPDlayer *gpl, bGPDframe *gpf, bool is_render)
{
- ModifierData *md;
+ GreasePencilModifierData *md;
bGPdata *gpd = ob->data;
const bool is_edit = GPENCIL_ANY_EDIT_MODE(gpd);
for (md = ob->modifiers.first; md; md = md->next) {
if (GPENCIL_MODIFIER_ACTIVE(md, is_render))
{
- const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ const GreasePencilModifierTypeInfo *mti = BKE_gpencil_modifierType_getInfo(md->type);
if (GPENCIL_MODIFIER_EDIT(md, is_edit)) {
continue;
@@ -452,15 +452,11 @@ void BKE_gpencil_eval_geometry(Depsgraph *depsgraph,
/* *************************************************** */
-bool greasepencil_modifier_unique_name(ListBase *modifiers, GreasePencilModifierData *gmd)
+bool gpencil_modifier_unique_name(ListBase *modifiers, GreasePencilModifierData *gmd)
{
-#ifdef TODO_GPENCIL_MODS
if (modifiers && gmd) {
- const GreasePencilModifierTypeInfo *gmti = greasepencil_modifierType_getInfo(gmd->type);
+ const GreasePencilModifierTypeInfo *gmti = BKE_gpencil_modifierType_getInfo(gmd->type);
return BLI_uniquename(modifiers, gmd, DATA_(gmti->name), '.', offsetof(GreasePencilModifierData, name), sizeof(gmd->name));
}
-#else
- UNUSED_VARS(modifiers, gmd);
-#endif /* TODO_GPENCIL_MODS */
return false;
}
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 5ecee671874..988fd543e21 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -257,19 +257,10 @@ bool BKE_object_support_modifier_type_check(const Object *ob, int modifier_type)
mti = modifierType_getInfo(modifier_type);
/* only geometry objects should be able to get modifiers [#25291] */
- if (!ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE, OB_GPENCIL)) {
+ if (!ELEM(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) {
return false;
}
- if (ob->type == OB_GPENCIL) {
- if (mti->flags & eModifierTypeFlag_GpencilMod) {
- return true;
- }
- else {
- return false;
- }
- }
-
if (ob->type == OB_LATTICE && (mti->flags & eModifierTypeFlag_AcceptsLattice) == 0) {
return false;
}
diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c
index 645644a0ef2..5b6531629b2 100644
--- a/source/blender/blenloader/intern/writefile.c
+++ b/source/blender/blenloader/intern/writefile.c
@@ -1773,7 +1773,7 @@ static void write_gpencil_modifiers(WriteData *wd, ListBase *modbase)
}
for (md = modbase->first; md; md = md->next) {
- const GreasePencilModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ const GreasePencilModifierTypeInfo *mti = BKE_gpencil_modifierType_getInfo(md->type);
if (mti == NULL) {
return;
}
diff --git a/source/blender/draw/engines/gpencil/gpencil_d
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list