游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2279|回复: 0

DX11中怎么设置窗口大小改变时的函数?

[复制链接]

21

主题

39

帖子

41

积分

注册会员

Rank: 2

积分
41
发表于 2012-4-2 19:15:00 | 显示全部楼层 |阅读模式

  1. HRESULT CRenderEgine::createRTV()
  2. {
  3.         HRESULT hr;
  4.         ID3D11Texture2D* pBackBuffer = NULL;
  5.         hr =pSwapChain->GetBuffer( 0, __uuidof( ID3D11Texture2D ), ( LPVOID* )&pBackBuffer );
  6.         if( FAILED( hr ) )
  7.                 return hr;

  8.         hr = pDevice->CreateRenderTargetView( pBackBuffer, NULL, &pRTV );
  9.         pBackBuffer->Release();
  10.         if( FAILED( hr ) )
  11.                 return hr;

  12. }



  13. HRESULT CRenderEgine::createDSV()

  14. {

  15.         HRESULT hr;
  16.         ID3D11Texture2D* pBackBuffer = NULL;

  17.         D3D11_TEXTURE2D_DESC descDepth;
  18.         ZeroMemory( &descDepth, sizeof(descDepth) );
  19.         descDepth.Width = width;
  20.         descDepth.Height = height;
  21.         descDepth.MipLevels = 1;
  22.         descDepth.ArraySize = 1;
  23.         descDepth.Format = DXGI_FORMAT_D24_UNORM_S8_UINT;
  24.         descDepth.SampleDesc.Count = 1;
  25.         descDepth.SampleDesc.Quality = 0;
  26.         descDepth.Usage = D3D11_USAGE_DEFAULT;
  27.         descDepth.BindFlags = D3D11_BIND_DEPTH_STENCIL;
  28.         descDepth.CPUAccessFlags = 0;
  29.         descDepth.MiscFlags = 0;
  30.         hr = pDevice->CreateTexture2D( &descDepth, NULL, &pBackBuffer );

  31.         D3D11_DEPTH_STENCIL_VIEW_DESC descDSV;
  32.         ZeroMemory( &descDSV, sizeof(descDSV) );
  33.         descDSV.Format = descDepth.Format;
  34.         descDSV.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D;
  35.         descDSV.Texture2D.MipSlice = 0;
  36.         hr = pDevice->CreateDepthStencilView( pBackBuffer, &descDSV, &pDSV );
  37.         if( FAILED(hr) )
  38.                 return hr;

  39.        
  40. }







  41. VOID CRenderEgine::reSize(UINT wid,UINT hi)
  42. {



  43.          ZeroMemory( &sd, sizeof( DXGI_SWAP_CHAIN_DESC ) );
  44.          pSwapChain->GetDesc(&sd);

  45.          width=sd.BufferDesc.Width=wid;
  46.          height=sd.BufferDesc.Height=hi;

  47.          pSwapChain->ResizeBuffers(sd.BufferCount,wid,hi,sd.BufferDesc.Format,sd.Flags);
  48.          pSwapChain->ResizeTarget(&sd.BufferDesc);  

  49.          createRTV();//创建targetView
  50.          createDSV();//创建depthStencilView
  51.          pImmediateContext->OMSetRenderTargets( 1, &pRTV, pDSV );
  52.   //   setViewport(wid,hi);
  53.          
  54. }
复制代码


dx11里写了个窗口大小改变时的响应函数,这些写有什么问题吗,怎么一直都通不过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-28 17:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表