38 ubos.first()->push_update();
108 std::move(input_pos_buf),
111 input_rad_buf.release(),
118 const int point_count,
131#define MAX_LAYER_NAME_CT 4
132#define MAX_LAYER_NAME_LEN (GPU_MAX_SAFE_ATTR_NAME + 2)
133#define MAX_THICKRES 2
134#define MAX_HAIR_SUBDIV 4
143struct ParticleHairCache;
153 int additional_subdivision);
struct PTCacheEdit PTCacheEdit
struct ModifierData ModifierData
struct ParticleSystem ParticleSystem
#define GPU_VERTBUF_DISCARD_SAFE(verts)
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
CurveRefinePass(const char *name)
detail::PassBase< command::DrawCommandBuf > Sub
@ PART_REFINE_CATMULL_ROM
void drw_particle_update_ptcache(Object *object_eval, ParticleSystem *psys)
CurvesEvalCache & hair_particle_get_eval_cache(ParticleDrawSource &src)
detail::Pass< command::DrawCommandBuf > PassSimple
ParticleDrawSource drw_particle_get_hair_source(Object *object, ParticleSystem *psys, ModifierData *md, PTCacheEdit *edit, const int additional_subdivision)
UniformBuffer< CurvesInfos > CurvesInfosBuf
std::unique_ptr< gpu::VertBuf, gpu::VertBufDeleter > VertBufPtr
MatBase< float, 4, 4 > float4x4
static MatBase identity()
CurvesUniformBufPool ubo_pool
void evaluate_curve_attribute(bool has_catmull, bool has_bezier, bool has_poly, bool has_nurbs, bool has_cyclic, int curve_count, CurvesEvalCache &cache, CurvesEvalShader shader_type, gpu::VertBufPtr input_buf, gpu::VertBufPtr &output_buf, gpu::VertBuf *input2_buf=nullptr, float4x4 transform=float4x4::identity())
void evaluate_positions(bool has_catmull, bool has_bezier, bool has_poly, bool has_nurbs, bool has_cyclic, int curve_count, CurvesEvalCache &cache, gpu::VertBufPtr input_pos_buf, gpu::VertBufPtr input_rad_buf, gpu::VertBufPtr &output_pos_buf, float4x4 transform=float4x4::identity())
Vector< gpu::VertBufPtr > transient_buffers
gpu::VertBufPtr evaluate_topology_indirection(const int curve_count, const int point_count, CurvesEvalCache &cache, bool is_ribbon, bool has_cyclic)
void evaluate_curve_length_intercept(bool has_cyclic, int curve_count, CurvesEvalCache &cache)