71 switch (
object.type) {
121 switch (
object.type) {
123 Mesh *mesh =
static_cast<Mesh *
>(
object.data);
124 if (
const std::optional<bke::AttributeMetaData> meta_data =
125 mesh->attributes().lookup_meta_data(
".viewer"))
137 if (
const std::optional<bke::AttributeMetaData> meta_data =
138 pointcloud->
attributes().lookup_meta_data(
".viewer"))
141 gpu::VertBuf **vertbuf = DRW_pointcloud_evaluated_attribute(pointcloud,
".viewer");
151 Curve *curve =
static_cast<Curve *
>(
object.data);
152 if (curve->curve_eval) {
154 if (
const std::optional<bke::AttributeMetaData> meta_data =
155 curves.attributes().lookup_meta_data(
".viewer"))
170 if (
const std::optional<bke::AttributeMetaData> meta_data =
171 curves.attributes().lookup_meta_data(
".viewer"))
174 bool is_point_domain;
175 gpu::VertBuf **texture = DRW_curves_texture_for_evaluated_attribute(
176 curves_id,
".viewer", &is_point_domain);
196 const auto &instances =
198 if (
const std::optional<blender::bke::AttributeMetaData> meta_data =
199 instances.attributes()->lookup_meta_data(
".viewer"))
Low-level operations for curves.
CustomData interface, see also DNA_customdata_types.h.
#define CD_TYPE_AS_MASK(_type)
#define CD_MASK_PROP_QUATERNION
#define CD_MASK_PROP_FLOAT4X4
#define DRW_PASS_CREATE(pass, state)
#define DRW_shgroup_call_obmat(shgroup, geom, obmat)
#define DRW_shgroup_call(shgroup, geom, ob)
struct GPUShader GPUShader
blender::gpu::Batch * DRW_cache_curve_edge_wire_viewer_attribute_get(Object *ob)
blender::gpu::Batch * DRW_cache_curve_edge_wire_get(Object *ob)
blender::gpu::Batch * DRW_cache_mesh_surface_get(Object *ob)
blender::gpu::Batch * DRW_cache_mesh_loose_edges_get(Object *ob)
blender::gpu::Batch * DRW_cache_mesh_surface_viewer_attribute_get(Object *ob)
DupliObject * DRW_object_get_dupli(const Object *)
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)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
void DRW_shgroup_buffer_texture_ref(DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf **vertex_buffer)
void DRW_shgroup_uniform_vec4_copy(DRWShadingGroup *shgroup, const char *name, const float *value)
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_uniform_color()
GPUShader * OVERLAY_shader_uniform_color_pointcloud()
GPUShader * OVERLAY_shader_viewer_attribute_curve()
GPUShader * OVERLAY_shader_viewer_attribute_pointcloud()
GPUShader * OVERLAY_shader_viewer_attribute_curves()
GPUShader * OVERLAY_shader_viewer_attribute_mesh()
static bool attribute_type_supports_viewer_overlay(const eCustomDataType data_type)
static void populate_cache_for_geometry(Object &object, OVERLAY_PrivateData &pd, const float opacity)
void OVERLAY_viewer_attribute_draw(OVERLAY_Data *vedata)
void OVERLAY_viewer_attribute_cache_populate(OVERLAY_Data *vedata, Object *object)
static void populate_cache_for_instance(Object &object, OVERLAY_PrivateData &pd, const DupliObject &dupli_object, const float opacity)
void OVERLAY_viewer_attribute_cache_init(OVERLAY_Data *vedata)
const blender::bke::GeometrySet * preview_base_geometry
int preview_instance_index
OVERLAY_StorageList * stl
DRWShadingGroup * viewer_attribute_instance_grp
DRWShadingGroup * viewer_attribute_pointcloud_grp
DRWShadingGroup * viewer_attribute_curve_grp
DRWShadingGroup * viewer_attribute_instance_pointcloud_grp
DRWShadingGroup * viewer_attribute_mesh_grp
DRWShadingGroup * viewer_attribute_curves_grp
float viewer_attribute_opacity
const GeometryComponent * get_component(GeometryComponent::Type component_type) const