|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
#include <platform/graphics/metal/metalComposePass.h>
Public Member Functions | |
| void | ensureResources () |
| void | execute (MTL::RenderCommandEncoder *encoder, const ComposePassParams ¶ms, MetalRenderPipeline *pipeline, const std::shared_ptr< RenderTarget > &renderTarget, const std::vector< std::shared_ptr< MetalBindGroupFormat > > &bindGroupFormats, MTL::SamplerState *defaultSampler) |
| Execute the compose pass on the active render command encoder. | |
| MetalComposePass (MetalGraphicsDevice *device) | |
| std::shared_ptr< VertexBuffer > | vertexBuffer () const |
| Shared vertex buffer (3-vertex full-screen triangle). | |
| std::shared_ptr< VertexFormat > | vertexFormat () const |
| Shared vertex format (full-screen triangle, 14 floats per vertex). | |
| ~MetalComposePass () | |
Manages the full-screen compose pass: lazy resource creation, pipeline lookup, and dispatch. Owns the compose shader source, vertex buffer (shared with MetalTaaPass), blend/depth states.
Definition at line 31 of file metalComposePass.h.
|
explicit |
Definition at line 270 of file metalComposePass.cpp.
| visutwin::canvas::MetalComposePass::~MetalComposePass | ( | ) |
Definition at line 275 of file metalComposePass.cpp.
| void visutwin::canvas::MetalComposePass::ensureResources | ( | ) |
Initialize shared resources (vertex buffer, format, etc.) if not already done. Called by dependent passes (SSAO, blur) that share the vertex buffer/format.
Definition at line 283 of file metalComposePass.cpp.
References visutwin::canvas::BUFFER_STATIC, visutwin::canvas::createShader(), visutwin::canvas::VertexBufferOptions::data, visutwin::canvas::ShaderDefinition::fshader, visutwin::canvas::ShaderDefinition::name, visutwin::canvas::VertexBufferOptions::usage, and visutwin::canvas::ShaderDefinition::vshader.
Referenced by execute().
| void visutwin::canvas::MetalComposePass::execute | ( | MTL::RenderCommandEncoder * | encoder, |
| const ComposePassParams & | params, | ||
| MetalRenderPipeline * | pipeline, | ||
| const std::shared_ptr< RenderTarget > & | renderTarget, | ||
| const std::vector< std::shared_ptr< MetalBindGroupFormat > > & | bindGroupFormats, | ||
| MTL::SamplerState * | defaultSampler ) |
Execute the compose pass on the active render command encoder.
Definition at line 335 of file metalComposePass.cpp.
References visutwin::canvas::Primitive::base, visutwin::canvas::ComposePassParams::bloomIntensity, visutwin::canvas::ComposePassParams::bloomTexture, visutwin::canvas::ComposePassParams::blurTexture, visutwin::canvas::ComposePassParams::blurTextureUpscale, visutwin::canvas::ComposePassParams::cocTexture, visutwin::canvas::Primitive::count, visutwin::canvas::CULLFACE_NONE, visutwin::canvas::ComposePassParams::depthTexture, visutwin::canvas::ComposePassParams::dofBlurRadius, visutwin::canvas::ComposePassParams::dofCameraFar, visutwin::canvas::ComposePassParams::dofCameraNear, visutwin::canvas::ComposePassParams::dofEnabled, visutwin::canvas::ComposePassParams::dofFocusDistance, visutwin::canvas::ComposePassParams::dofFocusRange, visutwin::canvas::ComposePassParams::dofIntensity, ensureResources(), visutwin::canvas::ComposePassParams::exposure, visutwin::canvas::MetalRenderPipeline::get(), visutwin::canvas::Texture::height(), visutwin::canvas::Texture::impl(), visutwin::canvas::Primitive::indexed, visutwin::canvas::PRIMITIVE_TRIANGLES, visutwin::canvas::ComposePassParams::sceneTexture, visutwin::canvas::ComposePassParams::sharpness, visutwin::canvas::ComposePassParams::ssaoTexture, visutwin::canvas::ComposePassParams::taaEnabled, visutwin::canvas::ComposePassParams::toneMapping, visutwin::canvas::Primitive::type, visutwin::canvas::ComposePassParams::vignetteColor, visutwin::canvas::ComposePassParams::vignetteCurvature, visutwin::canvas::ComposePassParams::vignetteEnabled, visutwin::canvas::ComposePassParams::vignetteInner, visutwin::canvas::ComposePassParams::vignetteIntensity, visutwin::canvas::ComposePassParams::vignetteOuter, and visutwin::canvas::Texture::width().
|
inlinenodiscard |
Shared vertex buffer (3-vertex full-screen triangle).
Definition at line 47 of file metalComposePass.h.
|
inlinenodiscard |
Shared vertex format (full-screen triangle, 14 floats per vertex).
Definition at line 44 of file metalComposePass.h.