我是DirectX的初学者,所以解决方案对您来说似乎很明显。我跟着this tutorial教我如何设置一个没有启动代码的简单directx项目,到目前为止教程工作正常。现在问题是我在Render()函数中清除了后备缓冲区,它不会将背景设置为任何颜色而是黑色。
这是我的Render()函数:
//set render target
devcon->OMSetRenderTargets(1, rendertarget.GetAddressOf(), nullptr);
//clear backbuffer to blue
float color[4] = { 0.0f, 0.2f, 0.4f, 1.0f };
devcon->ClearRenderTargetView(rendertarget.Get(), color);
//TODO: Render code here
//swap buffers
swapchain->Present(1, 0);
和我在初始化中的设置:
//get a ptr to the backBuffer
ComPtr<ID3D11Texture2D> backbuffer;
swapchain->GetBuffer(0, __uuidof(ID3D11Texture2D), &backbuffer);
//create a render target pointing to the backBuffer
dev->CreateRenderTargetView(backbuffer.Get(), nullptr, &rendertarget);
答案 0 :(得分:0)
将后台缓冲区清除为蓝色的代码是正确的。
其他地方必定存在类型或故障。