48 const float vert[4] = {0.0f, 0.0f, 0.0f, 0.0f};
72 if (gpu_material !=
nullptr) {
105template<
typename PassT>
121 sub_ps.bind_texture(
"ptcloud_pos_rad_tx", pos_rad_buf);
123 if (gpu_material !=
nullptr) {
126 char sampler_name[32];
132 sub_ps.bind_texture(sampler_name, (attribute_buf) ? attribute_buf : &
g_dummy_vbo);
#define LISTBASE_FOREACH(type, var, list)
#define DRW_shgroup_call(shgroup, geom, ob)
ListBase GPU_material_attributes(const GPUMaterial *material)
void GPU_vertbuf_attr_fill(blender::gpu::VertBuf *, uint a_idx, const void *data)
blender::gpu::VertBuf * GPU_vertbuf_create_with_format_ex(const GPUVertFormat &format, GPUUsageType usage)
#define GPU_VERTBUF_DISCARD_SAFE(verts)
void GPU_vertbuf_data_alloc(blender::gpu::VertBuf &verts, uint v_len)
@ GPU_USAGE_FLAG_BUFFER_TEXTURE_ONLY
detail::PassBase< command::DrawCommandBuf > Sub
Utilities for rendering attributes.
void DRW_shgroup_buffer_texture(DRWShadingGroup *shgroup, const char *name, blender::gpu::VertBuf *vertex_buffer)
DRWShadingGroup * DRW_shgroup_create_sub(DRWShadingGroup *shgroup)
gpu::Batch * point_cloud_sub_pass_setup(PassMain::Sub &sub_ps, Object *object, GPUMaterial *gpu_material=nullptr)
gpu::Batch * pointcloud_surface_get(PointCloud *pointcloud)
void drw_curves_get_attribute_sampler_name(const char *layer_name, char r_sampler_name[32])
gpu::Batch ** pointcloud_surface_shaded_get(PointCloud *pointcloud, GPUMaterial **gpu_materials, int mat_len)
static gpu::VertBuf * g_dummy_vbo
void DRW_pointcloud_init()
gpu::Batch * point_cloud_sub_pass_setup_implementation(PassT &sub_ps, Object *object, GPUMaterial *gpu_material)
DRWShadingGroup * DRW_shgroup_pointcloud_create_sub(Object *object, DRWShadingGroup *shgrp_parent, GPUMaterial *gpu_material)
gpu::VertBuf ** DRW_pointcloud_evaluated_attribute(PointCloud *pointcloud, const char *name)
gpu::VertBuf * pointcloud_position_and_radius_get(PointCloud *pointcloud)
void DRW_pointcloud_free()