Skip to main content

VKContext

The VKContext class is a Vulkan-specific implementation of the Context class. It initializes the rendering context using externally provided Vulkan instance, device, and queue parameters. The class provides access to the Vulkan instance, physical device, logical device, command queue, and command buffer.

#include <platform/TellusimContext.h>

Inheritance

Constructors

VKContext()

Methods

Create context.

bool create(VkInstance instance, PFN_vkGetInstanceProcAddr func, VkPhysicalDevice adapter, VkDevice device, uint32_t family, uint32_t index)

Current device.

VkInstance getInstance() const
VkPhysicalDevice getAdapter() const
VkDevice getDevice() const

Current context.

VkQueue getQueue() const
VkCommandBuffer getCommand() const
uint32_t getFamily() const

Device queues.

uint32_t getNumQueues()
uint32_t getQueueFlags(uint32_t index)
uint32_t getQueueFamily(uint32_t index)

Additional extensions.

static void addContextExtension(const char *name)
static void addAdapterExtension(const char *name)
static void addAdapterFeatures(void *features)

Get proc address functions.

static PFN_vkGetInstanceProcAddr getInstanceProcAddress()
static PFN_vkGetDeviceProcAddr getDeviceProcAddress()

Vulkan functions.

static void *getProcAddress(const char *name)

Check Vulkan errors.

static bool error(uint32_t result)