1

有很多这样的问题,但在我的情况下,通过它们并没有解决问题。

作为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 回答