56 const VArray<bool> selection = *curves.attributes().lookup_or_default<
bool>(
57 ".selection", bke::AttrDomain::Point,
true);
58 return selection.
is_single() && selection.get_internal_single();
75 curves,
".selection", &is_point_domain);
76 if (texture ==
nullptr) {
83 if (*texture ==
nullptr) {
97 blender::gpu::Batch *geom_lines = DRW_curves_batch_cache_get_sculpt_curves_cage(curves);
Low-level operations for curves.
@ V3D_OVERLAY_SCULPT_CURVES_CAGE
#define DRW_shgroup_call_no_cull(shgroup, geom, ob)
#define DRW_PASS_CREATE(pass, state)
struct GPUShader GPUShader
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_buffer_texture(DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf *vertex_buffer)
void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value)
void DRW_draw_pass(DRWPass *pass)
@ DRW_STATE_DEPTH_LESS_EQUAL
GPUShader * OVERLAY_shader_sculpt_curves_cage()
GPUShader * OVERLAY_shader_sculpt_curves_selection()
static void populate_selection_overlay(OVERLAY_Data *vedata, Object *object)
void OVERLAY_sculpt_curves_cache_init(OVERLAY_Data *vedata)
static bool everything_selected(const Curves &curves_id)
void OVERLAY_sculpt_curves_cache_populate(OVERLAY_Data *vedata, Object *object)
static void populate_edit_overlay(OVERLAY_Data *vedata, Object *object)
void OVERLAY_sculpt_curves_draw_wires(OVERLAY_Data *vedata)
void OVERLAY_sculpt_curves_draw(OVERLAY_Data *vedata)
OVERLAY_StorageList * stl
DRWPass * sculpt_curves_cage_ps
DRWPass * sculpt_curves_selection_ps
DRWShadingGroup * sculpt_curves_selection_grp
DRWShadingGroup * sculpt_curves_cage_lines_grp
float sculpt_mode_mask_opacity
float sculpt_curves_cage_opacity