简体   繁体   English

DX11 CreateDepthStencil 视图 - nullptr

[英]DX11 CreateDepthStencil View - nullptr

I am currently working on a school project using DirectX11 and have started making the back buffer here.我目前正在使用 DirectX11 进行学校项目,并已开始在此处制作后台缓冲区。 I believe I have followed everything correctly but, when creating my DepthStencilView , I am getting Null as return;我相信我已经正确地遵循了一切,但是在创建我的DepthStencilView ,我得到了Null作为回报; I'm probably doing somthing stupid but I cant seem to work it out.我可能正在做一些愚蠢的事情,但我似乎无法解决。

Here are all the relevant code snippets.以下是所有相关的代码片段。

//Depth and Stencil Buffer

D3D11_TEXTURE2D_DESC depthStencilDesc;

depthStencilDesc.Width = _WindowWidth;
depthStencilDesc.Height = _WindowHeight;
depthStencilDesc.MipLevels = 1;
depthStencilDesc.ArraySize = 1;
depthStencilDesc.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
depthStencilDesc.SampleDesc.Count = 1;
depthStencilDesc.SampleDesc.Quality = 0;
depthStencilDesc.Usage = D3D11_USAGE_DEFAULT;
depthStencilDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL;
depthStencilDesc.CPUAccessFlags = 0;
depthStencilDesc.MiscFlags = 0;

_pd3dDevice->CreateTexture2D(&depthStencilDesc, nullptr, &_depthStencilBuffer);
_pd3dDevice->CreateDepthStencilView(_depthStencilBuffer, nullptr, &_depthStencilView);

_pImmediateContext->OMSetRenderTargets(1, &_pRenderTargetView, _depthStencilView);

In my cleanup function:在我的清理功能中:

if (_depthStencilView)_depthStencilView->Release();
if (_depthStencilBuffer) _depthStencilBuffer->Release();

In my draw function:在我的绘图功能中:

//Clear depth/stencil
_pImmediateContext->ClearDepthStencilView(_depthStencilView, D3D11_CLEAR_STENCIL, 1.0f, 0);

我想出了如何安装它,只是顺序移动它周围的东西工作得很好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM