|
HikoGUI
A low latency retained GUI
|
Public Member Functions | |
| gui_window_vulkan (gui_system &system, std::weak_ptr< gui_window_delegate > const &delegate, label const &title) | |
| gui_window_vulkan (const gui_window_vulkan &)=delete | |
| gui_window_vulkan & | operator= (const gui_window_vulkan &)=delete |
| gui_window_vulkan (gui_window_vulkan &&)=delete | |
| gui_window_vulkan & | operator= (gui_window_vulkan &&)=delete |
| void | init () override |
| 2 phase constructor. | |
| gui_device_vulkan & | vulkan_device () const noexcept |
| void | render (hires_utc_clock::time_point displayTimePoint) override |
| Update window. | |
| virtual vk::SurfaceKHR | getSurface () const =0 |
Public Member Functions inherited from tt::gui_window | |
| gui_window (gui_system &system, std::weak_ptr< gui_window_delegate > const &delegate, label const &title) | |
| gui_window (gui_window const &)=delete | |
| gui_window & | operator= (gui_window const &)=delete |
| gui_window (gui_window &&)=delete | |
| gui_window & | operator= (gui_window &&)=delete |
| void | request_redraw (aarectangle rectangle) noexcept |
| Request a rectangle on the window to be redrawn. | |
| void | request_redraw () noexcept |
| Request a rectangle on the window to be redrawn. | |
| float | fontScale () const noexcept |
| By how much the font needs to be scaled compared to current windowScale. | |
| void | set_device (gui_device *device) |
| void | unset_device () |
| gui_device * | device () const noexcept |
| bool | is_closed () |
| Check if the window was closed by the operating system. | |
| template<typename T , typename... Args> | |
| std::shared_ptr< T > | make_widget (size_t column_nr, size_t row_nr, Args &&...args) |
| Add a widget to main widget of the window. | |
| template<typename T , typename... Args> | |
| std::shared_ptr< T > | make_widget (std::string_view address, Args &&...args) |
| Add a widget to main widget of the window. | |
| template<typename T , horizontal_alignment Alignment = horizontal_alignment::left, typename... Args> | |
| std::shared_ptr< T > | make_toolbar_widget (Args &&...args) |
| Add a widget to main widget of the window. | |
| virtual void | set_cursor (mouse_cursor cursor)=0 |
| Set the mouse cursor icon. | |
| void | set_resize_border_priority (bool left, bool right, bool bottom, bool top) noexcept |
| virtual void | close_window ()=0 |
| Ask the operating system to close this window. | |
| virtual void | minimize_window ()=0 |
| Ask the operating system to minimize this window. | |
| virtual void | maximize_window ()=0 |
| Ask the operating system to maximize this window. | |
| virtual void | normalize_window ()=0 |
| Ask the operating system to normalize this window. | |
| virtual void | set_window_size (extent2 extent)=0 |
| Ask the operating system to set the size of this window. | |
| virtual std::string | get_text_from_clipboard () const noexcept=0 |
| Retrieve a text string from the operating system's clip-board. | |
| virtual void | set_text_on_clipboard (std::string str) noexcept=0 |
| Place a text string on the operating system's clip-board. | |
| void | update_mouse_target (std::shared_ptr< tt::widget > new_target_widget, point2 position={}) noexcept |
| void | update_keyboard_target (std::shared_ptr< tt::widget > widget, keyboard_focus_group group=keyboard_focus_group::normal) noexcept |
| Change the keyboard focus to the given widget. | |
| void | update_keyboard_target (std::shared_ptr< tt::widget > const &widget, keyboard_focus_group group, keyboard_focus_direction direction) noexcept |
| Change the keyboard focus to the given, previous or next widget. | |
| virtual extent2 | virtual_screen_size () const noexcept=0 |
| Get the size of the virtual-screen. | |
| translate2 | window_to_screen () const noexcept |
| translate2 | screen_to_window () const noexcept |
Data Fields | |
| vk::SurfaceKHR | intrinsic |
| vk::SwapchainKHR | swapchain |
| int | nrSwapchainImages |
| vk::Extent2D | swapchainImageExtent |
| vk::SurfaceFormatKHR | swapchainImageFormat |
| std::vector< swapchain_image_info > | swapchain_image_infos |
| VmaAllocation | depthImageAllocation |
| vk::Image | depthImage |
| vk::ImageView | depthImageView |
| std::array< VmaAllocation, 2 > | colorImageAllocations |
| std::array< vk::Image, 2 > | colorImages |
| std::array< vk::ImageView, 2 > | colorImageViews |
| std::array< vk::DescriptorImageInfo, 2 > | colorDescriptorImageInfos |
| vk::RenderPass | renderPass |
| vk::CommandBuffer | commandBuffer |
| vk::Semaphore | imageAvailableSemaphore |
| vk::Semaphore | renderFinishedSemaphore |
| vk::Fence | renderFinishedFence |
| std::unique_ptr< pipeline_image::pipeline_image > | imagePipeline |
| std::unique_ptr< pipeline_flat::pipeline_flat > | flatPipeline |
| std::unique_ptr< pipeline_box::pipeline_box > | boxPipeline |
| std::unique_ptr< pipeline_SDF::pipeline_SDF > | SDFPipeline |
| std::unique_ptr< pipeline_tone_mapper::pipeline_tone_mapper > | toneMapperPipeline |
Data Fields inherited from tt::gui_window | |
| gui_system & | system |
| gui_window_state | state = gui_window_state::no_device |
| mouse_cursor | currentmouse_cursor = mouse_cursor::None |
| The current cursor. | |
| std::atomic< bool > | requestLayout = true |
| When set to true the widgets will be layed out. | |
| std::atomic< bool > | requestResize = true |
| When set to true the window will resize to the size of the contained widget. | |
| std::atomic< bool > | resizing = false |
| std::atomic< bool > | active = false |
| gui_window_size | size_state = gui_window_size::normal |
| extent2 | extent |
| The current window extent as set by the GPU library. | |
| std::weak_ptr< gui_window_delegate > | delegate |
| label | title |
| subpixel_orientation | subpixel_orientation = subpixel_orientation::BlueRight |
| float | dpi = 72.0 |
| std::shared_ptr< window_widget > | widget |
| The widget covering the complete window. | |
|
pure virtual |
Query the surface from the operating-system window.
Implemented in tt::gui_window_vulkan_macos, and tt::gui_window_vulkan_win32.
|
overridevirtual |
2 phase constructor.
Must be called directly after the constructor on the same thread, before another thread can send messages to the window.
init() should not take locks on window::mutex.
Reimplemented from tt::gui_window.
|
overridevirtual |
Update window.
This will update animations and redraw all widgets managed by this window.
Implements tt::gui_window.