Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
foray::rtpipe::RtPipeline Class Reference

Helper class wrapping 4 SBTs (Raygen, Miss, Callable, Hitgroup) and a raytracing pipeline. More...

#include <foray_rtpipeline.hpp>

Public Member Functions

 RtPipeline ()
 
void Build (core::Context *context, VkPipelineLayout pipelineLayout)
 Builds RtPipeline with shaders and shadergroups as defined in Sbt wrappers and builds Sbts.
 
void CmdBindPipeline (VkCommandBuffer cmdBuffer) const
 vkCmdBindPipeline(cmdBuffer, RayTracingBindPoint, mPipeline)
 
void Destroy ()
 
virtual ~RtPipeline ()
 

Protected Attributes

GeneralShaderBindingTable mRaygenSbt
 
GeneralShaderBindingTable mMissSbt
 
GeneralShaderBindingTable mCallablesSbt
 
HitShaderBindingTable mHitSbt
 
RtShaderCollection mShaderCollection
 
VkPipelineLayout mPipelineLayout = nullptr
 
VkPipeline mPipeline = nullptr
 
core::ContextmContext = nullptr
 

Detailed Description

Helper class wrapping 4 SBTs (Raygen, Miss, Callable, Hitgroup) and a raytracing pipeline.

Usage:

  1. Configure Sbts, by accessing them via GetRaygenSbt(), ... . Refer to ShaderBindingTableBase class definition for more information on shader binding tables.
  2. Call Build(...) to build the Pipeline and Sbts

Constructor & Destructor Documentation

◆ RtPipeline()

foray::rtpipe::RtPipeline::RtPipeline ( )

◆ ~RtPipeline()

virtual foray::rtpipe::RtPipeline::~RtPipeline ( )
inlinevirtual

Member Function Documentation

◆ Build()

void foray::rtpipe::RtPipeline::Build ( core::Context context,
VkPipelineLayout  pipelineLayout 
)

Builds RtPipeline with shaders and shadergroups as defined in Sbt wrappers and builds Sbts.

◆ CmdBindPipeline()

void foray::rtpipe::RtPipeline::CmdBindPipeline ( VkCommandBuffer  cmdBuffer) const

vkCmdBindPipeline(cmdBuffer, RayTracingBindPoint, mPipeline)

◆ Destroy()

void foray::rtpipe::RtPipeline::Destroy ( )

Member Data Documentation

◆ mCallablesSbt

GeneralShaderBindingTable foray::rtpipe::RtPipeline::mCallablesSbt
protected

◆ mContext

core::Context* foray::rtpipe::RtPipeline::mContext = nullptr
protected

◆ mHitSbt

HitShaderBindingTable foray::rtpipe::RtPipeline::mHitSbt
protected

◆ mMissSbt

GeneralShaderBindingTable foray::rtpipe::RtPipeline::mMissSbt
protected

◆ mPipeline

VkPipeline foray::rtpipe::RtPipeline::mPipeline = nullptr
protected

◆ mPipelineLayout

VkPipelineLayout foray::rtpipe::RtPipeline::mPipelineLayout = nullptr
protected

◆ mRaygenSbt

GeneralShaderBindingTable foray::rtpipe::RtPipeline::mRaygenSbt
protected

◆ mShaderCollection

RtShaderCollection foray::rtpipe::RtPipeline::mShaderCollection
protected

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