Blender V5.0
blender::draw::CurvesModule Struct Reference

#include <draw_hair_private.hh>

Public Member Functions

 ~CurvesModule ()
void init ()
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())
void evaluate_curve_length_intercept (bool has_cyclic, int curve_count, CurvesEvalCache &cache)
gpu::VertBufPtr evaluate_topology_indirection (const int curve_count, const int point_count, CurvesEvalCache &cache, bool is_ribbon, bool has_cyclic)

Public Attributes

CurvesUniformBufPool ubo_pool
CurveRefinePass refine = {"CurvesEvalPass"}
Vector< gpu::VertBufPtrtransient_buffers
gpu::VertBufdummy_vbo = drw_curves_ensure_dummy_vbo()

Detailed Description

Definition at line 49 of file draw_hair_private.hh.

Constructor & Destructor Documentation

◆ ~CurvesModule()

blender::draw::CurvesModule::~CurvesModule ( )
inline

Definition at line 58 of file draw_hair_private.hh.

References dummy_vbo, and GPU_VERTBUF_DISCARD_SAFE.

Member Function Documentation

◆ evaluate_curve_attribute()

void blender::draw::CurvesModule::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() )

Definition at line 132 of file draw_curves.cc.

References blender::draw::detail::PassBase< DrawCommandBufType >::barrier(), blender::draw::CurvesEvalCache::basis_cache_buf, blender::draw::CurvesEvalCache::basis_cache_offset_buf, blender::draw::CurvesEvalCache::bezier_offsets_buf, blender::draw::detail::PassBase< DrawCommandBufType >::bind_ssbo(), BLI_assert, blender::draw::CurvesEvalCache::control_weights_buf, CURVE_CYCLIC_SLOT, CURVE_RESOLUTION_SLOT, CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, CURVE_TYPE_NURBS, CURVE_TYPE_POLY, CURVE_TYPE_SLOT, blender::draw::CurvesEvalCache::curves_cyclic_buf, blender::draw::CURVES_EVAL_FLOAT, blender::draw::CURVES_EVAL_FLOAT2, blender::draw::CURVES_EVAL_FLOAT3, blender::draw::CURVES_EVAL_FLOAT4, blender::draw::CURVES_EVAL_LENGTH_INTERCEPT, blender::draw::CURVES_EVAL_POSITION, blender::draw::CurvesEvalCache::curves_length_buf, CURVES_LENGTH_SLOT, blender::draw::CurvesEvalCache::curves_order_buf, blender::draw::CurvesEvalCache::curves_resolution_buf, blender::draw::CurvesEvalCache::curves_type_buf, DRW_shader_curves_refine_get(), dummy_vbo, EVALUATED_ATTR_SLOT, EVALUATED_POINT_SLOT, blender::draw::CurvesEvalCache::evaluated_points_by_curve_buf, blender::draw::CurvesEvalCache::evaluated_pos_rad_buf, EVALUATED_POS_RAD_SLOT, blender::draw::CurvesEvalCache::evaluated_time_buf, EVALUATED_TIME_SLOT, GPU_BARRIER_SHADER_STORAGE, blender::draw::CurvesEvalCache::handles_positions_left_buf, blender::draw::CurvesEvalCache::handles_positions_right_buf, POINT_ATTR_SLOT, POINT_POSITIONS_SLOT, POINT_RADII_SLOT, blender::draw::CurvesEvalCache::points_by_curve_buf, POINTS_BY_CURVES_SLOT, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), refine, blender::draw::detail::PassBase< DrawCommandBufType >::shader_set(), blender::draw::detail::PassBase< DrawCommandBufType >::specialize_constant(), blender::draw::detail::PassBase< DrawCommandBufType >::sub(), transform(), and transient_buffers.

Referenced by evaluate_positions().

◆ evaluate_curve_length_intercept()

◆ evaluate_positions()

void blender::draw::CurvesModule::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() )
inline

◆ evaluate_topology_indirection()

◆ init()

void blender::draw::CurvesModule::init ( )
inline

Definition at line 63 of file draw_hair_private.hh.

References DRW_STATE_NO_DRAW, refine, and ubo_pool.

Referenced by blender::draw::DRW_curves_begin_sync().

Member Data Documentation

◆ dummy_vbo

gpu::VertBuf* blender::draw::CurvesModule::dummy_vbo = drw_curves_ensure_dummy_vbo()

Definition at line 56 of file draw_hair_private.hh.

Referenced by evaluate_curve_attribute(), and ~CurvesModule().

◆ refine

CurveRefinePass blender::draw::CurvesModule::refine = {"CurvesEvalPass"}

◆ transient_buffers

Vector<gpu::VertBufPtr> blender::draw::CurvesModule::transient_buffers

Definition at line 54 of file draw_hair_private.hh.

Referenced by evaluate_curve_attribute().

◆ ubo_pool

CurvesUniformBufPool blender::draw::CurvesModule::ubo_pool

Definition at line 50 of file draw_hair_private.hh.

Referenced by init().


The documentation for this struct was generated from the following files: