0

SlimDXのD3D10とD3D11の間でテクスチャを共有するためのコードを実装しようと頭を悩ませています。

この方法は問題を引き起こしています:

    public void InitialiseTextureSharing()
    {
        // A DirectX10 Texture2D sharing the DirectX11 Texture2D
        sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
        textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle);  // This fails to compile! 

    }

コンパイラから次のエラーが発生します。

メソッド'SlimDX.Direct3D10.Device.OpenSharedResource(System.IntPtr)'の型引数は、使用法から推測できません。タイプ引数を明示的に指定してみてください。

(私にとって)奇妙なことは、このコードは、動作するはずの誰かから直接移植されているということです。元のコードは次のとおりです。

        // A DirectX10 Texture2D sharing the DirectX11 Texture2D
        SlimDX.DXGI.Resource sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
        SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle);

私の実装との違いは、SlimDXフォームで「sharedResource」オブジェクトと「textureD3D10」オブジェクトをインスタンス化していることです。

私は確かにコンパイルエラーを予期していませんでした。私がこれに基づいているコードは次のとおりです:http ://www.aaronblog.us/?p = 36...これはすべてDX11を使用してSlimDXでテキストを描画することに関するものです。

私はこれに完全に困惑しています。私は同様の問題の解決策を含む投稿を見てきましたが、これを私のものに適応させることは現在私を超えています。

すべてのポインタは非常に高く評価されます。

アップデート:

SlimDX APIドキュメントからのOpenSharedResourceの署名:

http://slimdx.org/docs/html/M_SlimDX_Direct3D11_Device_OpenSharedResource__1.htm

...およびリソース: http ://slimdx.org/docs/html/T_SlimDX_DXGI_Resource.htm

4

1 に答える 1

1

ドキュメントに基づくと、エラーが発生する理由は、コードが間違っているためです。OpenSharedResource は、返す型を指定する一般的な引数を取るため、

SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource<SlimDX.Direct3D10.Texture2D>(sharedResource.SharedHandle);

HTML では、<要素>に使用されます。このため、コード スニペットの一般的な引数が、だれも気付かないうちにブログで除外されることは珍しくありません。その場合は、自分で再挿入する必要があります。

于 2012-09-02T21:37:55.417 に答える