![]() |
VPP
0.8
A high-level modern C++ API for Vulkan
|
Pipeline layout template for a compute pipeline. Use to create actual pipeline layout (Vulkan objects) from abstract representation in the form of ComputePipelineConfig object. More...
#include <vppPipelineLayout.hpp>
Public Member Functions | |
template<typename... Args> | |
ComputePipelineLayout (const Device &hDevice, Args... args) | |
Constructs a pipeline layout attached to specified 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 the ComputePass command sequence. | |
const DefinitionT & | definition () const |
Pipeline layout template for a compute pipeline. Use to create actual pipeline layout (Vulkan objects) from abstract representation in the form of ComputePipelineConfig object.
Place an instance of ComputePipelineLayout inside your computation engine class. As the DefinitionT
type, supply your custom class derived from ComputePipelineConfig.
In the constructor, provide a reference to target Device and any number of your own arguments. Those optional arguments will be passed to the constructor of your ComputePipelineConfig subclass. You can parameterize your ComputePipelineConfig this way.
After construction, register the ComputePipelineLayout in your ComputePass object by calling addPipeline().
The ComputePipelineLayout 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 the definition() method.
An example:
const DefinitionT& vpp::ComputePipelineLayout< 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.