summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/bgfx/examples/common/entry/entry_windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/bgfx/examples/common/entry/entry_windows.cpp')
-rw-r--r--3rdparty/bgfx/examples/common/entry/entry_windows.cpp41
1 files changed, 26 insertions, 15 deletions
diff --git a/3rdparty/bgfx/examples/common/entry/entry_windows.cpp b/3rdparty/bgfx/examples/common/entry/entry_windows.cpp
index 055c85788a2..68045859eb0 100644
--- a/3rdparty/bgfx/examples/common/entry/entry_windows.cpp
+++ b/3rdparty/bgfx/examples/common/entry/entry_windows.cpp
@@ -311,9 +311,9 @@ 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);
};
struct Msg
@@ -381,7 +381,7 @@ namespace entry
s_translateKey[VK_OEM_7] = Key::Quote;
s_translateKey[VK_OEM_COMMA] = Key::Comma;
s_translateKey[VK_OEM_PERIOD] = Key::Period;
- s_translateKey[VK_DECIMAL] = Key::Period;
+ s_translateKey[VK_DECIMAL] = Key::Period;
s_translateKey[VK_OEM_2] = Key::Slash;
s_translateKey[VK_OEM_5] = Key::Backslash;
s_translateKey[VK_OEM_3] = Key::Tilde;
@@ -445,7 +445,7 @@ namespace entry
s_translateKey[uint8_t('Z')] = Key::KeyZ;
}
- int32_t run(int _argc, char** _argv)
+ int32_t run(int _argc, const char* const* _argv)
{
SetDllDirectoryA(".");
@@ -498,6 +498,8 @@ namespace entry
mte.m_argc = _argc;
mte.m_argv = _argv;
+ bgfx::renderFrame();
+
bx::Thread thread;
thread.init(mte.threadFunc, &mte);
m_init = true;
@@ -509,6 +511,8 @@ namespace entry
while (!m_exit)
{
+ bgfx::renderFrame();
+
s_xinput.update(m_eventQueue);
WaitForInputIdle(GetCurrentProcess(), 16);
@@ -519,6 +523,8 @@ namespace entry
}
}
+ while (bgfx::RenderFrame::NoContext != bgfx::renderFrame() ) {};
+
thread.shutdown();
DestroyWindow(m_hwnd[0]);
@@ -661,13 +667,23 @@ namespace entry
}
// Recalculate position using different anchor points
- switch(_wparam)
+ switch (_wparam)
{
- case WMSZ_LEFT:
case WMSZ_TOPLEFT:
+ rect.left = rect.right - width - m_frameWidth;
+ rect.top = rect.bottom - height - m_frameHeight;
+ break;
+
+ case WMSZ_TOP:
+ case WMSZ_TOPRIGHT:
+ rect.right = rect.left + width + m_frameWidth;
+ rect.top = rect.bottom - height - m_frameHeight;
+ break;
+
+ case WMSZ_LEFT:
case WMSZ_BOTTOMLEFT:
- rect.left = rect.right - width - m_frameWidth;
- rect.bottom = rect.top + height + m_frameHeight;
+ rect.left = rect.right - width - m_frameWidth;
+ rect.bottom = rect.top + height + m_frameHeight;
break;
default:
@@ -881,10 +897,6 @@ namespace entry
}
else
{
-#if defined(__MINGW32__)
- rect = m_rect;
- style = m_style;
-#else
HMONITOR monitor = MonitorFromWindow(_hwnd, MONITOR_DEFAULTTONEAREST);
MONITORINFO mi;
mi.cbSize = sizeof(mi);
@@ -892,7 +904,6 @@ namespace entry
newrect = mi.rcMonitor;
rect = mi.rcMonitor;
m_aspectRatio = float(newrect.right - newrect.left)/float(newrect.bottom - newrect.top);
-#endif // !defined(__MINGW__)
}
SetWindowLong(_hwnd, GWL_STYLE, style);
@@ -1085,7 +1096,7 @@ namespace entry
PostMessage(s_ctx.m_hwnd[0], WM_USER_WINDOW_MOUSE_LOCK, _handle.idx, _lock);
}
- int32_t MainThreadEntry::threadFunc(void* _userData)
+ int32_t MainThreadEntry::threadFunc(bx::Thread* /*_thread*/, void* _userData)
{
MainThreadEntry* self = (MainThreadEntry*)_userData;
int32_t result = main(self->m_argc, self->m_argv);
@@ -1095,7 +1106,7 @@ namespace entry
} // namespace entry
-int main(int _argc, char** _argv)
+int main(int _argc, const char* const* _argv)
{
using namespace entry;
return s_ctx.run(_argc, _argv);