|
Blender V5.0
|
#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::VertBufPtr > | transient_buffers |
| gpu::VertBuf * | dummy_vbo = drw_curves_ensure_dummy_vbo() |
Definition at line 49 of file draw_hair_private.hh.
|
inline |
Definition at line 58 of file draw_hair_private.hh.
References dummy_vbo, and GPU_VERTBUF_DISCARD_SAFE.
| 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().
| void blender::draw::CurvesModule::evaluate_curve_length_intercept | ( | bool | has_cyclic, |
| int | curve_count, | ||
| CurvesEvalCache & | cache ) |
Definition at line 267 of file draw_curves.cc.
References blender::draw::detail::PassBase< DrawCommandBufType >::barrier(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_ssbo(), CURVE_CYCLIC_SLOT, CURVE_RESOLUTION_SLOT, CURVE_TYPE_SLOT, blender::draw::CurvesEvalCache::curves_cyclic_buf, blender::draw::CURVES_EVAL_LENGTH_INTERCEPT, blender::draw::CurvesEvalCache::curves_length_buf, CURVES_LENGTH_SLOT, blender::draw::CurvesEvalCache::curves_resolution_buf, blender::draw::CurvesEvalCache::curves_type_buf, DRW_shader_curves_refine_get(), 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::points_by_curve_buf, POINTS_BY_CURVES_SLOT, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), refine, and blender::draw::detail::PassBase< DrawCommandBufType >::shader_set().
|
inline |
Definition at line 88 of file draw_hair_private.hh.
References blender::draw::CURVES_EVAL_POSITION, evaluate_curve_attribute(), blender::MatBase< float, 4, 4 >::identity(), and transform().
| gpu::VertBufPtr blender::draw::CurvesModule::evaluate_topology_indirection | ( | const int | curve_count, |
| const int | point_count, | ||
| CurvesEvalCache & | cache, | ||
| bool | is_ribbon, | ||
| bool | has_cyclic ) |
Definition at line 108 of file draw_curves.cc.
References blender::draw::detail::PassBase< DrawCommandBufType >::bind_ssbo(), blender::draw::CurvesEvalCache::curves_cyclic_buf, blender::gpu::VertBuf::device_only(), DRW_shader_curves_topology_get(), blender::draw::CurvesEvalCache::evaluated_points_by_curve_buf, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), refine, and blender::draw::detail::PassBase< DrawCommandBufType >::shader_set().
|
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().
| 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().
| CurveRefinePass blender::draw::CurvesModule::refine = {"CurvesEvalPass"} |
Definition at line 51 of file draw_hair_private.hh.
Referenced by evaluate_curve_attribute(), evaluate_curve_length_intercept(), evaluate_topology_indirection(), and init().
| Vector<gpu::VertBufPtr> blender::draw::CurvesModule::transient_buffers |
Definition at line 54 of file draw_hair_private.hh.
Referenced by evaluate_curve_attribute().
| CurvesUniformBufPool blender::draw::CurvesModule::ubo_pool |
Definition at line 50 of file draw_hair_private.hh.
Referenced by init().