43 blender::gpu::Batch *sculpt_overlays;
64 switch (pbvh->
type()) {
66 const Mesh &mesh = *
static_cast<const Mesh *
>(object_orig->
data);
67 if (!mesh.attributes().contains(
".sculpt_face_set") &&
68 !mesh.attributes().contains(
".sculpt_mask"))
76 const Mesh &base_mesh = *
static_cast<const Mesh *
>(object_orig->
data);
97 sculpt_overlays = DRW_mesh_batch_cache_get_sculpt_overlays(*
static_cast<Mesh *
>(ob->
data));
98 if (sculpt_overlays) {
bool CustomData_has_layer_named(const CustomData *data, eCustomDataType type, blender::StringRef name)
bool BKE_sculptsession_use_pbvh_draw(const Object *ob, const RegionView3D *rv3d)
A BVH for high poly meshes.
#define BLI_assert_unreachable()
ID * DEG_get_original_id(ID *id)
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_call(shgroup, geom, ob)
void GPU_framebuffer_bind(GPUFrameBuffer *framebuffer)
struct GPUShader GPUShader
ATTR_WARN_UNUSED_RESULT BMesh * bm
DefaultFramebufferList * DRW_viewport_framebuffer_list_get()
const DRWContextState * DRW_context_state_get()
DRWShadingGroup * DRW_shgroup_create(GPUShader *shader, DRWPass *pass)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_shgroup_call_sculpt(DRWShadingGroup *shgroup, Object *ob, bool use_wire, bool use_mask, bool use_fset, bool use_color, bool use_uv)
void DRW_draw_pass(DRWPass *pass)
@ DRW_STATE_DEPTH_LESS_EQUAL
pbvh::Tree * pbvh_get(Object &object)
GPUShader * OVERLAY_shader_sculpt_mask()
void OVERLAY_sculpt_cache_populate(OVERLAY_Data *vedata, Object *ob)
void OVERLAY_sculpt_draw(OVERLAY_Data *vedata)
void OVERLAY_sculpt_cache_init(OVERLAY_Data *vedata)
GPUFrameBuffer * in_front_fb
GPUFrameBuffer * default_fb
OVERLAY_StorageList * stl
struct OVERLAY_PrivateData::@235 painting
DRWShadingGroup * sculpt_mask_grp
struct SculptSession * sculpt
blender::Array< float > masks
float sculpt_mode_mask_opacity
float sculpt_mode_face_sets_opacity