|
Blender V4.3
|
#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< command::DrawMultiBuf > | |
| PassBase (const char *name, command::DrawMultiBuf &draw_command_buf, SubPassVector< PassBase< command::DrawMultiBuf > > &sub_passes, GPUShader *shader=nullptr) | |
| void | init () |
| 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 (GPUShader *shader) |
| void | framebuffer_set (GPUFrameBuffer **framebuffer) |
| void | subpass_transition (GPUAttachmentState depth_attachment, Span< GPUAttachmentState > color_attachments) |
| void | material_set (Manager &manager, GPUMaterial *material) |
| 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, ResourceHandle handle={0}, uint custom_id=0) |
| void | draw (gpu::Batch *batch, ResourceHandle handle, uint custom_id=0) |
| void | draw_procedural (GPUPrimType primitive, uint instance_len, uint vertex_len, uint vertex_first=-1, ResourceHandle handle={0}, uint custom_id=0) |
| void | draw_expand (gpu::Batch *batch, GPUPrimType primitive_type, uint primitive_len, uint instance_len, uint vertex_len=-1, uint vertex_first=-1, ResourceHandle handle={0}, uint custom_id=0) |
| void | draw_expand (gpu::Batch *batch, GPUPrimType primitive_type, uint primitive_len, uint instance_len, ResourceHandle handle={0}, uint custom_id=0) |
| void | draw_indirect (gpu::Batch *batch, StorageBuffer< DrawCommand, true > &indirect_buffer, ResourceHandle handle={0}) |
| void | draw_procedural_indirect (GPUPrimType primitive, StorageBuffer< DrawCommand, true > &indirect_buffer, ResourceHandle handle={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 (eGPUBarrier 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) |
| PassBase< command::DrawMultiBuf > & | sub (const char *name) |
| void | clear_multi (Span< float4 > colors) |
| std::string | serialize (std::string line_prefix="") const |
| void | bind_image (const char *name, GPUTexture *image) |
| void | bind_image (const char *name, GPUTexture **image) |
| void | bind_image (int slot, GPUTexture *image) |
| void | bind_image (int slot, GPUTexture **image) |
| void | bind_texture (const char *name, GPUTexture *texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (const char *name, GPUTexture **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 (int slot, GPUTexture *texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (int slot, GPUTexture **texture, GPUSamplerState state=sampler_auto) |
| void | bind_texture (int slot, gpu::VertBuf *buffer) |
| void | bind_texture (int slot, gpu::VertBuf **buffer) |
| void | bind_ssbo (const char *name, GPUStorageBuf *buffer) |
| void | bind_ssbo (const char *name, GPUStorageBuf **buffer) |
| void | bind_ssbo (int slot, GPUStorageBuf *buffer) |
| void | bind_ssbo (int slot, GPUStorageBuf **buffer) |
| void | bind_ssbo (const char *name, GPUUniformBuf *buffer) |
| void | bind_ssbo (const char *name, GPUUniformBuf **buffer) |
| void | bind_ssbo (int slot, GPUUniformBuf *buffer) |
| void | bind_ssbo (int slot, GPUUniformBuf **buffer) |
| void | bind_ssbo (const char *name, gpu::VertBuf *buffer) |
| void | bind_ssbo (const char *name, gpu::VertBuf **buffer) |
| void | bind_ssbo (int slot, gpu::VertBuf *buffer) |
| void | bind_ssbo (int slot, gpu::VertBuf **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, GPUUniformBuf *buffer) |
| void | bind_ubo (const char *name, GPUUniformBuf **buffer) |
| void | bind_ubo (int slot, GPUUniformBuf *buffer) |
| void | bind_ubo (int slot, GPUUniformBuf **buffer) |
| void | specialize_constant (GPUShader *shader, const char *name, const float &data) |
| void | specialize_constant (GPUShader *shader, const char *name, const int &data) |
| void | specialize_constant (GPUShader *shader, const char *name, const uint &data) |
| void | specialize_constant (GPUShader *shader, const char *name, const bool &data) |
| void | specialize_constant (GPUShader *shader, const char *name, const float *data) |
| void | specialize_constant (GPUShader *shader, const char *name, const int *data) |
| void | specialize_constant (GPUShader *shader, const char *name, const uint *data) |
| void | specialize_constant (GPUShader *shader, const char *name, const bool *data) |
Protected Member Functions | |
| void | sort () |
Protected Member Functions inherited from blender::draw::detail::PassBase< command::DrawMultiBuf > | |
| void | clear (eGPUFrameBufferBits planes, float4 color, float depth, uint8_t stencil) |
| gpu::Batch * | procedural_batch_get (GPUPrimType primitive) |
| command::Undetermined & | create_command (command::Type type) |
| 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< command::DrawMultiBuf > | |
| const char * | debug_name |
| bool | use_custom_ids |
Protected Attributes inherited from blender::draw::detail::PassBase< command::DrawMultiBuf > | |
| Vector< command::Header, 0 > | headers_ |
| Vector< command::Undetermined, 0 > | commands_ |
| command::DrawMultiBuf & | draw_commands_buf_ |
| SubPassVector< PassBase< command::DrawMultiBuf > > & | sub_passes_ |
| GPUShader * | shader_ |
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 509 of file draw_pass.hh.
|
inline |
Definition at line 519 of file draw_pass.hh.
|
inline |
Definition at line 521 of file draw_pass.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), and blender::draw::detail::Pass< command::DrawMultiBuf >::init().
Referenced by blender::eevee::ForwardPipeline::sync(), and blender::draw::test_draw_pass_sortable().
|
inline |
Definition at line 545 of file draw_pass.hh.
References blender::draw::detail::PassBase< command::DrawMultiBuf >::serialize(), and sort().
|
inlineprotected |
Definition at line 554 of file draw_pass.hh.
References b, and blender::draw::detail::PassBase< command::DrawMultiBuf >::headers_.
Referenced by serialize().
|
inline |
Definition at line 528 of file draw_pass.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_and_get_index(), blender::draw::detail::PassBase< command::DrawMultiBuf >::draw_commands_buf_, blender::draw::detail::PassBase< command::DrawMultiBuf >::headers_, blender::draw::detail::PassBase< command::DrawMultiBuf >::PassBase(), blender::draw::detail::PassBase< command::DrawMultiBuf >::shader_, and blender::draw::detail::PassBase< command::DrawMultiBuf >::sub_passes_.
Referenced by blender::eevee::ForwardPipeline::material_transparent_add(), blender::eevee::ForwardPipeline::prepass_transparent_add(), and blender::eevee::ForwardPipeline::sync().