源代码:https://github.com/AinoMegumi/Direct3D12
我正在尝试插入Direct3D12窗口。
在函数Direct3D12::OnFrameRender (上面的监视源代码,Direct3D12.cpp第251行),
void Direct3D12::OnFrameRender() {
this->CommandList->RSSetViewports(0, &this->ViewPort);
SetResourceBarrier(D3D12_RESOURCE_STATE_PRESENT, D3D12_RESOURCE_STATE_RENDER_TARGET);
float ClearColor[4] = { static_cast<float>(0xff) / 255.0f, static_cast<float>(0xc0) / 255.0f, static_cast<float>(0xcb) / 255.0f, 1.0f };
this->CommandList->ClearRenderTargetView(this->CPUDescriptorHandle, ClearColor, 0, nullptr); // ここで落ちてる
SetResourceBarrier(D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT);
this->Present(0);
}现在,我试着打电话给ClearRenderTargetView。但是,KernelBase.dll引发了未处理的异常。
我调查KernelBase.dll并检测出谁会抛出异常。
看这个asm转储https://pastebin.com/YBJLMBxE
情况是
错误信息是
0x00007FF8E27F3C58 (KernelBase.dll)で発生しました(Direct3D.exe内):0x0000087D (パラメーター: 0x0000000000000,0x00000028379BCE20,0x0000021B7FD80FB0)。
使用ClearRenderTargetView和init窗口的正确方法是什么?
发布于 2017-10-17 13:12:46
正确的RenderTargetView调用场景如下
CD3DX12_CPU_DESCRIPTOR_HANDLE变量用于每次OMSetRenderTargetsClearRenderTargetViewhttps://stackoverflow.com/questions/46491169
复制相似问题