|
Blender V5.0
|
#include <draw_pass.hh>
Inherits blender::draw::detail::Pass< command::DrawMultiBuf >.
Public Member Functions | |
| PassSortable (const char *name_) | |
| void | init () |
| PassMain::Sub & | sub (const char *name, float sorting_value) |
| std::string | serialize (std::string line_prefix="") const |
| Public Member Functions inherited from blender::draw::detail::Pass< command::DrawMultiBuf > | |
| Pass (const char *name) | |
| void | init () |
| Public Member Functions inherited from blender::draw::detail::PassBase< DrawCommandBufType > | |
| PassBase (const char *name, DrawCommandBufType &draw_command_buf, SubPassVector< PassBase< DrawCommandBufType > > &sub_passes, gpu::Shader *shader=nullptr) | |
| void | init () |
| template<class U> | |
| void | bind_resources (U &resources) |
| void | state_set (DRWState state, int clip_plane_count=0) |
| void | state_stencil (uint8_t write_mask, uint8_t reference, uint8_t compare_mask) |
| void | shader_set (gpu::Shader *shader) |
| void | framebuffer_set (gpu::FrameBuffer **framebuffer) |
| void | subpass_transition (GPUAttachmentState depth_attachment, Span< GPUAttachmentState > color_attachments) |
| void | material_set (Manager &manager, GPUMaterial *material, bool deferred_texture_loading=false) |
| void | clear_color (float4 color) |
| void | clear_depth (float depth) |
| void | clear_stencil (uint8_t stencil) |
| void | clear_depth_stencil (float depth, uint8_t stencil) |
| void | clear_color_depth_stencil (float4 color, float depth, uint8_t stencil) |
| void | draw (gpu::Batch *batch, uint instance_len=-1, uint vertex_len=-1, uint vertex_first=-1, ResourceIndexRange res_index={}, uint custom_id=0) |
| void | draw (gpu::Batch *batch, ResourceIndexRange res_index, uint custom_id=0) |
| void | draw_procedural (GPUPrimType primitive, uint instance_len, uint vertex_len, uint vertex_first=-1, ResourceIndexRange res_index={}, uint custom_id=0) |
| void | draw_expand (gpu::Batch *batch, GPUPrimType primitive_type, uint primitive_len, uint instance_len, uint vertex_len, uint vertex_first, ResourceIndexRange res_index={}, uint custom_id=0) |
| void | draw_expand (gpu::Batch *batch, GPUPrimType primitive_type, uint primitive_len, uint instance_len, ResourceIndexRange res_index={}, uint custom_id=0) |
| void | draw_indirect (gpu::Batch *batch, StorageBuffer< DrawCommand, true > &indirect_buffer, ResourceIndex res_index={0}) |
| void | draw_procedural_indirect (GPUPrimType primitive, StorageBuffer< DrawCommand, true > &indirect_buffer, ResourceIndex res_index={0}) |
| void | dispatch (int group_len) |
| void | dispatch (int2 group_len) |
| void | dispatch (int3 group_len) |
| void | dispatch (int3 *group_len) |
| void | dispatch (StorageBuffer< DispatchCommand > &indirect_buffer) |
| void | barrier (GPUBarrier type) |
| void | push_constant (const char *name, const float &data) |
| void | push_constant (const char *name, const float2 &data) |
| void | push_constant (const char *name, const float3 &data) |
| void | push_constant (const char *name, const float4 &data) |
| void | push_constant (const char *name, const int &data) |
| void | push_constant (const char *name, const int2 &data) |
| void | push_constant (const char *name, const int3 &data) |
| void | push_constant (const char *name, const int4 &data) |
| void | push_constant (const char *name, const bool &data) |
| void | push_constant (const char *name, const float4x4 &data) |
| void | push_constant (const char *name, const float *data, int array_len=1) |
| void | push_constant (const char *name, const float2 *data, int array_len=1) |
| void | push_constant (const char *name, const float3 *data, int array_len=1) |
| void | push_constant (const char *name, const float4 *data, int array_len=1) |
| void | push_constant (const char *name, const int *data, int array_len=1) |
| void | push_constant (const char *name, const int2 *data, int array_len=1) |
| void | push_constant (const char *name, const int3 *data, int array_len=1) |
| void | push_constant (const char *name, const int4 *data, int array_len=1) |
| void | push_constant (const char *name, const float4x4 *data) |
| bool | is_empty () const |
| PassBase< DrawCommandBufType > & | sub (const char *name) |
| void | clear_multi (Span< float4 > colors) |
| std::string | serialize (std::string line_prefix="") const |
| void | bind_image (const char *name, gpu::Texture *image) |
| void | bind_image (const char *name, gpu::Texture **image) |
| void | bind_image (int slot, gpu::Texture *image) |
| void | bind_image (int slot, gpu::Texture **image) |
| void | bind_texture (const char *name, gpu::Texture *texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (const char *name, gpu::Texture **texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (const char *name, gpu::VertBuf *buffer) |
| void | bind_texture (const char *name, gpu::VertBuf **buffer) |
| void | bind_texture (const char *name, gpu::VertBufPtr &buffer) |
| void | bind_texture (int slot, gpu::Texture *texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (int slot, gpu::Texture **texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (int slot, gpu::VertBuf *buffer) |
| void | bind_texture (int slot, gpu::VertBuf **buffer) |
| void | bind_texture (int slot, gpu::VertBufPtr &buffer) |
| void | bind_ssbo (const char *name, gpu::StorageBuf *buffer) |
| void | bind_ssbo (const char *name, gpu::StorageBuf **buffer) |
| void | bind_ssbo (int slot, gpu::StorageBuf *buffer) |
| void | bind_ssbo (int slot, gpu::StorageBuf **buffer) |
| void | bind_ssbo (const char *name, gpu::UniformBuf *buffer) |
| void | bind_ssbo (const char *name, gpu::UniformBuf **buffer) |
| void | bind_ssbo (int slot, gpu::UniformBuf *buffer) |
| void | bind_ssbo (int slot, gpu::UniformBuf **buffer) |
| void | bind_ssbo (const char *name, gpu::VertBuf *buffer) |
| void | bind_ssbo (const char *name, gpu::VertBuf **buffer) |
| void | bind_ssbo (const char *name, gpu::VertBufPtr &buffer) |
| void | bind_ssbo (int slot, gpu::VertBuf *buffer) |
| void | bind_ssbo (int slot, gpu::VertBuf **buffer) |
| void | bind_ssbo (int slot, gpu::VertBufPtr &buffer) |
| void | bind_ssbo (const char *name, gpu::IndexBuf *buffer) |
| void | bind_ssbo (const char *name, gpu::IndexBuf **buffer) |
| void | bind_ssbo (int slot, gpu::IndexBuf *buffer) |
| void | bind_ssbo (int slot, gpu::IndexBuf **buffer) |
| void | bind_ubo (const char *name, gpu::UniformBuf *buffer) |
| void | bind_ubo (const char *name, gpu::UniformBuf **buffer) |
| void | bind_ubo (int slot, gpu::UniformBuf *buffer) |
| void | bind_ubo (int slot, gpu::UniformBuf **buffer) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const float &data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const int &data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const uint &data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const bool &data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const float *data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const int *data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const uint *data) |
| void | specialize_constant (gpu::Shader *shader, const char *name, const bool *data) |
Protected Member Functions | |
| void | sort () |
| Protected Member Functions inherited from blender::draw::detail::PassBase< DrawCommandBufType > | |
| bool | has_generated_commands () const |
| void | clear (GPUFrameBufferBits planes, float4 color, float depth, uint8_t stencil) |
| gpu::Batch * | procedural_batch_get (GPUPrimType primitive) |
| command::Undetermined & | create_command (command::Type type) |
| void | warm_shader_specialization (command::RecordingState &state) const |
| void | submit (command::RecordingState &state) const |
| int | push_constant_offset (const char *name) |
Additional Inherited Members | |
| Public Types inherited from blender::draw::detail::Pass< command::DrawMultiBuf > | |
| using | Sub |
| Public Attributes inherited from blender::draw::detail::PassBase< DrawCommandBufType > | |
| const char * | debug_name |
| bool | use_custom_ids |
| Protected Attributes inherited from blender::draw::detail::PassBase< DrawCommandBufType > | |
| Vector< command::Header, 0 > | headers_ |
| Vector< command::Undetermined, 0 > | commands_ |
| DrawCommandBufType & | draw_commands_buf_ |
| SubPassVector< PassBase< DrawCommandBufType > > & | sub_passes_ |
| gpu::Shader * | shader_ |
| uint64_t | manager_fingerprint_ = 0 |
| uint64_t | view_fingerprint_ = 0 |
| bool | is_empty_ = true |
Normal pass type. No visibility or draw-call optimization. Main pass type. Optimized for many draw calls and sub-pass.
IMPORTANT: To be used only for passes containing lots of draw calls since it has a potentially high overhead due to batching and culling optimizations. Special pass type for rendering transparent objects. The base level can only be composed of sub passes that will be ordered by a sorting value.
Definition at line 549 of file draw_pass.hh.
|
inline |
Definition at line 559 of file draw_pass.hh.
Referenced by serialize().
|
inline |
Definition at line 561 of file draw_pass.hh.
References blender::draw::detail::Pass< command::DrawMultiBuf >::init().
Referenced by blender::draw::test_draw_pass_sortable().
|
inline |
Definition at line 585 of file draw_pass.hh.
References PassSortable(), blender::draw::detail::PassBase< DrawCommandBufType >::serialize(), and sort().
Referenced by blender::draw::test_draw_pass_sortable().
|
inlineprotected |
Definition at line 594 of file draw_pass.hh.
References b, and blender::draw::detail::PassBase< DrawCommandBufType >::headers_.
Referenced by blender::draw::Manager::generate_commands(), serialize(), and blender::draw::Manager::submit().
|
inline |
Definition at line 568 of file draw_pass.hh.
References blender::draw::detail::PassBase< DrawCommandBufType >::draw_commands_buf_, blender::draw::detail::PassBase< DrawCommandBufType >::headers_, name, blender::draw::detail::PassBase< DrawCommandBufType >::PassBase(), blender::draw::detail::PassBase< DrawCommandBufType >::shader_, blender::draw::detail::PassBase< DrawCommandBufType >::sub_passes_, and blender::draw::command::SubPass.
Referenced by blender::draw::test_draw_pass_sortable().