46 void OpenGLPrint(
const char* s,
float x,
float y,
float r,
float g,
float b,
float a,
bool fromBotton =
true)
override;
54 int32_t FrontendMain()
override;
55 int32_t GetKey(uint32_t
key, uint32_t
state);
58 void reportError(
const char* where);
59 void handleKeyRepeat();
70 OutputInfo* findOutput(wl_output*
output);
72 wl_display* mWayland =
nullptr;
73 wl_registry* mRegistry =
nullptr;
75 wl_compositor* mCompositor =
nullptr;
76 wl_seat* mSeat =
nullptr;
77 wl_pointer* mPointer =
nullptr;
78 wl_keyboard* mKeyboard =
nullptr;
79 xdg_wm_base* mXdgBase =
nullptr;
81 wl_surface* mSurface =
nullptr;
82 xdg_surface* mXdgSurface =
nullptr;
83 xdg_toplevel* mXdgToplevel =
nullptr;
85 wl_registry_listener mRegistryListener{};
86 wl_seat_listener mSeatListener{};
87 wl_pointer_listener mPointerListener{};
88 wl_keyboard_listener mKeyboardListener{};
89 wl_output_listener mOutputListener{};
90 wl_surface_listener mSurfaceListener{};
91 xdg_wm_base_listener mXdgWmBaseListener{};
92 xdg_surface_listener mXdgSurfaceListener{};
93 xdg_toplevel_listener mXdgToplevelListener{};
94 wp_fractional_scale_v1_listener mFractionalScaleListener{};
96 std::vector<OutputInfo> mOutputs;
97 std::vector<wl_output*> mSurfaceOutputs;
98 uint32_t mSeatVersion = 0;
100 xkb_context* mXKBcontext =
nullptr;
101 xkb_keymap* mXKBkeymap =
nullptr;
102 xkb_state* mXKBstate =
nullptr;
104 zxdg_decoration_manager_v1* mDecManager =
nullptr;
105 zxdg_toplevel_decoration_v1* mXdgDecoration =
nullptr;
107 wp_viewporter* mViewporter =
nullptr;
108 wp_fractional_scale_manager_v1* mFractionalScaleManager =
nullptr;
109 wp_cursor_shape_manager_v1* mCursorShapeManager =
nullptr;
110 wp_cursor_shape_device_v1* mCursorShapeDevice =
nullptr;
111 wp_viewport* mViewport =
nullptr;
112 wp_fractional_scale_v1* mFractionalScale =
nullptr;
114 int32_t mWidthRequested = 0;
115 int32_t mHeightRequested = 0;
120 bool mStateFullScreenOrMaximized =
false;
121 int32_t mBoundsWidth = 0;
122 int32_t mBoundsHeight = 0;
124 int32_t mPreferredScale = 0;
125 uint32_t mFractionalScale120 = 0;
126 bool mSuspended =
false;
127 bool mCanFullscreen =
true;
128 bool mCanMaximize =
true;
130 int32_t mRepeatRate = 0;
131 int32_t mRepeatDelay = 0;
133 int32_t mRepeatSymbol = 0;
134 std::chrono::steady_clock::time_point mRepeatNext;
136 double mAxisValue = 0;
137 int32_t mAxisValue120 = 0;
138 bool mHasAxisValue120 =
false;