Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/workbench/workbench_engine.c
| Show First 20 Lines • Show All 174 Lines • ▼ Show 20 Lines | static void workbench_cache_common_populate(WORKBENCH_PrivateData *wpd, | ||||
| if (use_single_drawcall) { | if (use_single_drawcall) { | ||||
| struct GPUBatch *geom; | struct GPUBatch *geom; | ||||
| if (use_vcol) { | if (use_vcol) { | ||||
| if (ob->mode & OB_MODE_VERTEX_PAINT) { | if (ob->mode & OB_MODE_VERTEX_PAINT) { | ||||
| geom = DRW_cache_mesh_surface_vertpaint_get(ob); | geom = DRW_cache_mesh_surface_vertpaint_get(ob); | ||||
| } | } | ||||
| else { | else { | ||||
| if (U.experimental.use_sculpt_vertex_colors) { | |||||
| geom = DRW_cache_mesh_surface_sculptcolors_get(ob); | geom = DRW_cache_mesh_surface_sculptcolors_get(ob); | ||||
| } | } | ||||
| else { | |||||
| geom = DRW_cache_mesh_surface_vertpaint_get(ob); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| else { | else { | ||||
| geom = DRW_cache_object_surface_get(ob); | geom = DRW_cache_object_surface_get(ob); | ||||
| } | } | ||||
| if (geom) { | if (geom) { | ||||
| DRWShadingGroup *grp = workbench_material_setup(wpd, ob, 0, color_type, r_transp); | DRWShadingGroup *grp = workbench_material_setup(wpd, ob, 0, color_type, r_transp); | ||||
| DRW_shgroup_call(grp, geom, ob); | DRW_shgroup_call(grp, geom, ob); | ||||
| ▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | if (ob->dt < OB_TEXTURE) { | ||||
| color_type = V3D_SHADING_MATERIAL_COLOR; | color_type = V3D_SHADING_MATERIAL_COLOR; | ||||
| } | } | ||||
| else if ((me == NULL) || (me->mloopuv == NULL)) { | else if ((me == NULL) || (me->mloopuv == NULL)) { | ||||
| /* Disable color mode if data layer is unavailable. */ | /* Disable color mode if data layer is unavailable. */ | ||||
| color_type = V3D_SHADING_MATERIAL_COLOR; | color_type = V3D_SHADING_MATERIAL_COLOR; | ||||
| } | } | ||||
| } | } | ||||
| else if (color_type == V3D_SHADING_VERTEX_COLOR) { | else if (color_type == V3D_SHADING_VERTEX_COLOR) { | ||||
| if (U.experimental.use_sculpt_vertex_colors) { | |||||
| if ((me == NULL) || !CustomData_has_layer(&me->vdata, CD_PROP_COLOR)) { | if ((me == NULL) || !CustomData_has_layer(&me->vdata, CD_PROP_COLOR)) { | ||||
| color_type = V3D_SHADING_OBJECT_COLOR; | color_type = V3D_SHADING_OBJECT_COLOR; | ||||
| } | } | ||||
| } | } | ||||
| else { | |||||
| if ((me == NULL) || !CustomData_has_layer(&me->ldata, CD_MLOOPCOL)) { | |||||
| color_type = V3D_SHADING_OBJECT_COLOR; | |||||
| } | |||||
| } | |||||
| } | |||||
| if (r_sculpt_pbvh) { | if (r_sculpt_pbvh) { | ||||
| *r_sculpt_pbvh = is_sculpt_pbvh; | *r_sculpt_pbvh = is_sculpt_pbvh; | ||||
| } | } | ||||
| if (r_texpaint_mode) { | if (r_texpaint_mode) { | ||||
| *r_texpaint_mode = false; | *r_texpaint_mode = false; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 358 Lines • Show Last 20 Lines | |||||