|
- HRESULT CRenderEgine::createRTV()
- {
- HRESULT hr;
- ID3D11Texture2D* pBackBuffer = NULL;
- hr =pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );
- if( FAILED( hr ) )
- return hr;
- hr = pDevice->CreateRenderTargetView( pBackBuffer, NULL, &pRTV );
- pBackBuffer->Release();
- if( FAILED( hr ) )
- return hr;
- }
- HRESULT CRenderEgine::createDSV()
- {
- HRESULT hr;
- ID3D11Texture2D* pBackBuffer = NULL;
- D3D11_TEXTURE2D_DESC descDepth;
- ZeroMemory( &descDepth, sizeof(descDepth) );
- descDepth.Width = width;
- descDepth.Height = height;
- descDepth.MipLevels = 1;
- descDepth.ArraySize = 1;
- descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
- descDepth.SampleDesc.Count = 1;
- descDepth.SampleDesc.Quality = 0;
- descDepth.Usage = D3D11_USAGE_DEFAULT;
- descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;
- descDepth.CPUAccessFlags = 0;
- descDepth.MiscFlags = 0;
- hr = pDevice->CreateTexture2D( &descDepth, NULL, &pBackBuffer );
- D3D11_DEPTH_STENCIL_VIEW_DESC descDSV;
- ZeroMemory( &descDSV, sizeof(descDSV) );
- descDSV.Format = descDepth.Format;
- descDSV.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D;
- descDSV.Texture2D.MipSlice = 0;
- hr = pDevice->CreateDepthStencilView( pBackBuffer, &descDSV, &pDSV );
- if( FAILED(hr) )
- return hr;
-
- }
- VOID CRenderEgine::reSize(UINT wid,UINT hi)
- {
- ZeroMemory( &sd, sizeof( DXGI_SWAP_CHAIN_DESC ) );
- pSwapChain->GetDesc(&sd);
- width=sd.BufferDesc.Width=wid;
- height=sd.BufferDesc.Height=hi;
- pSwapChain->ResizeBuffers(sd.BufferCount,wid,hi,sd.BufferDesc.Format,sd.Flags);
- pSwapChain->ResizeTarget(&sd.BufferDesc);
- createRTV();//创建targetView
- createDSV();//创建depthStencilView
- pImmediateContext->OMSetRenderTargets( 1, &pRTV, pDSV );
- // setViewport(wid,hi);
-
- }
复制代码
dx11里写了个窗口大小改变时的响应函数,这些写有什么问题吗,怎么一直都通不过 |
|