Direct3D:从纹理中创建渲染目标视图
Direct3D: Creating a render target view from a texture
我想从纹理中创建一个渲染目标视图,用于多目标渲染。我目前能够为后台缓冲区创建一个渲染目标视图——所有这些都工作得很好。此外,我能够创建纹理。然而,当我试图从中构建视图时,我得到了一个错误。
首先,下面是代码:
D3D11_TEXTURE2D_DESC textureDesc;
ZeroMemory(&textureDesc, sizeof(textureDesc));
textureDesc.ArraySize = 1;
textureDesc.BindFlags = D3D11_BIND_RENDER_TARGET | D3D11_BIND_SHADER_RESOURCE;
textureDesc.CPUAccessFlags = 0;
textureDesc.Format = DXGI_FORMAT_R32_FLOAT;
textureDesc.Height = m_renderTargetSize.Height;
textureDesc.Width = m_renderTargetSize.Width;
textureDesc.MipLevels = 1;
textureDesc.MiscFlags = 0;
textureDesc.SampleDesc.Count = 1;
textureDesc.SampleDesc.Quality = 0;
textureDesc.Usage = D3D11_USAGE_DEFAULT;
ComPtr<ID3D11Texture2D> texture;
DX::ThrowIfFailed(
m_d3dDevice->CreateTexture2D(
&textureDesc,
nullptr,
&texture
)
);
D3D11_RENDER_TARGET_VIEW_DESC renderTargetViewDescription;
ZeroMemory(&renderTargetViewDescription, sizeof(renderTargetViewDescription));
renderTargetViewDescription.Format = textureDesc.Format;
DX::ThrowIfFailed(
m_d3dDevice->CreateRenderTargetView(
texture,
&renderTargetViewDescription,
&m_renderTargetView[1]
)
);
我在调用CreateRenderTargetView
的行上从编译器获得以下错误:
错误:没有合适的转换函数"Microsoft::WRL::ComPtr"转换为"ID3D11Resource *"存在。
根据MSDN, ID3D11Texture2D继承自ID3D11Resource。我必须先上推吗?
我在DirectX 11中工作,并与vc110编译。
似乎WRL的ComPtr不支持隐式转换到T*(不像ATL的CComPtr),所以你需要使用Get方法:
DX::ThrowIfFailed(
m_d3dDevice->CreateRenderTargetView(
texture.Get(),
&renderTargetViewDescription,
&m_renderTargetView[1]
)
);
相关文章:
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 视图中的参数推导失败:take_while
- C++A*算法并不总是在路径中具有目标节点
- 基于树莓pi的tensorflow lite量化ssd目标检测
- 为测试目标创建具有不同源文件夹的文件
- 如何维护资源管理器项目视图中当前可见的项目列表
- 使用源向量作为目标
- 在另一个类视图中添加最多2个图表的正确方法是什么
- 是否可以用C++/WinRT将windows 10.0.14393作为目标
- 在 CMake 中为每个目标设置编译器/链接器标志
- qmake:检测目标位宽(32 位或 64 位)
- OpenVR:向视图方向移动
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 将所选值(通过视图)从 boost::multi_array 复制到另一个数组 (C++)
- 如何在 CMake 中对目标依赖项进行分组?
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 如何在不使用滚动条的情况下使视图更改
- 如何为包含头文件的目标编写生成文件?
- Direct3D:从纹理中创建渲染目标视图