HRESULT hr = GetD3DDevice()->Clear( 0, NULL, D3DCLEAR_STENCIL | ..., ulColor, fDepth, usStencil );
이 실패(INVALID_CALL)가 나와서 약 2시간 동안 캐삽질....
여지껏 한번도 신경써본적이 없었는데, 갑자기 이런데서 문제가 생기니 꽤 시간이 오래걸렸군요.
원인은 DepthStencil의 Format 때문...
directX , Clear buffer problem
Clearing Depthstencil Error
m_d3dPP.hDeviceWindow = GetHWnd();
m_d3dPP.Windowed = !m_bFullScreen;
m_d3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD;
m_d3dPP.BackBufferCount = 1;
m_d3dPP.BackBufferWidth = GetWidth();
m_d3dPP.BackBufferHeight = GetHeight();
m_d3dPP.MultiSampleType = D3DMULTISAMPLE_NONE;
m_d3dPP.MultiSampleQuality = 0;
// Request depth and stencil buffers. The parameters are not independent
// for DirectX. TO DO. For now, just grab a 24-bit depth buffer and an
// 8-bit stencil buffer.
m_d3dPP.EnableAutoDepthStencil = TRUE;
m_d3dPP.AutoDepthStencilFormat = D3DFMT_D24S8;
로 Format을 Stencil을 넣어줘야 하는 것.
그리고, 랜더타겟(Texture)에 랜더링 할 때에도, 랜더타겟의 DepthStencil도 포멧을 잘 지정해 줘야 한다는 것.. -_-;;
// create render target surface
HRESULT hr = device->CreateDepthStencilSurface( GetWidth(), GetHeight(),
D3DFMT_D24S8, // Format
D3DMULTISAMPLE_NONE, // MultiSampleType
0, // MultiSampleQuality
TRUE, // Discard
&m_pDepthStencilSurface,
NULL);
처음 만들 때 신경써서 만들걸... ㅡㅡ;;
이 실패(INVALID_CALL)가 나와서 약 2시간 동안 캐삽질....
여지껏 한번도 신경써본적이 없었는데, 갑자기 이런데서 문제가 생기니 꽤 시간이 오래걸렸군요.
원인은 DepthStencil의 Format 때문...
directX , Clear buffer problem
Clearing Depthstencil Error
m_d3dPP.hDeviceWindow = GetHWnd();
m_d3dPP.Windowed = !m_bFullScreen;
m_d3dPP.SwapEffect = D3DSWAPEFFECT_DISCARD;
m_d3dPP.BackBufferCount = 1;
m_d3dPP.BackBufferWidth = GetWidth();
m_d3dPP.BackBufferHeight = GetHeight();
m_d3dPP.MultiSampleType = D3DMULTISAMPLE_NONE;
m_d3dPP.MultiSampleQuality = 0;
// Request depth and stencil buffers. The parameters are not independent
// for DirectX. TO DO. For now, just grab a 24-bit depth buffer and an
// 8-bit stencil buffer.
m_d3dPP.EnableAutoDepthStencil = TRUE;
m_d3dPP.AutoDepthStencilFormat = D3DFMT_D24S8;
로 Format을 Stencil을 넣어줘야 하는 것.
그리고, 랜더타겟(Texture)에 랜더링 할 때에도, 랜더타겟의 DepthStencil도 포멧을 잘 지정해 줘야 한다는 것.. -_-;;
// create render target surface
HRESULT hr = device->CreateDepthStencilSurface( GetWidth(), GetHeight(),
D3DFMT_D24S8, // Format
D3DMULTISAMPLE_NONE, // MultiSampleType
0, // MultiSampleQuality
TRUE, // Discard
&m_pDepthStencilSurface,
NULL);
처음 만들 때 신경써서 만들걸... ㅡㅡ;;





덧글