summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/common/entry/entry_osx.mm
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/examples/common/entry/entry_osx.mm')
-rw-r--r--3rdparty/bgfx/examples/common/entry/entry_osx.mm112
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);