Resources module
The resources group/module encompasses objects that especially require Vulkan/GPU resource allocation, lifetime management, and objects that most benefit from C++ abstraction to remove boilerplate code.
It also relates most to the allocator module: this was separated, however, as it mostly enables much of these classes to be abstract and is complex enough to warrant its own grouping.
Classes
- class vpr::Buffer deprecated
- class vpr::DescriptorPool
- RAII wrapper around a VkDescriptorPool intended to facilitate sharing of descriptor pools between disparate objects, thus increasing resource sharing and avoiding allocating single-use descriptor pools (as this is an expensive operation).
- class vpr::DescriptorSet
- RAII wrapper around a descriptor set, simplifying adding individual descriptor bindings for whatever stage they're required at.
- class vpr::DescriptorSetLayout
- Simple wrapper around the VkDescriptorSetLayout object.
- class vpr::Image deprecated
- class vpr::PipelineCache
- A PipelineCache is a wrapper around a VkPipelineCache that takes care of several important details that are otherwise difficult to handle: saving and loading pipeline cache data from a file, verifying integrity of pipeline cache files, and cleaning up / repairing old, unused, and outdated pipeline cache files.
- class vpr::PipelineLayout
- PipelineLayout is an RAII wrapper around a VkPipelineLayout object that also simplifies setting what resources the pipeline layout will have bound to it.
- class vpr::Sampler
- Bare minimum RAII wrapper around Vulkan sampler object.
- class vpr::ShaderModule
- A thoroughly thin wrapper around a VkShaderModule object, whose primary utility beyond RAII resource management is setting up the VkPipelineShaderStageCreateInfo required when creating/setting up an objects graphics pipeline.
Functions
-
auto SetLoggingRepository_VprResource(void* repo) -> VPR_
API void - Pass an easyloggingpp logging repository pointer into this function, and it will be set as the repository for this module to use.
Function documentation
VPR_ API void SetLoggingRepository_VprResource(void* repo)
Pass an easyloggingpp logging repository pointer into this function, and it will be set as the repository for this module to use.
That way, all log messages from all modules (even when using this as a shared library) will go to the same sinks