Blender V4.3
blender::draw::PassSortable Class Reference

#include <draw_pass.hh>

Inherits blender::draw::detail::Pass< command::DrawMultiBuf >.

Public Member Functions

 PassSortable (const char *name_)
 
void init ()
 
PassMain::Subsub (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::Undeterminedcreate_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::DrawMultiBufdraw_commands_buf_
 
SubPassVector< PassBase< command::DrawMultiBuf > > & sub_passes_
 
GPUShadershader_
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ PassSortable()

blender::draw::PassSortable::PassSortable ( const char * name_)
inline

Definition at line 519 of file draw_pass.hh.

Member Function Documentation

◆ init()

◆ serialize()

std::string blender::draw::PassSortable::serialize ( std::string line_prefix = "") const
inline

◆ sort()

void blender::draw::PassSortable::sort ( )
inlineprotected

Definition at line 554 of file draw_pass.hh.

References b, and blender::draw::detail::PassBase< command::DrawMultiBuf >::headers_.

Referenced by serialize().

◆ sub()


The documentation for this class was generated from the following file: