Blender V4.3
GWL_Display Struct Reference

Public Attributes

struct { 
 
   wl_registry *   registry = nullptr 
 
   wl_display *   display = nullptr 
 
   wl_compositor *   compositor = nullptr 
 
   wl_shm *   shm = nullptr 
 
   wl_data_device_manager *   data_device_manager = nullptr 
 
wl 
 
struct { 
 
   zwp_tablet_manager_v2 *   tablet_manager = nullptr 
 
   zwp_relative_pointer_manager_v1 *   relative_pointer_manager = nullptr 
 
   zwp_primary_selection_device_manager_v1 *   primary_selection_device_manager = nullptr 
 
   wp_fractional_scale_manager_v1 *   fractional_scale_manager = nullptr 
 
   wp_viewporter *   viewporter = nullptr 
 
   zwp_pointer_constraints_v1 *   pointer_constraints = nullptr 
 
   zwp_pointer_gestures_v1 *   pointer_gestures = nullptr 
 
wp 
 
struct { 
 
   zxdg_output_manager_v1 *   output_manager = nullptr 
 
   xdg_activation_v1 *   activation_manager = nullptr 
 
xdg 
 
GWL_DisplayTimeStamp input_timestamp
 
GHOST_SystemWaylandsystem = nullptr
 
bool registry_skip_update_all = false
 
GWL_RegistryEntryregistry_entry = nullptr
 
GWL_XDG_Decor_Systemxdg_decor = nullptr
 
std::vector< GWL_Output * > outputs
 
std::vector< GWL_Seat * > seats
 
int seats_active_index = 0
 
pthread_t events_pthread = 0
 
bool events_pthread_is_active = false
 
std::vector< const GHOST_IEvent * > events_pending
 
std::mutex events_pending_mutex
 
GHOST_TimerManagerghost_timer_manager = nullptr
 

Detailed Description

Definition at line 1416 of file GHOST_SystemWayland.cc.

Member Data Documentation

◆ activation_manager

xdg_activation_v1* GWL_Display::activation_manager = nullptr

◆ compositor

wl_compositor* GWL_Display::compositor = nullptr

Definition at line 1422 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::wl_compositor_get().

◆ data_device_manager

wl_data_device_manager* GWL_Display::data_device_manager = nullptr

Definition at line 1426 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::putClipboardImage().

◆ display

◆ events_pending

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 1503 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::processEvents(), and GHOST_SystemWayland::pushEvent_maybe_pending().

◆ events_pending_mutex

std::mutex GWL_Display::events_pending_mutex

Guard against multiple threads accessing events_pending at once.

Definition at line 1505 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::processEvents(), and GHOST_SystemWayland::pushEvent_maybe_pending().

◆ events_pthread

pthread_t GWL_Display::events_pthread = 0

Run a thread that consumes events in the background. Use pthread because std::thread leaks memory.

Definition at line 1495 of file GHOST_SystemWayland.cc.

◆ events_pthread_is_active

bool GWL_Display::events_pthread_is_active = false

Use to exit the event reading loop.

Definition at line 1497 of file GHOST_SystemWayland.cc.

◆ fractional_scale_manager

wp_fractional_scale_manager_v1* GWL_Display::fractional_scale_manager = nullptr

◆ ghost_timer_manager

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 1515 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::GHOST_SystemWayland(), and GHOST_SystemWayland::ghost_timer_manager().

◆ input_timestamp

GWL_DisplayTimeStamp GWL_Display::input_timestamp

Definition at line 1451 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::ms_from_input_time().

◆ output_manager

zxdg_output_manager_v1* GWL_Display::output_manager = nullptr

Definition at line 1447 of file GHOST_SystemWayland.cc.

◆ outputs

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 1474 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::getAllDisplayDimensions(), GHOST_SystemWayland::getMainDisplayDimensions(), GHOST_SystemWayland::getNumDisplays(), and GHOST_SystemWayland::outputs_get().

◆ pointer_constraints

zwp_pointer_constraints_v1* GWL_Display::pointer_constraints = nullptr

◆ pointer_gestures

zwp_pointer_gestures_v1* GWL_Display::pointer_gestures = nullptr

◆ primary_selection_device_manager

zwp_primary_selection_device_manager_v1* GWL_Display::primary_selection_device_manager = nullptr

◆ registry

wl_registry* GWL_Display::registry = nullptr

Definition at line 1420 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::GHOST_SystemWayland().

◆ registry_entry

GWL_RegistryEntry* GWL_Display::registry_entry = nullptr

Registry entries, kept to allow updating & removal at run-time.

Definition at line 1462 of file GHOST_SystemWayland.cc.

◆ registry_skip_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 1459 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::GHOST_SystemWayland().

◆ relative_pointer_manager

zwp_relative_pointer_manager_v1* GWL_Display::relative_pointer_manager = nullptr

◆ seats

◆ seats_active_index

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 e.g.), basic support is sufficient for now as currently isn't a widely used feature.

Definition at line 1487 of file GHOST_SystemWayland.cc.

◆ shm

wl_shm* GWL_Display::shm = nullptr

◆ system

GHOST_SystemWayland* GWL_Display::system = nullptr

◆ tablet_manager

zwp_tablet_manager_v2* GWL_Display::tablet_manager = nullptr

Definition at line 1432 of file GHOST_SystemWayland.cc.

◆ viewporter

wp_viewporter* GWL_Display::viewporter = nullptr

Definition at line 1436 of file GHOST_SystemWayland.cc.

Referenced by GHOST_SystemWayland::wp_viewporter_get().

◆ [struct]

◆ [struct]

◆ [struct]

struct { ... } GWL_Display::xdg

Wayland XDG types.

Referenced by GHOST_SystemWayland::xdg_activation_manager_get().

◆ xdg_decor


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