|
Blender V4.5
|
Classes | |
| struct | [struct].wl |
| struct | [struct].wp |
| struct | [struct].xdg |
Public Attributes | |
| struct | wl |
| struct | wp |
| struct | xdg |
| GWL_DisplayTimeStamp | input_timestamp |
| GHOST_SystemWayland * | system = nullptr |
| bool | registry_skip_update_all = false |
| GWL_RegistryEntry * | registry_entry = nullptr |
| GWL_XDG_Decor_System * | xdg_decor = nullptr |
| std::vector< GWL_Output * > | outputs |
| std::vector< GWL_Seat * > | seats |
| int | seats_active_index = 0 |
| bool | background = false |
| pthread_t | events_pthread = 0 |
| bool | events_pthread_is_active = false |
| std::vector< const GHOST_IEvent * > | events_pending |
| std::mutex | events_pending_mutex |
| GHOST_TimerManager * | ghost_timer_manager = nullptr |
Definition at line 1423 of file GHOST_SystemWayland.cc.
| bool GWL_Display::background = false |
When true, running without any windows. Wayland is only used to access the GPU.
Definition at line 1504 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), gwl_display_event_thread_create(), gwl_display_event_thread_destroy(), and gwl_display_event_thread_fn().
| std::vector<const GHOST_IEvent *> GWL_Display::events_pending |
Events added from the event reading thread. Added into the main event queue when on GHOST_SystemWayland::processEvents.
Definition at line 1526 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), and gwl_display_event_thread_create().
| std::mutex GWL_Display::events_pending_mutex |
Guard against multiple threads accessing events_pending at once.
Definition at line 1528 of file GHOST_SystemWayland.cc.
| pthread_t GWL_Display::events_pthread = 0 |
Run a thread that consumes events in the background. Use pthread because std::thread leaks memory.
Not set when background == true.
Definition at line 1514 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), gwl_display_event_thread_create(), and gwl_display_event_thread_destroy().
| bool GWL_Display::events_pthread_is_active = false |
Use to exit the event reading loop.
Not set when background == true.
Definition at line 1520 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), gwl_display_event_thread_create(), and gwl_display_event_thread_fn().
| GHOST_TimerManager* GWL_Display::ghost_timer_manager = nullptr |
A separate timer queue, needed so the WAYLAND thread can lock access. Using the system's #GHOST_Sysem::getTimerManager is not thread safe because access to the timer outside of WAYLAND specific logic will not lock.
Needed because GHOST_System::dispatchEvents fires timers outside of WAYLAND (without locking the timer_mutex).
Definition at line 1538 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy().
| GWL_DisplayTimeStamp GWL_Display::input_timestamp |
Definition at line 1458 of file GHOST_SystemWayland.cc.
| std::vector<GWL_Output *> GWL_Display::outputs |
NOTE(@ideasman42): Handling of outputs must account for this vector to be empty. While this seems like something which might not ever happen, it can occur when unplugging monitors (presumably from dodgy cables/connections too).
Definition at line 1481 of file GHOST_SystemWayland.cc.
Referenced by gwl_registry_wl_output_add(), and gwl_registry_wl_output_remove().
| GWL_RegistryEntry* GWL_Display::registry_entry = nullptr |
Registry entries, kept to allow updating & removal at run-time.
Definition at line 1469 of file GHOST_SystemWayland.cc.
Referenced by global_handle_add(), gwl_registry_entry_add(), gwl_registry_entry_remove_all(), gwl_registry_entry_remove_by_interface_slot(), gwl_registry_entry_remove_by_name(), and gwl_registry_entry_update_all().
| bool GWL_Display::registry_skip_update_all = false |
True when initializing registration, while updating all other entries wont cause problems, it will preform many redundant update calls.
Definition at line 1466 of file GHOST_SystemWayland.cc.
Referenced by global_handle_add(), and global_handle_remove().
| std::vector<GWL_Seat *> GWL_Display::seats |
Definition at line 1482 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), gwl_display_seat_active_get(), gwl_display_seat_active_set(), gwl_display_seat_index(), gwl_registry_wl_seat_add(), and gwl_registry_wl_seat_remove().
| int GWL_Display::seats_active_index = 0 |
Support a single active seat at once, this isn't an exact or correct mapping from WAYLAND. Only allow input from different seats, not full concurrent multi-seat support.
The main purpose of having an active seat is an alternative from always using the first seat which prevents events from any other seat.
NOTE(@ideasman42): This could be extended and developed further extended to support an active seat per window (for example), basic support is sufficient for now as currently isn't a widely used feature.
Definition at line 1494 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_seat_active_get(), gwl_display_seat_active_set(), and gwl_registry_wl_seat_remove().
| GHOST_SystemWayland* GWL_Display::system = nullptr |
Definition at line 1460 of file GHOST_SystemWayland.cc.
Referenced by gwl_display_destroy(), gwl_display_event_thread_fn(), gwl_registry_wl_output_add(), and gwl_registry_wl_seat_add().
| struct GWL_Display::[struct].wl GWL_Display::wl |
Referenced by global_handle_add(), global_handle_remove(), gwl_display_destroy(), gwl_display_event_thread_fn(), gwl_registry_compositor_add(), gwl_registry_compositor_remove(), gwl_registry_wl_data_device_manager_add(), gwl_registry_wl_data_device_manager_remove(), gwl_registry_wl_output_add(), gwl_registry_wl_seat_add(), gwl_registry_wl_seat_update(), gwl_registry_wl_shm_add(), gwl_registry_wl_shm_remove(), gwl_registry_wp_fractional_scale_manager_add(), gwl_registry_wp_pointer_constraints_add(), gwl_registry_wp_pointer_gestures_add(), gwl_registry_wp_primary_selection_device_manager_add(), gwl_registry_wp_relative_pointer_manager_add(), gwl_registry_wp_tablet_manager_add(), gwl_registry_wp_viewporter_add(), gwl_registry_xdg_activation_add(), gwl_registry_xdg_decoration_manager_add(), gwl_registry_xdg_output_manager_add(), gwl_registry_xdg_wm_base_add(), system_clipboard_get(), system_clipboard_get_primary_selection(), and system_clipboard_put().
| struct GWL_Display::[struct].wp GWL_Display::wp |
Referenced by gwl_registry_wl_seat_update(), gwl_registry_wp_fractional_scale_manager_add(), gwl_registry_wp_fractional_scale_manager_remove(), gwl_registry_wp_pointer_constraints_add(), gwl_registry_wp_pointer_constraints_remove(), gwl_registry_wp_pointer_gestures_add(), gwl_registry_wp_pointer_gestures_remove(), gwl_registry_wp_primary_selection_device_manager_add(), gwl_registry_wp_primary_selection_device_manager_remove(), gwl_registry_wp_relative_pointer_manager_add(), gwl_registry_wp_relative_pointer_manager_remove(), gwl_registry_wp_tablet_manager_add(), gwl_registry_wp_tablet_manager_remove(), gwl_registry_wp_viewporter_add(), gwl_registry_wp_viewporter_remove(), and system_clipboard_put_primary_selection().
| struct GWL_Display::[struct].xdg GWL_Display::xdg |
| GWL_XDG_Decor_System* GWL_Display::xdg_decor = nullptr |