Classes

  • namespace tp Common Tephra namespace.
    • namespace ApplicationExtension Collection of application extensions that are either specific to Tephra, or are Vulkan instance extensions with built-in support in Tephra. Vulkan extensions outside of the ones defined here may be used, but their support may be limited.
    • namespace DeviceExtension Collection of device extensions that are either specific to Tephra, or are Vulkan device extensions with built-in support in Tephra. Vulkan extensions outside of the ones defined here may be used, but their support may be limited.
    • struct AcquiredImageInfo Describes the details of an image acquired from a tp::Swapchain and its required synchronization semaphores with the acquire and present operations.
    • class Application Represents the application using this library, storing all per-application state.
    • struct ApplicationIdentifier Describes the application and engine, allowing the Vulkan driver to use this information for identification purposes.
    • struct ApplicationSetup Used as configuration for creating a new tp::Application object.
    • class ArrayParameter Similar to tp::ArrayView, it provides read/write view of a contiguous array. It is used to view arrays that may have a temporary lifetime, such as std::initializer_list.
    • class ArrayView Provides a read/write view into any contiguous array with a combination of a pointer and size. The ArrayView does not own the referenced array and cannot add or remove elements from it. It can be used to pass arbitrary arrays as parameters to functions and as a way to integrate C style and C++ style arrays. See the tp::view, tp::viewOne and tp::viewRange functions for convenient ways of conversion to array view.
    • class ArrayViewBase Shared base implementation of array views.
    • class AssertionError Internal Tephra error violating an assertion. May be caused by a previous invalid usage.
    • struct AttachmentBlendState Specifies the output blending state of a render pass attachment.
    • struct BlendState Describes the blending operation with its factors for a single component of a render pass attachment.
    • class Buffer Represents a linear array of data visible to the device.
    • struct BufferComputeAccess Represents an access to a range of tp::BufferView from a compute pipeline.
    • struct BufferCopyRegion Describes a region of a buffer copy operation.
    • struct BufferImageCopyRegion Describes a region of copy operation between an image and a buffer.
    • struct BufferRenderAccess Represents an access to a range of tp::BufferView from a graphics pipeline.
    • struct BufferSetup Used as configuration for creating a new tp::Buffer object.
    • class BufferView Represents the view of a contiguous range of tp::Buffer memory.
    • struct ClearValue Specifies a constant clear value.
    • struct ColorAttachment Represents an tp::ImageView as a render pass color attachment, allowing it to be bound as a render target inside of a render pass. Also specifies any operations on it that are to be done at the beginning or end of the render pass.
    • class CommandList An abstract class that implements common functionality for recording commands inside either a compute or render pass. See tp::ComputeList and tp::RenderList for further details.
    • struct ComponentMapping Specifies the values placed in each component of the output color vector.
    • class ComputeList Provides an interface to directly record compute commands into a Vulkan VkCommandBuffer inside a compute pass.
    • struct ComputePassSetup Used as configuration for executing a compute pass.
    • class ComputePipelineSetup Used as configuration for creating a new compute tp::Pipeline object for use inside compute passes.
    • class ContiguousEnumIterator An iterator over a tp::ContiguousEnumView.
    • class ContiguousEnumView Represents an array view of all the values of a contiguous enum type. The values of the enum need to be consecutive and the largest value needs to be known.
    • struct DebugMessage Describes the details of a single debug message.
    • struct DebugMessageContext Describes the context of where a debug message was triggered. This is useful because Tephra calls do not always correspond 1:1 to Vulkan calls. Vulkan validation messages refer to only the Vulkan function that triggered the message, but this structure provides information about the involved Tephra function as well.
    • class DebugReportHandler A base class for debug report handlers, containing callbacks through which debug messages and runtime errors are reported.
    • struct DepthStencilAttachment Represents an tp::ImageView as a render pass depth & stencil attachment, allowing it to be bound inside of a render pass. Also specifies any operations that are to be done on it at the beginning or end of the render pass.
    • class Descriptor Binds an existing resource or sampler inside a tp::DescriptorSet, according to the tp::DescriptorBinding defined inside a tp::DescriptorSetLayout.
    • struct DescriptorBinding Describes the type of tp::Descriptor or descriptor array to be bound to a particular binding number.
    • class DescriptorPool Enables efficient creation, storage and reuse of tp::DescriptorSet objects.
    • struct DescriptorPoolSetup Used as configuration for creating a new tp::DescriptorPool object.
    • class DescriptorSet Describes the set of resources that can be bound at once to allow access to them from pipelines.
    • class DescriptorSetLayout Describes the layout of descriptor bindings that pipelines can use to access resources. Serves as a template for creating tp::DescriptorSet objects out of resources to be bound.
    • struct DescriptorSetSetup Used as configuration for creating a new tp::DescriptorSet object.
    • class DescriptorSetView Represents the non-owning view of a tp::DescriptorSet.
    • class Device Represents a connection to a tp::PhysicalDevice, through which its functionality can be accessed.
    • class DeviceLostError Operation failed because the device was lost. Subsequent device operations will fail, too.
    • struct DeviceQueue Refers to a device queue to which jobs can be submitted for execution. Multiple different queues may map to the same Vulkan queue.
    • struct DeviceSetup Used as configuration for creating a new tp::Device object.
    • class EnumBitMask A strongly typed mask for a set of enum flags. Requires that the underlying enum values are powers of two.
    • struct Extent2D A two-dimensional integer extent structure.
    • struct Extent3D A three-dimensional integer extent structure.
    • struct ExternalSemaphore A primitive for synchronizing against workloads other than jobs. It can be either a binary semaphore in which case the timestamp is ignored, or a timeline semaphore that is treated as signalled when the provided timestamp is reached.
    • struct FormatCapabilities Represents the set of capabilities supported by a device for a particular format.
    • struct FormatClassProperties Describes the properties and memory layout of a tp::FormatCompatibilityClass.
    • class FutureDescriptor Binds a resource or sampler inside a tp::DescriptorSet, according to the tp::DescriptorBinding defined inside a tp::DescriptorSetLayout. This variant can be used with job-local resources of a job that hasn't been enqueued yet.
    • class GraphicsPipelineSetup Used as configuration for creating a new graphics tp::Pipeline object for use inside render passes.
    • class HostMappedMemory Represents tp::Buffer memory mapped for host access by the application. Automatically handles cache management for incoherent memory types and unmaps the memory when destroyed, if the memory is not mapped persistently.
    • class Image Represents a multidimensional array of data interpreted as textures or attachments.
    • struct ImageBlitRegion Describes a region of an image blit operation.
    • struct ImageComputeAccess Represents an access to a range of tp::ImageView from a compute pipeline.
    • struct ImageCopyRegion Describes a region of an image copy operation.
    • struct ImageRenderAccess Represents an access to a range of tp::ImageView from a graphics pipeline.
    • struct ImageSetup Used as configuration for creating a new tp::Image object object.
    • struct ImageSubresource Describes a subresource of an image containing a single array layer and mip level.
    • struct ImageSubresourceLayers Describes a subresource of an image containing any number of array layers and a single mip level.
    • struct ImageSubresourceRange Describes a subresource of an image containing any number of array layers and mip levels.
    • class ImageView Represents the view of a subresource range of tp::Image.
    • struct ImageViewSetup Used as configuration for creating a new tp::ImageView object.
    • class Job A job represents a single instance of work to be done on the device.
    • class JobResourcePool Manages the job-local resources used by tp::Job objects created from it. Enables efficient allocation and reuse of these resources between consecutive jobs. Jobs created from a tp::JobResourcePool can only be enqueued to the same device queue that the pool was created for, allowing the allocator to better reuse resources. Similar jobs that are submitted periodically therefore benefit from being allocated from the same tp::JobResourcePool.
    • struct JobResourcePoolSetup Used as configuration for creating a new tp::JobResourcePool object.
    • struct JobResourcePoolStatistics Contains statistics about the current allocations of a tp::JobResourcePool.
    • struct JobSemaphore A synchronization primitive created after enqueueing a tp::Job through tp::Device::enqueueJob.
    • class Lifeguard final A lifeguard for a Vulkan handle implementing RAII by invoking specialized deleters according to the type of the handle when the lifeguard is destroyed. Can be created from an existing Vulkan handle with tp::Device::vkMakeHandleLifeguard.
    • struct MemoryAllocatorSetup Used to configure the device-wide Vulkan Memory Allocator.
    • struct MemoryHeapStatistics Returns statistics associated with a Vulkan memory heap.
    • struct MemoryLocationInfo Information about the physical device memory location.
    • struct MemoryPreference Represents the progression of tp::MemoryLocation that the device will attempt to allocate resources from, in the given order of preference.
    • struct Offset2D A two-dimensional integer offset structure.
    • struct Offset3D A three-dimensional integer offset structure.
    • class OutOfDateError A surface has changed in such a way that it is no longer compatible with the swapchain, and further presentation requests using the swapchain will fail.
    • class OutOfMemoryError Allocation failed due to overcommitting of memory.
    • struct OverallocationBehavior Specifies the overallocation behavior of a pool. This can be useful for reducing the frequency of allocations at the cost of potentially higher memory usage.
    • class Ownable A customizable base class that is used for objects returned by the API in an OwningPtr.
    • class PhysicalDevice Represents a read-only interface for the physical device for identification and querying its properties and capabilities.
    • class Pipeline Represents a full compiled state of a compute or graphics pipeline, composed of multiple shader stages and the state of the configurable fixed-function stages.
    • class PipelineCache Speeds up the compilation of pipelines by allowing the result of pipeline compilation to be reused between pipelines and between application runs.
    • class PipelineLayout Describes the layout of resources accessed by a compute or graphics pipeline.
    • struct PushConstantRange Describes a range of push constants.
    • struct QueueTypeInfo Information about the physical device queues for a particular queue type.
    • struct Rect2D A two-dimensional integer range.
    • class RenderList Provides an interface to directly record graphics commands into a Vulkan VkCommandBuffer inside a compute pass.
    • struct RenderPassSetup Used as configuration for executing a render pass.
    • class RuntimeError A generic Tephra runtime error.
    • class Sampler Sampler objects are used to apply filtering and other transformations to image data when accessed from shaders.
    • struct SamplerAddressing Describes the addressing mode to be used by the sampler.
    • struct SamplerFiltering Describes the texture filtering to be used by the sampler.
    • struct SamplerSetup
    • class ShaderModule Represents a single shader module as loaded from SPIR-V bytecode.
    • struct ShaderStageSetup Describes an individual shader stage of a pipeline, referencing a tp::ShaderModule and its entry point.
    • struct SpecializationConstant Describes the value of a particular specialization constant of any scalar boolean, integer or floating point type.
    • struct StatisticEventInfo Information about the report of a statistic event.
    • struct StencilState Specifies the full state of a stencil operation.
    • struct SurfaceCapabilities Describes the capabilities of a VkSurfaceKHR and the capabilities of a physical device to present to that surface.
    • class SurfaceLostError Operation failed because the surface was lost. Subsequent surface operations will fail, too.
    • class Swapchain Manages presenting the rendering results to a surface.
    • struct SwapchainSetup Used as configuration for creating a new tp::Swapchain object.
    • struct Timeout Specifies a timeout duration for wait operations.
    • class TooManyObjectsError Too many objects of the same type have already been created.
    • class UnsupportedOperationError The operation could not be completed because it is not supported by the platform or device.
    • struct Version Represents and stores a version number.
    • struct VertexInputAttribute Identifies a specific vertex input attribute such as position, normal, etc.
    • struct VertexInputBinding Describes the shader binding for vertex input buffer and the layout of its attributes.
    • struct Viewport The viewport describing a region of render operations.
    • struct VkFeatureStructureMapTrait Trait wrapper for tp::getVkFeatureStructureType.
    • struct VkObjectHandle A strongly typed Vulkan object handle wrapper.
    • struct VkPropertyStructureMapTrait Trait wrapper for tp::getVkPropertyStructureType.
    • class VkStructureMap A heterogenous container of unique Vulkan structure types. The structures get zero initialized with sType filled out appropriately and pNext used to chain them in the order they were added.
    • struct VulkanValidationSetup Describes whether Vulkan validation should be enabled, optionally with control over its specific features.