Foray Library
rapid prototyping framework for crossplatform development of vulkan hardware ray tracing applications
Loading...
Searching...
No Matches
foray_rtpipeline.hpp
Go to the documentation of this file.
1#pragma once
2#include "../foray_basics.hpp"
4#include "foray_hitsbt.hpp"
6
7namespace foray::rtpipe {
8
15 {
16 public:
18
19 FORAY_GETTER_R(RaygenSbt)
20 FORAY_GETTER_R(HitSbt)
21 FORAY_GETTER_R(MissSbt)
22 FORAY_GETTER_R(CallablesSbt)
23 FORAY_GETTER_V(Pipeline)
24 FORAY_PROPERTY_V(PipelineLayout)
25
26
27 void Build(core::Context* context, VkPipelineLayout pipelineLayout);
28
30 void CmdBindPipeline(VkCommandBuffer cmdBuffer) const;
31
32 void Destroy();
33
34 inline virtual ~RtPipeline() { Destroy(); }
35
36 protected:
41
43
44 VkPipelineLayout mPipelineLayout = nullptr;
45 VkPipeline mPipeline = nullptr;
46
48 };
49} // namespace foray::rtpipe
Shader binding table for storing raygen, miss and callable shader groups.
Definition foray_generalsbt.hpp:10
Shader binding table implementation for storing hit groups (Consist of optional closesthit,...
Definition foray_hitsbt.hpp:10
Helper class wrapping 4 SBTs (Raygen, Miss, Callable, Hitgroup) and a raytracing pipeline.
Definition foray_rtpipeline.hpp:15
GeneralShaderBindingTable mRaygenSbt
Definition foray_rtpipeline.hpp:37
GeneralShaderBindingTable mCallablesSbt
Definition foray_rtpipeline.hpp:39
void Build(core::Context *context, VkPipelineLayout pipelineLayout)
Builds RtPipeline with shaders and shadergroups as defined in Sbt wrappers and builds Sbts.
HitShaderBindingTable mHitSbt
Definition foray_rtpipeline.hpp:40
VkPipelineLayout mPipelineLayout
Definition foray_rtpipeline.hpp:44
void CmdBindPipeline(VkCommandBuffer cmdBuffer) const
vkCmdBindPipeline(cmdBuffer, RayTracingBindPoint, mPipeline)
VkPipeline mPipeline
Definition foray_rtpipeline.hpp:45
GeneralShaderBindingTable mMissSbt
Definition foray_rtpipeline.hpp:38
RtShaderCollection mShaderCollection
Definition foray_rtpipeline.hpp:42
core::Context * mContext
Definition foray_rtpipeline.hpp:47
Helper class to manage unique Rt ShaderModules.
Definition foray_rtshadercollection.hpp:11
#define FORAY_GETTER_V(member)
Return value.
Definition foray_basics.hpp:39
#define FORAY_GETTER_R(member)
Shorthand for mutable & constant reference getters.
Definition foray_basics.hpp:75
#define FORAY_PROPERTY_V(member)
Getter+Setter shorthand for value types.
Definition foray_basics.hpp:81
Definition foray_basesbt.hpp:9
Non owning context object.
Definition foray_context.hpp:16