1

そのような質問はたくさんありますが、私の場合、それらを調べても問題は解決しませんでした.

3 番目のPSSetShaderResourcesパラメータとして が必要ID3DShaderResourceView* const*です。

したがって、このようにすることはできません(左辺値エラーが発生しているため):

// std::unique_ptr<Texture> mTexture;
// ID3D11ShaderResourceView* Texture::getTexture() const {
//     return mTexture;
// }

deviceContext->PSSetShaderResources( 0U, 1U, &mTexture->getTexture() );

だからこそ、私はこのようにする方法を見つけました:

auto tex = mTexture->getTexture();
deviceContext->PSSetShaderResources( 0U, 1U, &tex );

しかし、私はラインを取り除きたいauto tex = ...です。getTexture() メソッドを変更して (または変更せずに) 最初のケースと同じように書く可能性はありますか?

4

1 に答える 1

0

さて、getTexture()メソッドを次のように変更して解決しました。

ID3D11ShaderResourceView* const* Texture::getTexture() const {
    return &mTexture.p; // this is a CComPtr<ID3DShaderResourceView> mTexture;
}
于 2013-07-07T09:35:14.583 に答える