36 using kVKKeyCodeToKeySymbolMap = std::map<unsigned short, vsg::KeySymbol>;
38 bool getKeySymbol(UIEvent* anEvent, vsg::KeySymbol& keySymbol, vsg::KeySymbol& modifiedKeySymbol, vsg::KeyModifier& keyModifier);
41 kVKKeyCodeToKeySymbolMap _keycodeMap;
51 iOS_Window() =
delete;
52 iOS_Window(
const iOS_Window&) =
delete;
53 iOS_Window operator = (
const iOS_Window&) =
delete;
55 const char* instanceExtensionSurfaceName()
const override {
return VK_EXT_METAL_SURFACE_EXTENSION_NAME; }
57 bool valid()
const override {
return _window; }
63 void resize()
override;
65 bool handleUIEvent(UIEvent* anEvent);
70 CAMetalLayer* layer() {
return _metalLayer; };
72 vsg::clock::time_point getEventTime(
double eventTime)
74 long elapsedmilli = long(
double(eventTime - _first_macos_timestamp) * 1000.0f);
75 return _first_macos_time_point + std::chrono::milliseconds(elapsedmilli);
78 void queueEvent(vsg::UIEvent* anEvent) { _bufferedEvents.emplace_back(anEvent); }
81 virtual ~iOS_Window();
83 void _initSurface()
override;
85 vsg_iOS_Window* _window;
87 CAMetalLayer* _metalLayer;
89 double _first_macos_timestamp = 0;
90 vsg::clock::time_point _first_macos_time_point;
92 vsg::UIEvents _bufferedEvents;
93 vsg::ref_ptr<KeyboardMap> _keyboard;