Blender V4.5
GHOST_ContextVK Class Reference

#include <GHOST_ContextVK.hh>

Inherits GHOST_Context.

Public Member Functions

 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_ContextVK () override
 
GHOST_TSuccess swapBuffers () override
 
GHOST_TSuccess activateDrawingContext () override
 
GHOST_TSuccess releaseDrawingContext () override
 
GHOST_TSuccess initializeDrawingContext () override
 
GHOST_TSuccess releaseNativeHandles () override
 
GHOST_TSuccess getVulkanHandles (GHOST_VulkanHandles &r_handles) override
 
GHOST_TSuccess getVulkanSwapChainFormat (GHOST_VulkanSwapChainData *r_swap_chain_data) 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 setSwapInterval (int) override
 
GHOST_TSuccess getSwapInterval (int &) override
 
bool isUpsideDown () const override
 
- Public Member Functions inherited from GHOST_Context
 GHOST_Context (bool stereoVisual)
 
 ~GHOST_Context () override
 
virtual GHOST_TSuccess updateDrawingContext ()
 
void * getUserData ()
 
void setUserData (void *user_data)
 
bool isStereoVisual () const
 
unsigned int getDefaultFramebuffer () override
 
- Public Member Functions inherited from GHOST_IContext
virtual ~GHOST_IContext ()=default
 

Friends

class GHOST_XrGraphicsBindingVulkan
 
class GHOST_XrGraphicsBindingVulkanD3D
 

Additional Inherited Members

- Static Public Member Functions inherited from GHOST_Context
static GHOST_ContextgetActiveDrawingContext ()
 
- Static Public Member Functions inherited from GHOST_IContext
static GHOST_IContextgetActiveDrawingContext ()
 
- Protected Attributes inherited from GHOST_Context
bool m_stereoVisual
 
void * m_user_data = nullptr
 
- Static Protected Attributes inherited from GHOST_Context
static thread_local GHOST_Contextactive_context_
 

Detailed Description

Definition at line 103 of file GHOST_ContextVK.hh.

Constructor & Destructor Documentation

◆ GHOST_ContextVK()

GHOST_ContextVK::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 )

Constructor.

Definition at line 557 of file GHOST_ContextVK.cc.

◆ ~GHOST_ContextVK()

GHOST_ContextVK::~GHOST_ContextVK ( )
override

Member Function Documentation

◆ activateDrawingContext()

GHOST_TSuccess GHOST_ContextVK::activateDrawingContext ( )
overridevirtual

Activates the drawing context of this window.

Returns
A boolean success indicator.

Implements GHOST_Context.

Definition at line 784 of file GHOST_ContextVK.cc.

References GHOST_Context::active_context_, and GHOST_kSuccess.

◆ getSwapInterval()

GHOST_TSuccess GHOST_ContextVK::getSwapInterval ( int & )
inlineoverridevirtual

Gets the current swap interval for swapBuffers.

Parameters
intervalOutVariable to store the swap interval if it can be read.
Returns
Whether the swap interval can be read.

Reimplemented from GHOST_Context.

Definition at line 198 of file GHOST_ContextVK.hh.

References GHOST_kFailure.

◆ getVulkanHandles()

GHOST_TSuccess GHOST_ContextVK::getVulkanHandles ( GHOST_VulkanHandles & r_handles)
override

Gets the Vulkan context related resource handles.

Returns
A boolean success indicator.

Definition at line 746 of file GHOST_ContextVK.cc.

References GHOST_kSuccess, and vulkan_device.

◆ getVulkanSwapChainFormat()

GHOST_TSuccess GHOST_ContextVK::getVulkanSwapChainFormat ( GHOST_VulkanSwapChainData * r_swap_chain_data)
override

Definition at line 736 of file GHOST_ContextVK.cc.

References GHOST_kSuccess.

◆ initializeDrawingContext()

GHOST_TSuccess GHOST_ContextVK::initializeDrawingContext ( )
overridevirtual

Call immediately after new to initialize. If this fails then immediately delete the object.

Returns
Indication as to whether initialization has succeeded.

Implements GHOST_Context.

Definition at line 1181 of file GHOST_ContextVK.cc.

References GHOST_Context::active_context_, contains_extension(), ensure_vulkan_device(), getExtensionsAvailable(), GHOST_kFailure, GHOST_kSuccess, GHOST_kVulkanPlatformHeadless, info, requireExtension(), VK_CHECK, and vulkan_device.

◆ isUpsideDown()

bool GHOST_ContextVK::isUpsideDown ( ) const
inlineoverridevirtual

Returns if the context is rendered upside down compared to OpenGL.

Vulkan is always rendered upside down.

Reimplemented from GHOST_Context.

Definition at line 208 of file GHOST_ContextVK.hh.

◆ releaseDrawingContext()

GHOST_TSuccess GHOST_ContextVK::releaseDrawingContext ( )
overridevirtual

Release the drawing context of the calling thread.

Returns
A boolean success indicator.

Implements GHOST_Context.

Definition at line 790 of file GHOST_ContextVK.cc.

References GHOST_Context::active_context_, and GHOST_kSuccess.

◆ releaseNativeHandles()

GHOST_TSuccess GHOST_ContextVK::releaseNativeHandles ( )
overridevirtual

Removes references to native handles from this context and then returns

Returns
GHOST_kSuccess if it is OK for the parent to release the handles and GHOST_kFailure if releasing the handles will interfere with sharing

Implements GHOST_Context.

Definition at line 1355 of file GHOST_ContextVK.cc.

References GHOST_kSuccess.

◆ setSwapInterval()

GHOST_TSuccess GHOST_ContextVK::setSwapInterval ( int )
inlineoverridevirtual

Sets the swap interval for swapBuffers.

Parameters
intervalThe swap interval to use.
Returns
A boolean success indicator.

Reimplemented from GHOST_Context.

Definition at line 188 of file GHOST_ContextVK.hh.

References GHOST_kFailure.

◆ setVulkanSwapBuffersCallbacks()

GHOST_TSuccess GHOST_ContextVK::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

Definition at line 771 of file GHOST_ContextVK.cc.

References GHOST_kSuccess.

◆ swapBuffers()

Friends And Related Symbol Documentation

◆ GHOST_XrGraphicsBindingVulkan

Definition at line 104 of file GHOST_ContextVK.hh.

◆ GHOST_XrGraphicsBindingVulkanD3D

friend class GHOST_XrGraphicsBindingVulkanD3D
friend

Definition at line 105 of file GHOST_ContextVK.hh.


The documentation for this class was generated from the following files: