gpt4 book ai didi

c++ - 我有非常量 ID3D11ShaderResourceView*,并且 DirectX 函数需要 const 一个

转载 作者:行者123 更新时间:2023-11-30 04:07:54 45 4
gpt4 key购买 nike

我有一些问题:我有非常量 ID3D11ShaderResourceView*,而 DirectX 函数需要一个非常量

我的代码:

class Texture{
ID3D11ShaderResourceView * textureRes;
...
};

class Model{
void render(...){
...
ID3D11ShaderResourceView * texture
= baseMaterial->getDiffuseTexture()->textureRes;
context->PSSetShaderResources(0, 1, texture);
}
...
};

为此,我得到错误:

error C2664: 'ID3D11DeviceContext::PSSetShaderResources' 
: cannot convert parameter 3 from 'ID3D11ShaderResourceView *'
to 'ID3D11ShaderResourceView *const *'

我的问题是:如何将非常量类型的 baseMaterial->getDiffuseTexture()->textureRes 传递给 context->PSSetShaderResources

某种类型转换?

最佳答案

它需要'ID3D11ShaderResourceView *const *',两个星号表示指向指针的指针。您可以通过:

  • 您的地址ID3D11ShaderResourceView*

    context->PSSetShaderResources(0, 1, <b>&texture</b>);

  • ID3D11ShaderResourceView* 的数组如果你需要在一次调用中绑定(bind)多个 SRV

    auto arrayOfTextures = { srv1, srv2, srv3 };
    context->PSSetShaderResources(0, <b>numberOfTextures</b>, <b>arrayOfTextures</b>);

参见 ID3D11DeviceContext::PSSetShaderResources method 的文档.

关于c++ - 我有非常量 ID3D11ShaderResourceView*,并且 DirectX 函数需要 const 一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22151190/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com