Classes

  • namespace std STL namespace.
  • namespace vpr The VulpesRender namespace containing this libraries objects.
    • class Allocation
      Allocation class represents a singular allocation: can be a private allocation (i.e, only user of attached DeviceMemory) or a block allocation (bound to sub-region of device memory)
    • class AllocationCollection An allocation collection is just a vector of MemoryBlocks of the same type.
    • struct AllocationRequirements This struct is the primary item submitted to allocator methods for resource creation.
    • class Allocator The primary interface and class of this subsystem.
    • class Buffer deprecated
    • class CommandPool The CommandPool class is the primary interface through which one will acquire VkCommandBuffer objects.
    • class 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 DescriptorSet RAII wrapper around a descriptor set, simplifying adding individual descriptor bindings for whatever stage they're required at.
    • class DescriptorSetLayout Simple wrapper around the VkDescriptorSetLayout object.
    • class Device !The Device class is a wrapper around the vkLogicalDevice object.
    • class Event Events are a unique synchronization primitive on Vulkan: unlike fences or semaphores they are not strictly intended for only use on the device or only use on the host.
    • class Fence A fence is the most heavyweight of Vulkan synchronization primitives, and is for explicitly synchronizating the device and host.
    • class Framebuffer The Framebuffer class merely handles lifetime of a VkFramebuffer object.
    • class GraphicsPipeline The GraphicsPipeline object is an RAII wrapper around a vkGraphicsPipeline object, handling construction and destruction alone.
    • struct GraphicsPipelineInfo This struct is used to define most of the pipeline state for a Vulkan vkGraphicsPipeline object.
    • class Image deprecated
    • class Instance Instance is a wrapper around the base Vulkan object that must be initialized first.
    • class MemoryBlock A MemoryBlock is a large contiguous region of Vulkan memory of a uniform type (device local, host coherent, host visible, etc) that other objects bind to subregions of.
    • class PhysicalDevice ! PhysicalDevice is a wrapper around a VkPhysicalDevice object, which is itself merely a handle representing a Vulkan-compatible hardware device in a user's system.
    • class 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 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 Renderpass RAII wrapper around a Vulkan object, with a few utility methods to avoid redundancy and clutter in command-recording methods for various scenes.
    • class Sampler Bare minimum RAII wrapper around Vulkan sampler object.
    • class Semaphore The semaphore is Vulkan's device-exclusive synchronization primitive.
    • class 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.
    • struct Suballocation During the process of finding a suitable region to bind to, we need to store things like "SuballocationType", which helps keep track of the precise kind of memory we are looking for and lets us know if its optimally/linearly tiled.
    • struct SuballocationRequest Represents an in-progress allocation that we will shortly attempt to assign a slot to.
    • class SurfaceKHR The bare-minimum required to wrap a VkSurfaceKHR object.
    • class Swapchain This class abstracts away much of the detailed work and boilerplate code required to setup a swapchain in Vulkan.
    • struct VkDebugUtilsFunctions This structure will be populated with function pointers used to call the functions (as named) when available, or requested.
    • struct vkQueueFamilyIndices Simple wrapper struct for storing queue family indices.
    • struct VprExtensionPack The VprExtensionPack structure makes requesting extensions in the device and instance constructors easier and more robust, by allowing the specification of required and optional extensions.