HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Data Fields
tt::gui_system_vulkan Class Reference

#include <ttauri/GUI/gui_system_vulkan.hpp>

Inheritance diagram for tt::gui_system_vulkan:
tt::gui_system tt::gui_system_vulkan_macos tt::gui_system_vulkan_win32

Public Member Functions

 gui_system_vulkan (std::weak_ptr< gui_system_delegate > const &delegate, const std::vector< const char * > extensions)
 Create an instance of a gui_device.
 
 gui_system_vulkan (const gui_system_vulkan &)=delete
 
gui_system_vulkanoperator= (const gui_system_vulkan &)=delete
 
 gui_system_vulkan (gui_system_vulkan &&)=delete
 
gui_system_vulkanoperator= (gui_system_vulkan &&)=delete
 
void init () noexcept(false) override
 Initialize after construction.
 
vk::DispatchLoaderDynamic loader () const noexcept
 
void destroySurfaceKHR (vk::SurfaceKHR surface)
 
- Public Member Functions inherited from tt::gui_system
 gui_system (std::weak_ptr< gui_system_delegate > const &delegate) noexcept
 
 gui_system (const gui_system &)=delete
 
gui_systemoperator= (const gui_system &)=delete
 
 gui_system (gui_system &&)=delete
 
gui_systemoperator= (gui_system &&)=delete
 
template<typename... Args>
gui_windowmake_window (Args &&... args)
 
ssize_t num_windows ()
 
void render (hires_utc_clock::time_point displayTimePoint)
 
void handlevertical_sync (hires_utc_clock::time_point displayTimePoint)
 

Static Public Member Functions

static VkBool32 debugUtilsMessageCallback (VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageType, const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, void *pUserData)
 
- Static Public Member Functions inherited from tt::gui_system
static void _handlevertical_sync (void *data, hires_utc_clock::time_point displayTimePoint)
 

Data Fields

vk::Instance intrinsic
 Vulkan instance.
 
std::vector< const char * > requiredExtensions
 List of extension that where requested when the instance was created.
 
std::vector< const char * > requiredLayers
 List of extension that where requested when the instance was created.
 
vk::PhysicalDeviceFeatures requiredFeatures
 List of required features for each device.
 
vk::PhysicalDeviceLimits requiredLimits
 List of required limits for each device.
 
vk::ApplicationInfo applicationInfo
 application info passed when the instance was created.
 
- Data Fields inherited from tt::gui_system
std::weak_ptr< gui_system_delegatedelegate
 
std::unique_ptr< vertical_syncverticalSync
 
std::vector< std::shared_ptr< gui_device > > devices
 List of all devices.
 
ssize_t previousNumberOfWindows = 0
 

Additional Inherited Members

- Static Public Attributes inherited from tt::gui_system
static std::unique_ptr< gui_systemglobal
 

Detailed Description

Vulkan gui_device controller.

Manages Vulkan device and a set of Windows.

Constructor & Destructor Documentation

◆ gui_system_vulkan()

tt::gui_system_vulkan::gui_system_vulkan ( std::weak_ptr< gui_system_delegate > const & delegate,
const std::vector< const char * > extensions )

Create an instance of a gui_device.

After the constructor is completed it may be used to get a Vulkan surface and passed to Window constructors.

Parameters
delegateThe delegate for the gui-system.
extensionsa list of Vulkan extensions required. Most useful for including operating system specific surface extensions.

Member Function Documentation

◆ init()

void tt::gui_system_vulkan::init ( )
overridevirtual

Initialize after construction.

Call this function directly after the constructor on the same thread.

Implements tt::gui_system.

Field Documentation

◆ applicationInfo

vk::ApplicationInfo tt::gui_system_vulkan::applicationInfo

application info passed when the instance was created.

◆ intrinsic

vk::Instance tt::gui_system_vulkan::intrinsic

Vulkan instance.

◆ requiredExtensions

std::vector<const char *> tt::gui_system_vulkan::requiredExtensions

List of extension that where requested when the instance was created.

◆ requiredFeatures

vk::PhysicalDeviceFeatures tt::gui_system_vulkan::requiredFeatures

List of required features for each device.

◆ requiredLayers

std::vector<const char *> tt::gui_system_vulkan::requiredLayers

List of extension that where requested when the instance was created.

◆ requiredLimits

vk::PhysicalDeviceLimits tt::gui_system_vulkan::requiredLimits

List of required limits for each device.


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