VV::V3::Surface class

Surfaces hook onto a window to use as a rendering target.

This object represents a device created object on the host. As such ownership is tied to this host object. Due to this design, the object has no copy-construction allowed. Instead, default move constructor and assignment has been defined.

Base classes

struct VV::V2::Surface
Surfaces hook onto a window to use as a rendering target.

Public types

using Parent = V2::Surface

Constructors, destructors, conversion operators

Surface()
Default constructor.
Surface(const AppInstance& _app)
Specifies the app instance.
Surface(const AppInstance& _app, const Memory::AllocationCallbacks& _allocator)
Specifies the app instance, and allocator.
Surface(const AppInstance& _app, const PhysicalDevice& _physicalDevice)
Specifies the app instance and physical device.
Surface(const AppInstance& _app, const PhysicalDevice& _physicalDevice, const Memory::AllocationCallbacks& _allocator)
Specifies the app instance, physical device, allocator.
Surface(Surface&& _other) noexcept
Performs a move operation to transfer ownership of the device object to this host object.
~Surface()
Destroys the surface if handle is not null.
operator Handle&()
Implicit conversion to give a reference to its handle.
operator const Handle&() const
Implicit conversion to give a readonly reference to its handle.
operator const Handle*() const
Implicit conversion to give a pointer to its handle.

Public functions

void AssignPhysicalDevice(const PhysicalDevice& _physicalDevice)
Assign the physical device.
auto Create(OS_WindowHandle _window) -> EResult
Create a surface with the provided window handle.
auto Create(const CreateInfo& _info) -> EResult
Create a surface with the specified create info.
auto Create(const AppInstance& _app, OS_WindowHandle _window) -> EResult
Create a surface with the specified app instance and widow handle.
auto Create(const AppInstance& _appHandle, const CreateInfo& _info) -> EResult
Create a surface with the specified app instance and create info.
auto Create(const AppInstance& _appHandle, const CreateInfo& _info, const Memory::AllocationCallbacks& _allocator) -> EResult
Create a surface with the specified app handle, create info, and allocator.
auto CheckPhysicalDeviceSupport(ui32 _queueFamilyIndex, Bool& _checkResult) -> EResult
Query if presentation is supported.
void Destroy()
Destroy the surface.
auto GetAvailableFormats(DynamicArray<Format>& _formatsContainer) const -> EResult
Provides the available surface formats.
auto GetPhysicalDeviceCapabilities(Capabilities& _result) const -> EResult
Query surface capabilities.
auto GetSupportedPresentationModes(DynamicArray<EPresentationMode>& _presentationModesContainer) const -> EResult
Provides the supported presentation modes.
auto operator==(const Surface& _other) const -> bool
Checks to see if its the same object by checking to see if its the same handle.
auto operator=(Surface&& _other) -> Surface& noexcept
Performs a move assignment operation to transfer ownership of the device object to this host object.

Protected variables

Handle handle
const Memory::AllocationCallbacks* allocator
const AppInstance* app
const PhysicalDevice* physicalDevice