Changeset View
Changeset View
Standalone View
Standalone View
source/blender/modifiers/intern/MOD_dynamicpaint.c
| Show First 20 Lines • Show All 58 Lines • ▼ Show 20 Lines | |||||
| } | } | ||||
| static void freeData(ModifierData *md) | static void freeData(ModifierData *md) | ||||
| { | { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | ||||
| dynamicPaint_Modifier_free(pmd); | dynamicPaint_Modifier_free(pmd); | ||||
| } | } | ||||
| static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md) | static void requiredDataMask(Object *UNUSED(ob), ModifierData *md, CustomData_MeshMasks *r_cddata_masks) | ||||
| { | { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *)md; | ||||
| CustomDataMask dataMask = 0; | |||||
| if (pmd->canvas) { | if (pmd->canvas) { | ||||
| DynamicPaintSurface *surface = pmd->canvas->surfaces.first; | DynamicPaintSurface *surface = pmd->canvas->surfaces.first; | ||||
| for (; surface; surface = surface->next) { | for (; surface; surface = surface->next) { | ||||
| /* tface */ | /* tface */ | ||||
| if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ || | if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ || | ||||
| surface->init_color_type == MOD_DPAINT_INITIAL_TEXTURE) | surface->init_color_type == MOD_DPAINT_INITIAL_TEXTURE) | ||||
| { | { | ||||
| dataMask |= CD_MASK_MLOOPUV; | r_cddata_masks->lmask |= CD_MASK_MLOOPUV; | ||||
| } | } | ||||
| /* mcol */ | /* mcol */ | ||||
| if (surface->type == MOD_DPAINT_SURFACE_T_PAINT || | if (surface->type == MOD_DPAINT_SURFACE_T_PAINT || | ||||
| surface->init_color_type == MOD_DPAINT_INITIAL_VERTEXCOLOR) | surface->init_color_type == MOD_DPAINT_INITIAL_VERTEXCOLOR) | ||||
| { | { | ||||
| dataMask |= CD_MASK_MLOOPCOL; | r_cddata_masks->lmask |= CD_MASK_MLOOPCOL; | ||||
| } | } | ||||
| /* CD_MDEFORMVERT */ | /* CD_MDEFORMVERT */ | ||||
| if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { | if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) { | ||||
| dataMask |= CD_MASK_MDEFORMVERT; | r_cddata_masks->vmask |= CD_MASK_MDEFORMVERT; | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| return dataMask; | |||||
| } | } | ||||
| static Mesh *applyModifier( | static Mesh *applyModifier( | ||||
| ModifierData *md, const ModifierEvalContext *ctx, | ModifierData *md, const ModifierEvalContext *ctx, | ||||
| Mesh *mesh) | Mesh *mesh) | ||||
| { | { | ||||
| DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md; | ||||
| ▲ Show 20 Lines • Show All 96 Lines • Show Last 20 Lines | |||||