![]() |
VPP
0.7
A high-level modern C++ API for Vulkan
|
Pipeline layout template for a graphics pipeline. Use to create actual pipeline layout (Vulkan objects) from abstract representation in the form of PipelineConfig object. More...
#include <vppPipelineLayout.hpp>
Public Member Functions | |
template<typename... Args> | |
PipelineLayout (const Process &hProcess, const Device &hDevice, Args... args) | |
Constructs a pipeline layout attached to specified Process and Device, with optional list of user-specific arguments. The constructor pass the extra arguments to the DefinitionT constructor. | |
VkPipelineLayout | handle () const |
Retrieves Vulkan handle for the pipeline layout. | |
const Device & | device () const |
Retrieves the device. | |
DefinitionT & | definition () |
Retrieves the definition object. Useful to call resource binding methods defined in your pipeline config from Process command sequence. | |
const DefinitionT & | definition () const |
Pipeline layout template for a graphics pipeline. Use to create actual pipeline layout (Vulkan objects) from abstract representation in the form of PipelineConfig object.
Place an instance of PipelineLayout inside your rendering engine class. As the DefinitionT type, supply your custom class derived from PipelineConfig.
In the constructor, provide references to parent Process (as a pipeline is always bound to some Process), target Device and any number of your own arguments. Those optional arguments will be passed to the constructor of your PipelineConfig subclass. You can parameterize your PipelineConfig this way.
After construction, register the PipelineLayout in your RenderPass object by calling RenderPass::addPipeline().
The PipelineLayout template creates an instance of DefinitionT internally. Optionally you can pass your own arguments to the constructor. You can retrieve the definition object by calling definition() method.
const DefinitionT& vpp::PipelineLayout< DefinitionT >::definition | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.