Skip to content

ludus::platform::HostedSurfaceImages

Ludus Wiki · API overview · Browse API

Struct

The images of one hosted surface generation.
A generation is a fixed extent and format. The producer allocates a new generation whenever its extent changes; image indices are 0 to HOSTED_SURFACE_IMAGE_COUNT - 1 within a generation.

Declared in modules/platform/include/ludus/platform/hosted_surface.h

#include <ludus/platform/hosted_surface.h>
struct ludus::platform::HostedSurfaceImages final

Fields

Generation

foundation::uint32 ludus::platform::HostedSurfaceImages::Generation = 0
Nonzero identity, strictly increasing within one session.

Related types: foundation::uint32

Declared in modules/platform/include/ludus/platform/hosted_surface.h

Width

foundation::uint32 ludus::platform::HostedSurfaceImages::Width = 0
Image width in pixels, 1 to 32768.

Related types: foundation::uint32

Declared in modules/platform/include/ludus/platform/hosted_surface.h

Height

foundation::uint32 ludus::platform::HostedSurfaceImages::Height = 0
Image height in pixels, 1 to 32768.

Related types: foundation::uint32

Declared in modules/platform/include/ludus/platform/hosted_surface.h

Format

HostedImageFormat ludus::platform::HostedSurfaceImages::Format = HostedImageFormat::Rgba8Unorm
Pixel encoding of every image.

Related types: HostedImageFormat

Declared in modules/platform/include/ludus/platform/hosted_surface.h

AllocationSizes

foundation::StaticArray<foundation::uint64, HOSTED_SURFACE_IMAGE_COUNT> ludus::platform::HostedSurfaceImages::AllocationSizes {}
Vulkan only: byte size of each exported memory allocation, which the importer must allocate exactly. Zero on macOS.

Related types: foundation::StaticArray · foundation::uint64 · HOSTED_SURFACE_IMAGE_COUNT

Declared in modules/platform/include/ludus/platform/hosted_surface.h

MemoryTypeIndex

foundation::uint32 ludus::platform::HostedSurfaceImages::MemoryTypeIndex = 0
Vulkan only: the producer's memory type index for every image. Zero on macOS.

Related types: foundation::uint32

Declared in modules/platform/include/ludus/platform/hosted_surface.h

DeviceUuid

foundation::StaticArray<foundation::uint8, HOSTED_ADAPTER_UUID_BYTES> ludus::platform::HostedSurfaceImages::DeviceUuid {}
Vulkan only: the producer's VkPhysicalDeviceIDProperties::deviceUUID. Zero on macOS.

Related types: foundation::StaticArray · foundation::uint8 · HOSTED_ADAPTER_UUID_BYTES

Declared in modules/platform/include/ludus/platform/hosted_surface.h

DriverUuid

foundation::StaticArray<foundation::uint8, HOSTED_ADAPTER_UUID_BYTES> ludus::platform::HostedSurfaceImages::DriverUuid {}
Vulkan only: the producer's VkPhysicalDeviceIDProperties::driverUUID. Zero on macOS.

Related types: foundation::StaticArray · foundation::uint8 · HOSTED_ADAPTER_UUID_BYTES

Declared in modules/platform/include/ludus/platform/hosted_surface.h

Handles

foundation::StaticArray<HostedImageHandle, HOSTED_SURFACE_IMAGE_COUNT> ludus::platform::HostedSurfaceImages::Handles {}
One owned sharing handle per image: Mach send rights on macOS, opaque fds on Linux.

Related types: HostedImageHandle · foundation::StaticArray · HOSTED_SURFACE_IMAGE_COUNT

Declared in modules/platform/include/ludus/platform/hosted_surface.h