DeployDefaultEnvironment の代わりに DeployEnvironment を使用できます。DeployEnvironment には現在のウィンドウへのハンドルが必要です。例の 1 つは、ウィンドウで GLUT を使用してこれを実現する方法を示しています。次のコードを使用して、SDL で現在のウィンドウ ハンドルを取得できます。
SDL_SysWMinfo SysInfo; //Will hold our Window information
SDL_VERSION(&SysInfo.version); //Set SDL version
if(SDL_GetWMInfo(&SysInfo) <= 0) {
printf("%s : %d\n", SDL_GetError(), SysInfo.window);
return; //or throw exception or whatever
}
#ifdef __WIN32__
HWND WindowHandle = SysInfo.window; //Win32 window handle
#else
Window WindowHandle = SysInfo.window; //X11 window handle
#endif
最後に、DeployEnvironment の定義は次のようになります。
DeployEnvironment (const std::vector< std::string > * CommandLine,
const std::string & LogFileName,
const std::string & RootDir,
const std::string & CommonMediaDir,
const std::string & ConfigFile,
const bool OpenViewport,
const bool CreateRenderer,
const bool ContextTakeover,
void * ExternalWndHandle);
コマンド ライン パラメーターは DeployDefaultEnvironment の場合と同じです。次の 4 つのパラメーターはパスですが、定数 'DEFAULT_ENGINE_LOG_FILE'、'DEFAULT_ENGINE_ROOT_DIR'、'DEFAULT_ENGINE_ROOT_PACK'、'DEFAULT_ENGINE_INI_FILE' を使用できます。CreateRenderer と同様に、OpenViewport は false である必要があり、ContextTakeover は true である必要があります。最後に、上記のコードで宣言された変数に格納されているウィンドウ ハンドルに ExternalWndHandle を設定します。この例は Windows 上の GLUT の例であるため、これが他の OS で機能するかどうかはわかりません。