Added SDL2 support.

This commit is contained in:
bkaradzic 2013-08-10 22:15:59 -07:00
parent e047232292
commit 5b6a42e5cd
1 changed files with 43 additions and 0 deletions

View File

@ -17,13 +17,17 @@
namespace bgfx
{
///
void androidSetWindow(::ANativeWindow* _window);
} // namespace bgfx
#elif BX_PLATFORM_IOS
namespace bgfx
{
///
void iosSetEaglLayer(void* _layer);
} // namespace bgfx
#elif BX_PLATFORM_LINUX
@ -31,7 +35,9 @@ namespace bgfx
namespace bgfx
{
///
void x11SetDisplayWindow(::Display* _display, ::Window _window);
} // namespace bgfx
#elif BX_PLATFORM_NACL
@ -41,13 +47,18 @@ namespace bgfx
namespace bgfx
{
typedef void (*PostSwapBuffersFn)(uint32_t _width, uint32_t _height);
///
void naclSetIntefraces(::PP_Instance, const ::PPB_Instance*, const ::PPB_Graphics3D*, PostSwapBuffersFn);
} // namespace bgfx
#elif BX_PLATFORM_OSX
namespace bgfx
{
///
void osxSetNSWindow(void* _window);
} // namespace bgfx
#elif BX_PLATFORM_WINDOWS
@ -55,9 +66,41 @@ namespace bgfx
namespace bgfx
{
///
void winSetHwnd(::HWND _window);
} // namespace bgfx
#endif // BX_PLATFORM_
#ifdef _SDL_H
// If SDL is included before bgfxplatform.h we can enable SDL window interop
// convenience code.
# include <SDL_syswm.h>
namespace bgfx
{
///
inline bool sdlSetWindow(SDL_Window* _window)
{
SDL_SysWMinfo wmi;
SDL_VERSION(&wmi.version);
if (-1 == SDL_GetWindowWMInfo(_window, &wmi) )
{
return false;
}
#if BX_PLATFORM_LINUX
x11SetDisplayWindow(wmi.info.x11.display, wmi.info.x11.window);
#elif BX_PLATFORM_OSX
osxSetNSWindow(wmi.info.cocoa.window);
#elif BX_PLATFORM_WINDOWS
winSetHwnd(wmi.info.win.window);
#endif // BX_PLATFORM_
return true;
}
} // namespace bgfx
#endif // _SDL_H
#endif // __BGFXPLATFORM_H__