|
Blender V4.5
|
#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, GPUShader *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 (GPUShader *shader) |
| void | framebuffer_set (GPUFrameBuffer **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, ResourceHandleRange handle={0}, uint custom_id=0) |
| void | draw (gpu::Batch *batch, ResourceHandleRange handle, uint custom_id=0) |
| void | draw_procedural (GPUPrimType primitive, uint instance_len, uint vertex_len, uint vertex_first=-1, ResourceHandleRange 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, ResourceHandleRange handle={0}, uint custom_id=0) |
| void | draw_expand (gpu::Batch *batch, GPUPrimType primitive_type, uint primitive_len, uint instance_len, ResourceHandleRange 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 (int2int2 group_len) |
| void | dispatch (int3int3 group_len) |
| void | dispatch (int3int3 *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 float2float2 &data) |
| void | push_constant (const char *name, const float3float3 &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 int2int2 &data) |
| void | push_constant (const char *name, const int3int3 &data) |
| void | push_constant (const char *name, const int4int4 &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 float2float2 *data, int array_len=1) |
| void | push_constant (const char *name, const float3float3 *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 int2int2 *data, int array_len=1) |
| void | push_constant (const char *name, const int3int3 *data, int array_len=1) |
| void | push_constant (const char *name, const int4int4 *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, 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< DrawCommandBufType > | |
| bool | has_generated_commands () const |
| 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 | 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_ |
| GPUShader * | 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 540 of file draw_pass.hh.
|
inline |
Definition at line 550 of file draw_pass.hh.
Referenced by serialize().
|
inline |
Definition at line 552 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 576 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 585 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 559 of file draw_pass.hh.
References blender::draw::detail::PassBase< DrawCommandBufType >::draw_commands_buf_, blender::draw::detail::PassBase< DrawCommandBufType >::headers_, 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().