[Bf-blender-cvs] [30780a4238f] greasepencil-object: GP Modifier: Set up stubs for geometry modifiers too

Joshua Leung noreply at git.blender.org
Sat Nov 4 05:48:16 CET 2017


Commit: 30780a4238f7254ab035737b1a42f3661b82e2c4
Author: Joshua Leung
Date:   Tue Oct 31 17:29:25 2017 +1300
Branches: greasepencil-object
https://developer.blender.org/rB30780a4238f7254ab035737b1a42f3661b82e2c4

GP Modifier: Set up stubs for geometry modifiers too

===================================================================

M	source/blender/blenkernel/intern/gpencil_modifier.c

===================================================================

diff --git a/source/blender/blenkernel/intern/gpencil_modifier.c b/source/blender/blenkernel/intern/gpencil_modifier.c
index cb70a8212bc..f2afcee7134 100644
--- a/source/blender/blenkernel/intern/gpencil_modifier.c
+++ b/source/blender/blenkernel/intern/gpencil_modifier.c
@@ -764,6 +764,13 @@ bool BKE_gpencil_has_geometry_modifiers(Object *ob)
 {
 	ModifierData *md;
 	for (md = ob->modifiers.first; md; md = md->next) {
+		const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+		
+		if (mti->generateStrokes) {
+			return true;
+		}
+			
+		// XXX: Remove
 		if (md->type == eModifierType_GpencilDupli) {
 			return true;
 		}
@@ -778,7 +785,7 @@ void BKE_gpencil_stroke_modifiers(Object *ob, bGPDlayer *gpl, bGPDframe *UNUSED(
 	bGPdata *gpd = ob->data;
 	bool is_edit = GPENCIL_ANY_EDIT_MODE(gpd);
 
-	int id = 0;
+	int id = 0; // XXX: Remove
 	for (md = ob->modifiers.first; md; md = md->next) {
 		if (((md->mode & eModifierMode_Realtime) && ((G.f & G_RENDER_OGL) == 0)) ||
 		    ((md->mode & eModifierMode_Render) && (G.f & G_RENDER_OGL)))
@@ -842,10 +849,18 @@ void BKE_gpencil_geometry_modifiers(Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
 		if (((md->mode & eModifierMode_Realtime) && ((G.f & G_RENDER_OGL) == 0)) ||
 		    ((md->mode & eModifierMode_Render) && (G.f & G_RENDER_OGL)))
 		{
+			const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+			
 			if (((md->mode & eModifierMode_Editmode) == 0) && (is_edit)) {
 				continue;
 			}
 
+			if (mti->generateStrokes) {
+				EvaluationContext eval_ctx = {0}; /* XXX */
+				mti->generateStrokes(md, &eval_ctx, ob, gpl, gpf, id);
+			}
+
+			// XXX: The following lines need to all be converted to modifier callbacks...
 			switch (md->type) {
 				// Array
 				case eModifierType_GpencilDupli:



More information about the Bf-blender-cvs mailing list