Fixed SDL2 entry.

This commit is contained in:
bkaradzic 2014-09-21 09:52:55 -07:00
parent 2dea8c8abe
commit 205b2a37ab

View file

@ -170,7 +170,8 @@ namespace entry
m_thread.init(MainThreadEntry::threadFunc, &m_mte); m_thread.init(MainThreadEntry::threadFunc, &m_mte);
// Force window resolution... // Force window resolution...
setWindowSize(m_width, m_height, true); WindowHandle defaultWindow = { 0 };
setWindowSize(defaultWindow, m_width, m_height, true);
bool exit = false; bool exit = false;
SDL_Event event; SDL_Event event;
@ -186,7 +187,7 @@ namespace entry
case SDL_MOUSEMOTION: case SDL_MOUSEMOTION:
{ {
const SDL_MouseMotionEvent& mev = event.motion; const SDL_MouseMotionEvent& mev = event.motion;
m_eventQueue.postMouseEvent(mev.x, mev.y, 0); m_eventQueue.postMouseEvent(defaultWindow, mev.x, mev.y, 0);
} }
break; break;
@ -194,7 +195,7 @@ namespace entry
case SDL_MOUSEBUTTONUP: case SDL_MOUSEBUTTONUP:
{ {
const SDL_MouseButtonEvent& mev = event.button; const SDL_MouseButtonEvent& mev = event.button;
m_eventQueue.postMouseEvent(mev.x, mev.y, 0, MouseButton::Left, mev.type == SDL_MOUSEBUTTONDOWN); m_eventQueue.postMouseEvent(defaultWindow, mev.x, mev.y, 0, MouseButton::Left, mev.type == SDL_MOUSEBUTTONDOWN);
} }
break; break;
@ -204,7 +205,7 @@ namespace entry
const SDL_KeyboardEvent& kev = event.key; const SDL_KeyboardEvent& kev = event.key;
uint8_t modifiers = translateKeyModifiers(kev.keysym.mod); uint8_t modifiers = translateKeyModifiers(kev.keysym.mod);
Key::Enum key = translateKey(kev.keysym.scancode); Key::Enum key = translateKey(kev.keysym.scancode);
m_eventQueue.postKeyEvent(key, modifiers, kev.state == SDL_PRESSED); m_eventQueue.postKeyEvent(defaultWindow, key, modifiers, kev.state == SDL_PRESSED);
} }
break; break;
@ -215,7 +216,7 @@ namespace entry
{ {
case SDL_WINDOWEVENT_RESIZED: case SDL_WINDOWEVENT_RESIZED:
case SDL_WINDOWEVENT_SIZE_CHANGED: case SDL_WINDOWEVENT_SIZE_CHANGED:
setWindowSize(wev.data1, wev.data2); setWindowSize(defaultWindow, wev.data1, wev.data2);
break; break;
case SDL_WINDOWEVENT_SHOWN: case SDL_WINDOWEVENT_SHOWN:
@ -246,7 +247,7 @@ namespace entry
{ {
uint32_t width = *(uint32_t*)&uev.data1; uint32_t width = *(uint32_t*)&uev.data1;
uint32_t height = *(uint32_t*)&uev.data2; uint32_t height = *(uint32_t*)&uev.data2;
setWindowSize(width, height); setWindowSize(defaultWindow, width, height);
} }
else if (SDL_USER_TOGGLE_WINDOW_FRAME == event.type) else if (SDL_USER_TOGGLE_WINDOW_FRAME == event.type)
{ {
@ -254,7 +255,7 @@ namespace entry
} }
else if (SDL_USER_MOUSE_LOCK == event.type) else if (SDL_USER_MOUSE_LOCK == event.type)
{ {
setMouseLock(!!uev.code); setMouseLock(defaultWindow, !!uev.code);
} }
} }
break; break;
@ -267,17 +268,18 @@ namespace entry
SDL_Quit(); SDL_Quit();
} }
void setMousePos(int32_t _mx, int32_t _my) void setMousePos(WindowHandle _handle, int32_t _mx, int32_t _my)
{ {
BX_UNUSED(_mx, _my); BX_UNUSED(_handle, _mx, _my);
} }
void setMouseLock(bool _lock) void setMouseLock(WindowHandle _handle, bool _lock)
{ {
BX_UNUSED(_handle);
SDL_SetRelativeMouseMode(_lock ? SDL_TRUE : SDL_FALSE); SDL_SetRelativeMouseMode(_lock ? SDL_TRUE : SDL_FALSE);
} }
void setWindowSize(uint32_t _width, uint32_t _height, bool _force = false) void setWindowSize(WindowHandle _handle, uint32_t _width, uint32_t _height, bool _force = false)
{ {
if (_width != m_width if (_width != m_width
|| _height != m_height || _height != m_height
@ -300,13 +302,14 @@ namespace entry
} }
SDL_SetWindowSize(m_window, m_width, m_height); SDL_SetWindowSize(m_window, m_width, m_height);
m_eventQueue.postSizeEvent(m_width, m_height); m_eventQueue.postSizeEvent(_handle, m_width, m_height);
} }
} }
void setWindowTitle(const char* _title) void setWindowTitle(WindowHandle _handle, const char* _title)
{ {
SDL_WM_SetCaption(_title, NULL); BX_UNUSED(_handle);
SDL_SetWindowTitle(m_window, _title);
} }
MainThreadEntry m_mte; MainThreadEntry m_mte;
@ -337,8 +340,9 @@ namespace entry
s_ctx.m_eventQueue.release(_event); s_ctx.m_eventQueue.release(_event);
} }
void setWindowSize(uint32_t _width, uint32_t _height) void setWindowSize(WindowHandle _handle, uint32_t _width, uint32_t _height)
{ {
BX_UNUSED(_handle);
SDL_Event event; SDL_Event event;
SDL_UserEvent& uev = event.user; SDL_UserEvent& uev = event.user;
uev.type = SDL_USER_SET_WINDOW_SIZE; uev.type = SDL_USER_SET_WINDOW_SIZE;
@ -347,17 +351,19 @@ namespace entry
SDL_PushEvent(&event); SDL_PushEvent(&event);
} }
void setWindowTitle(const char* _title) void setWindowTitle(WindowHandle _handle, const char* _title)
{ {
s_ctx.setWindowTitle(_title); s_ctx.setWindowTitle(_handle, _title);
} }
void toggleWindowFrame() void toggleWindowFrame(WindowHandle _handle)
{ {
BX_UNUSED(_handle);
} }
void setMouseLock(bool _lock) void setMouseLock(WindowHandle _handle, bool _lock)
{ {
BX_UNUSED(_handle);
SDL_Event event; SDL_Event event;
SDL_UserEvent& uev = event.user; SDL_UserEvent& uev = event.user;
uev.type = SDL_USER_MOUSE_LOCK; uev.type = SDL_USER_MOUSE_LOCK;