VulkanContext.h 668 B

1234567891011121314151617181920212223242526272829
  1. /*
  2. * Copyright (c) 2024, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #if !defined(USE_VULKAN)
  8. static_assert(false, "This file must only be used when Vulkan is available");
  9. #endif
  10. #include <AK/Forward.h>
  11. #include <AK/Function.h>
  12. #include <vulkan/vulkan.h>
  13. namespace Core {
  14. struct VulkanContext {
  15. uint32_t api_version { VK_API_VERSION_1_0 };
  16. VkInstance instance { VK_NULL_HANDLE };
  17. VkPhysicalDevice physical_device { VK_NULL_HANDLE };
  18. VkDevice logical_device { VK_NULL_HANDLE };
  19. VkQueue graphics_queue { VK_NULL_HANDLE };
  20. };
  21. ErrorOr<VulkanContext> create_vulkan_context();
  22. }