思路是利用SDL_Window* SDL_CreateWindowFrom(const void* data)函数从原生窗口创建SDL窗口。
参数data是一个指向依赖于驱动程序的窗口创建数据的指针,在Windows系统下就是将窗口句柄强制类型转换成void *传入。
下面是创建SDL窗口的帮助代码,创建SDL窗口后也附带创建绘图用的render
bool CreateSDLWindow(SDL_Window **window, SDL_Renderer **render, const void *data)
{
if (*window == nullptr)
{
*window = SDL_CreateWindowFrom(data);
if (*window == nullptr)
{
wxLogMessage("Could not create window: %s\n", SDL_GetError());
return false;
}
}
else
{
//SDL_SetWindowSize(m_window, w, h);
}
if (*render == nullptr)
{
*render = SDL_CreateRenderer(*window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
if (*render == nullptr)
{
SDL_DestroyWindow(*window);
*window = nullptr;
wxLogMessage("Could not create render: %s\n&