Files
ladybird/Libraries/LibGfx/VulkanContext.h
2026-04-12 21:18:33 +02:00

38 lines
930 B
C++

/*
* Copyright (c) 2024, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#ifdef USE_VULKAN
# include <vulkan/vulkan.h>
namespace Gfx {
struct VulkanContext {
uint32_t api_version { VK_API_VERSION_1_0 };
VkInstance instance { VK_NULL_HANDLE };
VkPhysicalDevice physical_device { VK_NULL_HANDLE };
VkDevice logical_device { VK_NULL_HANDLE };
VkQueue graphics_queue { VK_NULL_HANDLE };
uint32_t graphics_queue_family { 0 };
# ifdef USE_VULKAN_DMABUF_IMAGES
VkCommandPool command_pool { VK_NULL_HANDLE };
VkCommandBuffer command_buffer { VK_NULL_HANDLE };
struct
{
PFN_vkGetMemoryFdKHR get_memory_fd { nullptr };
PFN_vkGetImageDrmFormatModifierPropertiesEXT get_image_drm_format_modifier_properties { nullptr };
} ext_procs;
# endif
};
ErrorOr<VulkanContext> create_vulkan_context();
}
#endif