diff options
Diffstat (limited to '3rdparty/bgfx/examples/common/entry/entry_osx.mm')
-rw-r--r-- | 3rdparty/bgfx/examples/common/entry/entry_osx.mm | 112 |
1 files changed, 50 insertions, 62 deletions
diff --git a/3rdparty/bgfx/examples/common/entry/entry_osx.mm b/3rdparty/bgfx/examples/common/entry/entry_osx.mm index 49a8f9bbfff..e99d59bab27 100644 --- a/3rdparty/bgfx/examples/common/entry/entry_osx.mm +++ b/3rdparty/bgfx/examples/common/entry/entry_osx.mm @@ -64,21 +64,24 @@ namespace entry struct MainThreadEntry { int m_argc; - char** m_argv; + const char* const* m_argv; - static int32_t threadFunc(void* _userData) + static int32_t threadFunc(bx::Thread* _thread, void* _userData) { + BX_UNUSED(_thread); + CFBundleRef mainBundle = CFBundleGetMainBundle(); - if ( mainBundle != nil ) + if (mainBundle != nil) { CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle); - if ( resourcesURL != nil ) + if (resourcesURL != nil) { char path[PATH_MAX]; - if (CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX) ) + if (CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8*)path, PATH_MAX) ) { chdir(path); } + CFRelease(resourcesURL); } } @@ -100,7 +103,7 @@ namespace entry , m_fullscreen(false) { s_translateKey[27] = Key::Esc; - s_translateKey[uint8_t('\n')] = Key::Return; + s_translateKey[uint8_t('\r')] = Key::Return; s_translateKey[uint8_t('\t')] = Key::Tab; s_translateKey[127] = Key::Backspace; s_translateKey[uint8_t(' ')] = Key::Space; @@ -271,66 +274,52 @@ namespace entry switch (eventType) { - case NSMouseMoved: - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: - { - getMousePos(&m_mx, &m_my); - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll); - break; - } - - case NSLeftMouseDown: + case NSMouseMoved: + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + getMousePos(&m_mx, &m_my); + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll); + break; + + case NSLeftMouseDown: { // Command + Left Mouse Button acts as middle! This just a temporary solution! // This is because the average OSX user doesn't have middle mouse click. MouseButton::Enum mb = ([event modifierFlags] & NSCommandKeyMask) ? MouseButton::Middle : MouseButton::Left; m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, mb, true); - break; } + break; - case NSLeftMouseUp: - { - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Left, false); - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, false); // TODO: remove! - break; - } + case NSLeftMouseUp: + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Left, false); + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, false); + break; - case NSRightMouseDown: - { - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Right, true); - break; - } + case NSRightMouseDown: + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Right, true); + break; - case NSRightMouseUp: - { - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Right, false); - break; - } + case NSRightMouseUp: + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Right, false); + break; - case NSOtherMouseDown: - { - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, true); - break; - } + case NSOtherMouseDown: + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, true); + break; - case NSOtherMouseUp: - { - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, false); - break; - } + case NSOtherMouseUp: + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll, MouseButton::Middle, false); + break; - case NSScrollWheel: - { - m_scrollf += [event deltaY]; + case NSScrollWheel: + m_scrollf += [event deltaY]; - m_scroll = (int32_t)m_scrollf; - m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll); - break; - } + m_scroll = (int32_t)m_scrollf; + m_eventQueue.postMouseEvent(s_defaultWindow, m_mx, m_my, m_scroll); + break; - case NSKeyDown: + case NSKeyDown: { uint8_t modifiers = 0; uint8_t pressedChar[4]; @@ -351,11 +340,10 @@ namespace entry return false; } } - - break; } + break; - case NSKeyUp: + case NSKeyUp: { uint8_t modifiers = 0; uint8_t pressedChar[4]; @@ -369,8 +357,11 @@ namespace entry return false; } - break; } + break; + + default: + break; } [NSApp sendEvent:event]; @@ -409,7 +400,7 @@ namespace entry m_eventQueue.postSuspendEvent(s_defaultWindow, Suspend::DidSuspend); } - int32_t run(int _argc, char** _argv) + int32_t run(int _argc, const char* const* _argv) { [NSApplication sharedApplication]; @@ -487,10 +478,7 @@ namespace entry { @autoreleasepool { - if (bgfx::RenderFrame::Exiting == bgfx::renderFrame() ) - { - break; - } + bgfx::renderFrame(); } while (dispatchEvent(peekEvent() ) ) @@ -770,7 +758,7 @@ namespace entry @end -int main(int _argc, char** _argv) +int main(int _argc, const char* const* _argv) { using namespace entry; return s_ctx.run(_argc, _argv); |