31 using KeycodeModifier = std::pair<uint16_t, uint16_t>;
32 using KeycodeMap = std::map<KeycodeModifier, vsg::KeySymbol>;
34 void add(uint16_t keycode, uint16_t modifier, vsg::KeySymbol key);
36 void add(uint16_t keycode, std::initializer_list<std::pair<uint16_t, vsg::KeySymbol>> combinations);
38 vsg::KeySymbol getKeySymbol(uint16_t keycode, uint16_t modifier);
39 vsg::KeyModifier getKeyModifier(vsg::KeySymbol keySym, uint16_t modifier,
bool pressed);
42 KeycodeMap _keycodeMap;
43 uint16_t _modifierMask;
58 Xcb_Window() =
delete;
59 Xcb_Window(
const Xcb_Window&) =
delete;
60 Xcb_Window& operator=(
const Xcb_Window&) =
delete;
62 const char* instanceExtensionSurfaceName()
const override {
return VK_KHR_XCB_SURFACE_EXTENSION_NAME; }
64 bool valid()
const override;
66 bool visible()
const override;
73 void resize()
override;
78 void _initSurface()
override;
80 xcb_connection_t* _connection =
nullptr;
81 xcb_screen_t* _screen =
nullptr;
82 xcb_window_t _window{};
83 xcb_atom_t _wmProtocols{};
84 xcb_atom_t _wmDeleteWindow{};
86 bool _windowMapped =
false;
88 xcb_timestamp_t _first_xcb_timestamp = 0;
89 vsg::clock::time_point _first_xcb_time_point;
91 vsg::ref_ptr<KeyboardMap> _keyboard;