これは安定版リリースコードではありません。テストするために開発用PCのHWNDからC++アプリケーションで作成されたウィンドウ付きD3D9デバイスを取得する必要があります。オプションのロード。Direct3D9デバイスを作成するための最小限のコード
私は古いD3D8クラスからそれを一緒にハックしようとしていましたが、私はD3DERR_INVALIDCALLを取得しています。
基本的に私は今、これを持っている:
HWND mHWnd = ...;
LPDIRECT3D9 mpD3D = Direct3DCreate9(D3D_SDK_VERSION);
D3DPRESENT_PARAMETERS md3dpp;
ZeroMemory(&md3dpp, sizeof(D3DPRESENT_PARAMETERS));
md3dpp.Windowed = true;
md3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
md3dpp.BackBufferCount = 1;
md3dpp.EnableAutoDepthStencil = 0;
md3dpp.hDeviceWindow = mHWnd;
md3dpp.BackBufferWidth = 0;
md3dpp.BackBufferHeight = 0;
md3dpp.FullScreen_RefreshRateInHz = 0;
md3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
md3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
md3dpp.MultiSampleType = D3DMULTISAMPLE_NONE;
md3dpp.MultiSampleQuality = 0;
LPDIRECT3DDEVICE9 mpD3DDevice=0;
HRESULT hr = mpD3D->CreateDevice(D3DADAPTER_DEFAULT,D3DDEVTYPE_HAL,mHWnd,0,&md3dpp,&mpD3DDevice);
私はいくつかのD3DPRESENT_PARAMETERS
オプションを把握非難するかもしれない - 私は古いプレーンな装置であり、Z-バッファやステンシルやAAのバックバッファを気にしません良い。
いくつかの互換性のないフラグをコピーして貼り付けましたか?
いやはや!これは、頭脳のないコード貼り付けから来ています。今は期待どおりに動作します。 –
@ジョン:Hehehe、逃すのは簡単:) – Goz