[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