HikoGUI
A low latency retained GUI
Loading...
Searching...
No Matches
Public Member Functions | Data Fields | Static Public Attributes
tt::Window_vulkan Class Referenceabstract
Inheritance diagram for tt::Window_vulkan:
tt::Window_base tt::Window_vulkan_macos tt::Window_vulkan_win32

Public Member Functions

 Window_vulkan (std::shared_ptr< WindowDelegate > const &delegate, Label &&title)
 
 Window_vulkan (const Window_vulkan &)=delete
 
Window_vulkanoperator= (const Window_vulkan &)=delete
 
 Window_vulkan (Window_vulkan &&)=delete
 
Window_vulkanoperator= (Window_vulkan &&)=delete
 
void initialize () override
 
void render (hires_utc_clock::time_point displayTimePoint) override
 
- Public Member Functions inherited from tt::Window_base
float fontScale () const noexcept
 By how much the font needs to be scaled compared to current windowScale.
 
 Window_base (std::shared_ptr< WindowDelegate > const &delegate, Label &&title)
 
 Window_base (Window_base const &)=delete
 
Window_baseoperator= (Window_base const &)=delete
 
 Window_base (Window_base &&)=delete
 
Window_baseoperator= (Window_base &&)=delete
 
void setDevice (GUIDevice *device)
 
void unsetDevice ()
 
void layout (hires_utc_clock::time_point displayTimePoint)
 
int layoutChildren (hires_utc_clock::time_point displayTimePoint, bool force)
 Layout the widgets in the window.
 
bool isClosed ()
 
template<typename T , typename... Args>
T & makeWidget (Args &&... args)
 Add a widget to main widget of the window.
 
rhea::constraint addConstraint (rhea::constraint const &constraint) noexcept
 
rhea::constraint addConstraint (rhea::linear_equation const &equation, rhea::strength const &strength=rhea::strength::required(), double weight=1.0) noexcept
 
rhea::constraint addConstraint (rhea::linear_inequality const &equation, rhea::strength const &strength=rhea::strength::required(), double weight=1.0) noexcept
 
void removeConstraint (rhea::constraint const &constraint) noexcept
 
rhea::constraint replaceConstraint (rhea::constraint const &oldConstraint, rhea::constraint const &newConstraint) noexcept
 
rhea::constraint replaceConstraint (rhea::constraint const &oldConstraint, rhea::linear_equation const &newEquation, rhea::strength const &strength=rhea::strength::required(), double weight=1.0) noexcept
 
rhea::constraint replaceConstraint (rhea::constraint const &oldConstraint, rhea::linear_inequality const &newEquation, rhea::strength const &strength=rhea::strength::required(), double weight=1.0) noexcept
 
virtual void setCursor (Cursor cursor)=0
 
virtual void closeWindow ()=0
 
virtual void minimizeWindow ()=0
 
virtual void maximizeWindow ()=0
 
virtual void normalizeWindow ()=0
 
virtual void setWindowSize (ivec extent)=0
 
virtual std::string getTextFromClipboard () const noexcept=0
 
virtual void setTextOnClipboard (std::string str) noexcept=0
 
void updateToNextKeyboardTarget (Widget *currentTargetWidget) noexcept
 
void updateToPrevKeyboardTarget (Widget *currentTargetWidget) noexcept
 

Data Fields

vk::SurfaceKHR intrinsic
 
vk::SwapchainKHR swapchain
 
int nrSwapchainImages
 
vk::Extent2D swapchainImageExtent
 
vk::SurfaceFormatKHR swapchainImageFormat
 
std::vector< vk::Image > swapchainImages
 
std::vector< vk::ImageView > swapchainImageViews
 
std::vector< vk::Framebuffer > swapchainFramebuffers
 
VmaAllocation depthImageAllocation
 
vk::Image depthImage
 
vk::ImageView depthImageView
 
VmaAllocation colorImageAllocation
 
vk::Image colorImage
 
vk::ImageView colorImageView
 
vk::DescriptorImageInfo colorDescriptorImageInfo
 
vk::RenderPass renderPass
 
vk::CommandBuffer commandBuffer
 
vk::Semaphore imageAvailableSemaphore
 
vk::Semaphore renderFinishedSemaphore
 
vk::Fence renderFinishedFence
 
std::unique_ptr< PipelineImage::PipelineImageimagePipeline
 
std::unique_ptr< PipelineFlat::PipelineFlatflatPipeline
 
std::unique_ptr< PipelineBox::PipelineBoxboxPipeline
 
std::unique_ptr< PipelineSDF::PipelineSDFSDFPipeline
 
std::unique_ptr< PipelineToneMapper::PipelineToneMappertoneMapperPipeline
 
- Data Fields inherited from tt::Window_base
State state = State::NoDevice
 
Cursor currentCursor = Cursor::None
 The current cursor.
 
std::atomic< bool > forceLayout = true
 When set to true the widgets will be layed out.
 
std::atomic< bool > forceRedraw = true
 When set to true the widgets will be redrawn.
 
std::atomic< bool > resizing = false
 
std::atomic< bool > active = false
 
Size size = Size::Normal
 
fast_mutex widgetSolverMutex
 Mutex for access to rhea objects registered with the widgetSolver.
 
ivec minimumWindowExtent
 The minimum window extent as calculated by laying out all the widgets.
 
ivec maximumWindowExtent
 The maximum window extent as calculated by laying out all the widgets.
 
ivec currentWindowExtent
 The current window extent as set by the GPU library.
 
std::shared_ptr< WindowDelegatedelegate
 
Label title
 
GUIDevicedevice = nullptr
 
SubpixelOrientation subpixelOrientation = SubpixelOrientation::BlueRight
 
float dpi = 72.0
 
std::unique_ptr< Widgetwidget
 The widget covering the complete window.
 
WidgetmouseTargetWidget = nullptr
 Target of the mouse Since any mouse event will change the target this is used to check if the target has changed, to send exit events to the previous mouse target.
 
WidgetkeyboardTargetWidget = nullptr
 Target of the keyboard widget where keyboard events are sent to.
 
WidgetfirstKeyboardWidget = nullptr
 The first widget in the window that needs to be selected.
 
WidgetlastKeyboardWidget = nullptr
 The first widget in the window that needs to be selected.
 

Static Public Attributes

static const vk::Format depthImageFormat = vk::Format::eD32Sfloat
 
static const vk::Format colorImageFormat = vk::Format::eR16G16B16A16Sfloat
 

Additional Inherited Members

- Public Types inherited from tt::Window_base
enum class  State {
  Initializing , NoWindow , NoDevice , NoSurface ,
  NoSwapchain , ReadyToRender , SwapchainLost , SurfaceLost ,
  DeviceLost , WindowLost
}
 
enum class  Size { Normal , Minimized , Maximized }
 

Member Function Documentation

◆ initialize()

void tt::Window_vulkan::initialize ( )
overridevirtual

Reimplemented from tt::Window_base.

◆ render()

void tt::Window_vulkan::render ( hires_utc_clock::time_point displayTimePoint)
overridevirtual

Update window. This will update animations and redraw all widgets managed by this window.

Implements tt::Window_base.


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