diff options
Diffstat (limited to '3rdparty/bgfx/examples/common/entry/entry_windows.cpp')
-rw-r--r-- | 3rdparty/bgfx/examples/common/entry/entry_windows.cpp | 41 |
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); |