forked from bartvdbraak/blender
Use loop data instead of face data
Replace checks in various places
This commit is contained in:
parent
15676bcc85
commit
67fe5726af
@ -1649,7 +1649,7 @@ static void mesh_calc_modifiers(
|
||||
const bool do_final_wmcol = (scene->toolsettings->weights_preview == WP_WPREVIEW_FINAL) && do_wmcol;
|
||||
#endif
|
||||
const bool do_final_wmcol = false;
|
||||
const bool do_init_wmcol = ((dataMask & CD_MASK_PREVIEW_MCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT) && !do_final_wmcol);
|
||||
const bool do_init_wmcol = ((dataMask & CD_MASK_PREVIEW_MLOOPCOL) && (ob->mode & OB_MODE_WEIGHT_PAINT) && !do_final_wmcol);
|
||||
/* XXX Same as above... For now, only weights preview in WPaint mode. */
|
||||
const bool do_mod_wmcol = do_init_wmcol;
|
||||
|
||||
@ -2555,16 +2555,16 @@ static CustomDataMask object_get_datamask(const Scene *scene, Object *ob, bool *
|
||||
|
||||
/* check if we need tfaces & mcols due to face select or texture paint */
|
||||
if ((ob->mode & OB_MODE_TEXTURE_PAINT) || editing) {
|
||||
mask |= CD_MASK_MTFACE | CD_MASK_MCOL;
|
||||
mask |= CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL;
|
||||
}
|
||||
|
||||
/* check if we need mcols due to vertex paint or weightpaint */
|
||||
if (ob->mode & OB_MODE_VERTEX_PAINT) {
|
||||
mask |= CD_MASK_MCOL;
|
||||
mask |= CD_MASK_MLOOPCOL;
|
||||
}
|
||||
|
||||
if (ob->mode & OB_MODE_WEIGHT_PAINT) {
|
||||
mask |= CD_MASK_PREVIEW_MCOL;
|
||||
mask |= CD_MASK_PREVIEW_MLOOPCOL;
|
||||
}
|
||||
|
||||
if (ob->mode & OB_MODE_EDIT)
|
||||
|
@ -515,7 +515,7 @@ static void cdDM_drawFacesTex_common(
|
||||
colType = CD_TEXTURE_MLOOPCOL;
|
||||
mloopcol = dm->getLoopDataArray(dm, colType);
|
||||
if (!mloopcol) {
|
||||
colType = CD_PREVIEW_MCOL;
|
||||
colType = CD_PREVIEW_MLOOPCOL;
|
||||
mloopcol = dm->getLoopDataArray(dm, colType);
|
||||
}
|
||||
if (!mloopcol) {
|
||||
|
@ -325,7 +325,7 @@ bool dynamicPaint_outputLayerExists(struct DynamicPaintSurface *surface, Object
|
||||
if (surface->format == MOD_DPAINT_SURFACE_F_VERTEX) {
|
||||
if (surface->type == MOD_DPAINT_SURFACE_T_PAINT) {
|
||||
Mesh *me = ob->data;
|
||||
return (CustomData_get_named_layer_index(&me->fdata, CD_MCOL, name) != -1);
|
||||
return (CustomData_get_named_layer_index(&me->ldata, CD_MLOOPCOL, name) != -1);
|
||||
}
|
||||
else if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT)
|
||||
return (defgroup_name_index(ob, surface->output_name) != -1);
|
||||
|
@ -3048,7 +3048,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
|
||||
colType = CD_TEXTURE_MLOOPCOL;
|
||||
mloopcol = dm->getLoopDataArray(dm, colType);
|
||||
if (!mloopcol) {
|
||||
colType = CD_PREVIEW_MCOL;
|
||||
colType = CD_PREVIEW_MLOOPCOL;
|
||||
mloopcol = dm->getLoopDataArray(dm, colType);
|
||||
}
|
||||
if (!mloopcol) {
|
||||
|
@ -83,8 +83,8 @@ static bool vertex_paint_use_fast_update_check(Object *ob)
|
||||
|
||||
if (dm) {
|
||||
Mesh *me = BKE_mesh_from_object(ob);
|
||||
if (me && me->mcol) {
|
||||
return (me->mcol == CustomData_get_layer(&dm->faceData, CD_MCOL));
|
||||
if (me && me->mloopcol) {
|
||||
return (me->mloopcol == CustomData_get_layer(&dm->loopData, CD_MLOOPCOL));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2619,7 +2619,7 @@ CustomDataMask ED_view3d_datamask(const Scene *scene, const View3D *v3d)
|
||||
if (ELEM(v3d->drawtype, OB_TEXTURE, OB_MATERIAL) ||
|
||||
((v3d->drawtype == OB_SOLID) && (v3d->flag2 & V3D_SOLID_TEX)))
|
||||
{
|
||||
mask |= CD_MASK_MTFACE | CD_MASK_MCOL;
|
||||
mask |= CD_MASK_MTEXPOLY | CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL;
|
||||
|
||||
if (BKE_scene_use_new_shading_nodes(scene)) {
|
||||
if (v3d->drawtype == OB_MATERIAL)
|
||||
|
@ -175,7 +175,7 @@ static void dupli_render_particle_set(Scene *scene, Object *ob, int level, int e
|
||||
/* this is to make sure we get render level duplis in groups:
|
||||
* the derivedmesh must be created before init_render_mesh,
|
||||
* since object_duplilist does dupliparticles before that */
|
||||
dm = mesh_create_derived_render(scene, ob, CD_MASK_BAREMESH | CD_MASK_MTFACE | CD_MASK_MCOL);
|
||||
dm = mesh_create_derived_render(scene, ob, CD_MASK_BAREMESH | CD_MASK_MLOOPUV | CD_MASK_MLOOPCOL);
|
||||
dm->release(dm);
|
||||
|
||||
for (psys = ob->particlesystem.first; psys; psys = psys->next)
|
||||
|
@ -76,24 +76,24 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
if (surface->format == MOD_DPAINT_SURFACE_F_IMAGESEQ ||
|
||||
surface->init_color_type == MOD_DPAINT_INITIAL_TEXTURE)
|
||||
{
|
||||
dataMask |= (1 << CD_MTFACE);
|
||||
dataMask |= CD_MASK_MLOOPUV | CD_MASK_MTEXPOLY;
|
||||
}
|
||||
/* mcol */
|
||||
if (surface->type == MOD_DPAINT_SURFACE_T_PAINT ||
|
||||
surface->init_color_type == MOD_DPAINT_INITIAL_VERTEXCOLOR)
|
||||
{
|
||||
dataMask |= (1 << CD_MCOL);
|
||||
dataMask |= CD_MASK_MLOOPCOL;
|
||||
}
|
||||
/* CD_MDEFORMVERT */
|
||||
if (surface->type == MOD_DPAINT_SURFACE_T_WEIGHT) {
|
||||
dataMask |= (1 << CD_MDEFORMVERT);
|
||||
dataMask |= CD_MASK_MDEFORMVERT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (pmd->brush) {
|
||||
if (pmd->brush->flags & MOD_DPAINT_USE_MATERIAL) {
|
||||
dataMask |= (1 << CD_MTFACE);
|
||||
dataMask |= CD_MASK_MLOOPUV | CD_MASK_MTEXPOLY;
|
||||
}
|
||||
}
|
||||
return dataMask;
|
||||
|
Loading…
Reference in New Issue
Block a user