Interface Swapchain

Handle to a swapchain engine

interface Swapchain
  : IAtomicRefCounted ;

Properties

NameTypeDescription
device[get] DeviceGet the parent device
format[get] FormatThe image format of this swapchain
images[get] ImageBase[]Get the list of images owned by this swapchain. The index of each image is meaningful and is often used to reference the image (such as the index returned by acquireNextImage)
surface[get] SurfaceGet the Surface that this swapchain is bound to.
refCount[get] ulongAtomically loads the number of active references.
refCountShared[get] ulongAtomically loads the number of active references.

Methods

NameDescription
acquireNextImage (semaphore, timeout) Acquire the next image in the swapchain. This function may block until the next image is available.
dispose () Dispose the underlying resource
rcLock () Returns whether the refCount >= 1. This increases the refCount by 1. rcLock should be used to keep weak reference and ensures that the resource is not disposed. The operation is atomic.
rcLockShared () Returns whether the refCount >= 1. This increases the refCount by 1. rcLock should be used to keep weak reference and ensures that the resource is not disposed. The operation is atomic.
release (disposeOnZero) Atomically decrement the reference count. If refCount reaches zero, and disposeOnZero is set, the object is locked with its own mutex, and dispose is called. In most cases, the calling code should set disposeOnZero, unless it is intended to release the object to give it away. (such as at the end of a builder function)
releaseShared (disposeOnZero) Atomically decrement the reference count. If refCount reaches zero, and disposeOnZero is set, the object is locked with its own mutex, and dispose is called. In most cases, the calling code should set disposeOnZero, unless it is intended to release the object to give it away. (such as at the end of a builder function)
retain () Atomically increment the reference count.
retainShared () Atomically increment the reference count.