有很多这样的问题,但通过它们并没有解决我的问题。
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()方法(或不更改它)以便像第一种情况一样进行编写?
答案 0 :(得分:0)
好的,我已将getTexture()
方法改为:
ID3D11ShaderResourceView* const* Texture::getTexture() const {
return &mTexture.p; // this is a CComPtr<ID3DShaderResourceView> mTexture;
}