0

別のウィンドウ用の directx9 デバイスがあります。ウィンドウの 1 つに、レンダリングされたイメージがあります。私がやりたいことは、実際にデバイス 'A' の画像を取得し、デバイス 'B' のテクスチャにテクスチャを配置することです。これは可能ですか?

以下のコードが機能しない理由を理解しようとしていましたが、それは StretchRect が使用しようとしている指定されたデバイスでのみ機能するためです。

以下のコードは機能しません。

D3DXCreateTexture ( B , 32 , 32 , 1 , D3DUSAGE_RENDERTARGET , D3DFMT_A8R8G8B8 , D3DPOOL_DEFAULT , &Texture );

IDirect3DSurface9 *backBufferSucrface;
Texture ->GetSurfaceLevel ( 0 , &backBufferSucrface );

IDirect3DSurface9* backBufferCurrect;
A->GetBackBuffer ( 0 , 0 , D3DBACKBUFFER_TYPE_LEFT , &backBufferCurrect );

B->StretchRect ( backBufferCurrect , 0 , backBufferSucrface , 0 , D3DTEXF_LINEAR );

backBufferCurrect->Release();

これができるようになりたいのですが、これが不可能な場合、1 つのデバイスを使用して複数のウィンドウにレンダリングする方法はありますか?

4

1 に答える 1

0

vista d3d9 以降では、デバイス間のリソース共有がサポートされています。 http://msdn.microsoft.com/en-us/library/windows/desktop/bb219800(v=vs.85).aspx#Sharing_Resources

于 2013-01-01T20:02:25.593 に答える