Expand description
Windowing system interoperability
Screen presentation (fullscreen or window) of images requires two objects:
Surface
is the host abstraction of the native screenSwapchain
is the device abstraction for a surface, containing multiple presentable images
Window
// DOC TODO
Surface
// DOC TODO
Swapchain
The most interesting part of a swapchain are the contained presentable images/backbuffers. Presentable images are specialized images, which can be presented on the screen. They are 2D color images with optionally associated depth-stencil images.
The common steps for presentation of a frame are acquisition and presentation:
use gfx_hal::{Device, FrameSync};
let acquisition_semaphore = device.create_semaphore().unwrap();
let render_semaphore = device.create_semaphore().unwrap();
let frame = swapchain.acquire_image(!0, FrameSync::Semaphore(&acquisition_semaphore));
// render the scene..
// `render_semaphore` will be signalled once rendering has been finished
swapchain.present(&mut present_queue, 0, &[render_semaphore]);
Queues need to synchronize with the presentation engine, usually done via signalling a semaphore once a frame is available for rendering and waiting on a separate semaphore until scene rendering has finished.
Recreation
DOC TODO
Structs
An extent describes the size of a rectangle, such as
a window or texture. It is not used for referring to a
sub-rectangle; for that see
command::Rect
.Describes information about what a
Surface
’s properties are.
Fetch this with surface.capabilities_and_formats(device)
.Contains all the data necessary to create a new
Swapchain
:
color, depth, and number of images.Enums
Error on acquiring the next image from a swapchain.
Swapchain backbuffer type
Specifies the composition of the swapchain with regards to alpha component.
Error occurred during swapchain creation.
Synchronization primitives which will be signalled once a frame got retrieved.
Specifies the mode regulating how a swapchain presents frames.
Traits
A
Surface
abstracts the surface of a native window, which will be presented
on the display.The
Swapchain
is the backend representation of the surface.
It consists of multiple buffers, which will be presented on the surface.Type Definitions
Index of an image in the swapchain.