114#elif defined(__APPLE__)
127 int contextMajorVersion,
128 int contextMinorVersion,
177 std::function<
void(
const GHOST_VulkanSwapChainData *)> swap_buffers_pre_callback,
178 std::function<
void(
void)> swap_buffers_post_callback,
179 std::function<
void(GHOST_VulkanOpenXRData *)> openxr_acquire_framebuffer_image_callback,
180 std::function<
void(GHOST_VulkanOpenXRData *)> openxr_release_framebuffer_image_callback)
216#elif defined(__APPLE__)
217 CAMetalLayer *m_metal_layer;
229 const int m_context_major_version;
230 const int m_context_minor_version;
234 VkQueue m_graphic_queue;
235 VkQueue m_present_queue;
238 VkSurfaceKHR m_surface;
239 VkSwapchainKHR m_swapchain;
240 std::vector<GHOST_SwapchainImage> m_swapchain_images;
241 std::vector<GHOST_Frame> m_frame_data;
245 VkExtent2D m_render_extent;
246 VkExtent2D m_render_extent_min;
247 VkSurfaceFormatKHR m_surface_format;
249 std::function<void(
const GHOST_VulkanSwapChainData *)> swap_buffers_pre_callback_;
250 std::function<void(
void)> swap_buffers_post_callback_;
251 std::function<void(GHOST_VulkanOpenXRData *)> openxr_acquire_framebuffer_image_callback_;
252 std::function<void(GHOST_VulkanOpenXRData *)> openxr_release_framebuffer_image_callback_;
254 const char *getPlatformSpecificSurfaceExtension()
const;
static constexpr uint32_t GHOST_FRAMES_IN_FLIGHT
GHOST_TVulkanPlatformType
@ GHOST_kVulkanPlatformHeadless
GHOST_TSuccess activateDrawingContext() override
GHOST_TSuccess swapBuffers() override
GHOST_TSuccess setVulkanSwapBuffersCallbacks(std::function< void(const GHOST_VulkanSwapChainData *)> swap_buffers_pre_callback, std::function< void(void)> swap_buffers_post_callback, std::function< void(GHOST_VulkanOpenXRData *)> openxr_acquire_framebuffer_image_callback, std::function< void(GHOST_VulkanOpenXRData *)> openxr_release_framebuffer_image_callback) override
GHOST_TSuccess getVulkanSwapChainFormat(GHOST_VulkanSwapChainData *r_swap_chain_data) override
GHOST_TSuccess getSwapInterval(int &) override
GHOST_TSuccess setSwapInterval(int) override
GHOST_TSuccess initializeDrawingContext() override
friend class GHOST_XrGraphicsBindingVulkanD3D
friend class GHOST_XrGraphicsBindingVulkan
GHOST_TSuccess getVulkanHandles(GHOST_VulkanHandles &r_handles) override
GHOST_TSuccess releaseDrawingContext() override
GHOST_TSuccess releaseNativeHandles() override
bool isUpsideDown() const override
~GHOST_ContextVK() override
GHOST_ContextVK(bool stereoVisual, GHOST_TVulkanPlatformType platform, Window window, Display *display, wl_surface *wayland_surface, wl_display *wayland_display, const GHOST_ContextVK_WindowInfo *wayland_window_info, int contextMajorVersion, int contextMinorVersion, int debug, const GHOST_GPUDevice &preferred_device)
GHOST_Context(bool stereoVisual)