Blender V4.3
blender::workbench::MeshPass Class Reference

#include <workbench_private.hh>

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

Public Member Functions

MeshPass
 MeshPass (const char *name)
 
bool is_empty () const
 
void init_pass (SceneResources &resources, DRWState state, int clip_planes)
 
void init_subpasses (ePipelineType pipeline, eLightingType lighting, bool clip)
 
PassMain::Subget_subpass (eGeometryType geometry_type, const MaterialTexture *texture=nullptr)
 
- 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)
 

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 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)
 
- 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

Definition at line 306 of file workbench_private.hh.

Constructor & Destructor Documentation

◆ MeshPass()

blender::workbench::MeshPass::MeshPass ( const char * name)

Definition at line 13 of file workbench_mesh_passes.cc.

Member Function Documentation

◆ get_subpass()

◆ init_pass()

◆ init_subpasses()

◆ is_empty()


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