[][src]Module nannou::vk

Items related to Vulkan and the Rust API used by Nannou called Vulkano.

This module re-exports the entire vulkano crate along with all of its documentation while also adding some additional helper types.

Individual items from throughout the vulkano crate have been re-exported within this module for ease of access via the vk:: prefix, removing the need for a lot of boilerplate when coding. However, as a result, the documentation for this module is quite noisey! You can find cleaner information about how the different areas of Vulkan interoperate by checking out the module-level documentation for that area. For example, read about Framebuffers and RenderPasses in the nannou::vk::framebuffer module, or read about the CommandBuffer within the nannou::vk::command_buffer module.

For more information on extensions to the vulkano crate added by nannou, scroll past the "Re-exports" items below.

Re-exports

pub use vulkano_shaders as shaders;
pub use vulkano_win as win;

Modules

buffer

Location in memory that contains data.

command_buffer

Commands that the GPU will execute (includes draw commands).

descriptor

Provides a way for shaders to access the content of buffers and images, or read arbitrary data.

device

Communication channel with a physical device.

format

Declares all the formats of data and images supported by Vulkan.

framebuffer

Targets on which your draw commands are executed.

half

A crate that provides support for the half-precision floating point type.

image

Image storage (1D, 2D, 3D, arrays, etc.).

instance

API entry point.

memory

Device memory allocation and memory pools.

pipeline

Describes a graphical or compute operation.

query

This module provides support for query pools.

sampler

How to retrieve data from an image within a shader.

swapchain

Link between Vulkan and a window and/or the screen.

sync

Synchronization on the GPU.

Macros

app_info_from_cargo_toml

Builds an ApplicationInfo from the information gathered by Cargo.

buffer_slice_field

Takes a BufferSlice that points to a struct, and returns a BufferSlice that points to a specific field of that struct.

impl_vertex

Implements the Vertex trait on a struct.

ordered_passes_renderpass

Builds a RenderPass object whose template parameter is of indeterminate type.

single_pass_renderpass

Builds a RenderPass object whose template parameter is of indeterminate type.

statically_linked_vulkan_loader

Expression that returns a loader that assumes that Vulkan is linked to the executable you're compiling.

Structs

ApplicationInfo

Information that can be given to the Vulkan driver so that it can identify your application.

AttachmentBlend

Describes how the blending system should behave for an individual attachment.

AttachmentDescription

Describes an attachment that will be used in a render pass.

AttachmentImage

ImageAccess whose purpose is to be used as a framebuffer attachment.

AttributeInfo

Information about a single attribute within a vertex. TODO: change that API

AutoCommandBuffer
AutoCommandBufferBuilder

Note that command buffers allocated from the default command pool (Arc<StandardCommandPool>) don't implement the Send and Sync traits. If you use this pool, then the AutoCommandBufferBuilder will not implement Send and Sync either. Once a command buffer is built, however, it does implement Send and Sync.

Blend

Describes how the color output of the fragment shader is written to the attachment. See the documentation of the blend module for more info.

BufferInner

Inner information about a buffer.

BufferSlice

A subpart of a buffer.

BufferUsage

Describes how a buffer is going to be used. This is not just an optimization.

BufferView

Represents a way for the GPU to interpret buffer data. See the documentation of the view module.

BufferlessDefinition

Implementation of VertexDefinition for drawing with no buffers at all.

BufferlessVertices

Value to be passed as the vertex source for bufferless draw commands.

CommandBufferExecFuture

Represents a command buffer being executed by the GPU and the moment when the execution finishes.

ComputePipeline

A pipeline object that describes to the Vulkan implementation how it should perform compute operations.

ComputePipelineSys

Opaque object that represents the inside of the compute pipeline. Can be made into a trait object.

CpuAccessibleBuffer

Buffer whose content is accessible by the CPU.

CpuBufferPool

Ring buffer from which "sub-buffers" can be individually allocated.

CpuBufferPoolChunk

A subbuffer allocated from a CpuBufferPool.

CpuBufferPoolSubbuffer

A subbuffer allocated from a CpuBufferPool.

DebugCallbackBuilder

A builder struct that makes the process of building a debug callback more modular.

DepthStencil

Configuration of the depth and stencil tests.

DescriptorBufferDesc
DescriptorDesc

Contains the exact description of a single descriptor.

DescriptorImageDesc

Additional description for descriptors that contain images.

DescriptorWrite

Represents a single write entry to a descriptor set.

DescriptorsCount

Number of available descriptors slots in a pool.

Device

Represents a Vulkan context.

DeviceExtensions

List of extensions that are enabled or available.

DeviceLocalBuffer

Buffer whose content is in device-local memory.

DispatchIndirectCommand
DrawIndirectCommand
DynamicState

The dynamic state to use for a draw command.

EmptyPipelineDesc

Description of an empty pipeline layout.

Fence

A fence is used to know when a command buffer submission has finished its execution.

FenceSignalFuture

Represents a fence being signaled after a previous event.

FixedSizeDescriptorSet

A descriptor set created from a FixedSizeDescriptorSetsPool.

FixedSizeDescriptorSetBuilder

Prototype of a FixedSizeDescriptorSet.

FixedSizeDescriptorSetBuilderArray

Same as FixedSizeDescriptorSetBuilder, but we're in an array.

FixedSizeDescriptorSetsPool

Pool of descriptor sets of a specific capacity and that are automatically reclaimed.

Framebuffer

Contains a render pass and the image views that are attached to it.

FramebufferBuilder

Prototype of a framebuffer.

FramebufferObject

The FramebufferObject or Fbo type for easy management of a framebuffer.

FramebufferSys

Opaque object that represents the internals of a framebuffer.

GraphicsPipeline

Defines how the implementation should perform a draw operation.

GraphicsPipelineBuilder

Prototype for a GraphicsPipeline.

GraphicsPipelineSys

Opaque object that represents the inside of the graphics pipeline.

ImageAccessFromUndefinedLayout

Wraps around an object that implements ImageAccess and modifies the initial layout requirement to be either Undefined or Preinitialized.

ImageInner

Inner information about an image.

ImageUsage

Describes how an image is going to be used. This is not just an optimization.

ImmutableBuffer

Buffer that is written once then read for as long as it is alive.

ImmutableImage

Image whose purpose is to be used for read-only purposes. You can write to the image once, but then you must only ever read from it.

ImmutableImageInitialization
Instance

An instance of a Vulkan context. This is the main object that should be created by an application before everything else.

InstanceBuilder

A builder struct that makes the process of building an instance more modular.

InstanceExtensions

List of extensions that are enabled or available.

JoinFuture

Two futures joined into one.

Limits

Limits of a physical device.

NowFuture

A dummy future that represents "now".

OcclusionQueriesPool
OneVertexOneInstanceDefinition

Unstable.

PassDependencyDescription

Describes a dependency between two passes of a render pass.

PassDescription

Describes one of the passes of a render pass.

PersistentDescriptorSet

An immutable descriptor set that is expected to be long-lived.

PersistentDescriptorSetBuf

Internal object related to the PersistentDescriptorSet system.

PersistentDescriptorSetBufView

Internal object related to the PersistentDescriptorSet system.

PersistentDescriptorSetBuilder

Prototype of a PersistentDescriptorSet.

PersistentDescriptorSetBuilderArray

Same as PersistentDescriptorSetBuilder, but we're in an array.

PersistentDescriptorSetImg

Internal object related to the PersistentDescriptorSet system.

PersistentDescriptorSetSampler

Internal object related to the PersistentDescriptorSet system.

PhysicalDevice

Represents one of the available devices on this machine.

PhysicalDevicesIter

Iterator for all the physical devices available on hardware.

PipelineLayout

Wrapper around the PipelineLayout Vulkan object. Describes to the Vulkan implementation the descriptor sets and push constants available to your shaders

PipelineLayoutDescPcRange

Description of a range of the push constants of a pipeline layout.

PipelineLayoutDescUnion

Contains the union of two pipeline layout description.

PipelineLayoutSys

Opaque object that is borrowed from a PipelineLayout.

QueryPipelineStatisticFlags
Queue

Represents a queue where commands can be submitted.

QueueFamiliesIter

Iterator for all the queue families available on a physical device.

QueueFamily

Represents a queue family in a physical device.

QueuesIter

Iterator that returns the queues produced when creating a device.

RawDeviceExtensions

Set of extensions, not restricted to those vulkano knows about.

RawInstanceExtensions

Set of extensions, not restricted to those vulkano knows about.

RenderPass

Defines the layout of multiple subpasses.

RenderPassDescAttachments

Iterator to the attachments of a RenderPassDesc.

RenderPassDescDependencies

Iterator to the subpass dependencies of a RenderPassDesc.

RenderPassDescSubpasses

Iterator to the subpasses of a RenderPassDesc.

RenderPassSys

Opaque object that represents the render pass' internals.

RuntimePipelineDesc

Runtime description of a pipeline layout.

Sampler

Describes how to retrieve data from an image within a shader.

SamplerBuilder

A builder struct that makes the process of building a Sampler more modular.

Scissor

State of a single scissor box.

Semaphore

Used to provide synchronization between command buffers during their execution.

SemaphoreSignalFuture

Represents a semaphore being signaled after a previous event.

ShaderStages

Describes which shader stages have access to a descriptor.

SingleBufferDefinition

Implementation of VertexDefinition for a single vertex buffer.

SingleInstanceBufferDefinition

Same as SingleBufferDefinition but advances by instance.

StdDescriptorPool

Standard implementation of a descriptor pool.

StdDescriptorPoolAlloc

A descriptor set allocated from a StdDescriptorPool.

Stencil

Configuration of a stencil test.

StorageImage

General-purpose image in device memory. Can be used for any usage, but will be slower than a specialized image.

Subpass

Represents a subpass within a RenderPassAbstract object.

Surface

Represents a surface on the screen.

Swapchain

Contains the swapping system and the images that can be shown on a surface.

SwapchainAcquireFuture

Represents the moment when the GPU will have access to a swapchain image.

SwapchainImage

An image that is part of a swapchain.

TwoBuffersDefinition

Unstable.

UnsafeDescriptorPool

Pool from which descriptor sets are allocated from.

UnsafeDescriptorPoolAllocIter

Iterator to the descriptor sets allocated from an unsafe descriptor pool.

UnsafeDescriptorSet

Low-level descriptor set.

UnsafeDescriptorSetLayout

Describes to the Vulkan implementation the layout of all descriptors within a descriptor set.

UnsafeQueriesRange
UnsafeQuery
UnsafeQueryPool
Version

Represents an API version of Vulkan.

VertexMemberInfo

Information about a member of a vertex struct.

Viewport

State of a single viewport.

ViewportBuilder

A builder struct that makes the process of building a Viewport more modular.

Enums

AttachmentsBlend

Describes how the blending system should behave.

AutoCommandBufferBuilderContextError
BlendFactor
BlendOp
BufferCreationError

Error that can happen when creating a buffer.

ClearValue

Describes a uniform value that will be used to fill an image.

ComputePipelineCreationError

Error that can happen when creating a compute pipeline.

DepthBounds

Allows you to ask the GPU to exclude fragments that are outside of a certain range.

DepthStencilCompare

Specifies how two values should be compared to decide whether a test passes or fails.

DescriptorDescSupersetError

Error when checking whether a descriptor is a superset of another one.

DescriptorDescTy

Describes the content and layout of each array element of a descriptor.

DescriptorImageDescArray
DescriptorImageDescDimensions
DescriptorPoolAllocError

Error that can be returned when creating a device.

DescriptorType

Describes what kind of resource may later be bound to a descriptor.

DeviceCreationError

Error that can be returned when creating a device.

ExecuteCommandsError
Format

An enumeration of all the possible formats.

FormatTy
FramebufferCreationError

Error that can happen when creating a framebuffer object.

GraphicsPipelineCreationError

Error that can happen when creating a graphics pipeline.

ImageCreationError

Error that can happen when creating an instance.

ImageDimensions
ImageLayout

Layout of an image.

IncompatibleRenderPassAttachmentError

Error that can happen when an image is not compatible with a render pass attachment slot.

IncompatibleVertexDefinitionError

Error that can happen when the vertex definition doesn't match the input of the vertex shader.

InstanceCreationError

Error that can happen when creating an instance.

LoadOp

Describes what the implementation should do with an attachment at the start of the subpass.

LogicOp

Which logical operation to apply to the output values.

MipmapsCount

Specifies how many mipmaps must be allocated.

OomError

Error type returned by most Vulkan functions.

PersistentDescriptorSetBuildError

Error when building a persistent descriptor set.

PersistentDescriptorSetError

Error related to the persistent descriptor set.

PhysicalDeviceType

Type of a physical device.

PipelineLayoutCreationError

Error that can happen when creating a pipeline layout.

PipelineLayoutLimitsError

The pipeline layout description isn't compatible with the hardware limits.

PipelineLayoutNotSupersetError

Error that can happen when creating a graphics pipeline.

QueryPoolCreationError

Error that can happen when creating a buffer.

QueryType
RenderPassCreationError

Error that can happen when creating a compute pipeline.

RuntimePipelineDescError

Error when building a persistent descriptor set.

SamplerAddressMode

How the sampler should behave when it needs to access a pixel that is out of range of the texture.

SamplerCreationError

Error that can happen when creating an instance.

ShaderStagesSupersetError

Error when checking whether some shader stages are superset of others.

StateCacherOutcome

Outcome of an operation.

StencilOp

Operation to perform after the depth and stencil tests.

StoreOp

Describes what the implementation should do with an attachment after all the subpasses have completed.

SubpassContents

Describes what a subpass in a command buffer will contain.

SwapchainCreationError

Error that can happen when creation a swapchain.

UnnormalizedSamplerAddressMode

How the sampler should behave when it needs to access a pixel that is out of range of the texture.

UpdateBufferError
VertexMemberTy

Type of a member of a vertex struct.

ViewportsState

List of viewports and scissors that are used when creating a graphics pipeline object.

Constants

DEFAULT_APPLICATION_INFO

The default application info

DEFAULT_APPLICATION_NAME

The default application name used with the default ApplicationInfo.

Traits

AcceptsPixels
AttachmentImageView
AttachmentsList

A list of attachments.

BufferAccess

Trait for objects that represent a way for the GPU to have access to a buffer or a slice of a buffer.

BufferViewRef
ClearValuesTuple
CommandBuffer
ComputePipelineAbstract

Trait implemented on all compute pipelines.

DescriptorPool

A pool from which descriptor sets can be allocated.

DescriptorPoolAlloc

An allocated descriptor set.

DescriptorSet

Trait for objects that contain a collection of resources that will be accessible by shaders.

DescriptorSetDesc

Trait for objects that describe the layout of the descriptors of a set.

DescriptorSetsCollection

A collection of descriptor set objects.

DeviceOwned

Implemented on objects that belong to a Vulkan device.

DynamicStateBuilder

A simple trait that extends the DynamicState type with builder methods.

FormatDesc
FramebufferAbstract

Trait for objects that contain a Vulkan framebuffer object.

GpuFuture

Represents an event that will happen on the GPU in the future.

GraphicsPipelineAbstract

Trait implemented on objects that reference a graphics pipeline. Can be made into a trait object. When using this trait AutoCommandBufferBuilder::draw* calls will need the buffers to be wrapped in a vec!().

ImageAccess

Trait for types that represent the way a GPU can access an image.

ImageClearValue

Extension trait for images. Checks whether the value T can be used as a clear value for the given image.

ImageContent
ImageViewAccess

Trait for types that represent the GPU can access an image view.

PipelineLayoutAbstract

Trait for objects that describe the layout of the descriptors and push constants of a pipeline.

PipelineLayoutDesc

Trait for objects that describe the layout of the descriptors and push constants of a pipeline.

PipelineLayoutPushConstantsCompatible

Traits that allow determining whether

PipelineLayoutSetsCompatible

Traits that allow determining whether

PipelineLayoutSuperset

Traits that allow determining whether a pipeline layout is a superset of another one.

PossibleCompressedFormatDesc
PossibleDepthFormatDesc
PossibleDepthStencilFormatDesc
PossibleFloatFormatDesc

Trait for types that can possibly describe a float attachment.

PossibleFloatOrCompressedFormatDesc

Trait for types that can possibly describe a float or compressed attachment.

PossibleSintFormatDesc
PossibleStencilFormatDesc
PossibleUintFormatDesc
RenderPassAbstract

Trait for objects that contain a Vulkan render pass object.

RenderPassCompatible

Trait implemented on render pass objects to check whether they are compatible with another render pass.

RenderPassDesc

Trait for objects that contain the description of a render pass.

RenderPassDescClearValues

Extension trait for RenderPassDesc. Defines which types are allowed as a list of clear values.

RenderPassSubpassInterface

Extension trait for RenderPassDesc that checks whether a subpass of this render pass accepts the output of a fragment shader.

SafeDeref

Alternative to the Deref trait. Contrary to Deref, must always return the same object.

StrongStorage
SynchronizedVulkanObject

Gives access to the internal identifier of an object.

TypedBufferAccess

Extension trait for BufferAccess. Indicates the type of the content of the buffer.

Vertex

Describes an individual Vertex. In other words a collection of attributes that can be read from a vertex shader.

VertexDefinition

Trait for types that describe the definition of the vertex input used by a graphics pipeline.

VertexMember

Trait for data types that can be used as vertex members. Used by the impl_vertex! macro.

VertexSource

Extension trait of VertexDefinition. The L parameter is an acceptable vertex source for this vertex definition.

VulkanHandle
VulkanObject

Gives access to the internal identifier of an object.

Functions

find_supported_depth_image_format

Given a slice of depth format candidates in order of preference, return the first that is supported by the given device.

format_is_srgb

Whether or not the format is sRGB.

msaa_samples_limited

Given some target MSAA samples, limit it by the capabilities of the given physical_device.

required_extensions_with_loader
required_windowing_extensions

The default set of required extensions used by Nannou.

Type Definitions

Fbo

Shorthand for the FramebufferObject type.

FramebufferBuilderResult

Shorthand for the builder result type expected by the function given to Fbo::update.