2012-07-13 2 views
0

내 3D 장면을 실행할 때 첫 번째 프레임 만 렌더링 한 다음 검은 색 화면 사이를 뒤집어 많은 깜박임을 유발합니다. 나는 올바르게 설정되지 않은 스왑 체인이라고 생각하지만 실제로는 알지 못합니다.첫 번째 프레임 만 보여주는 DX11 스왑 체인. 그것과 검은 색 이미지 사이를 뒤집습니다

다음은이 코드를 설정하는 코드입니다. Microsoft 예제에서 복사 한 것입니다.

DXGI_SWAP_CHAIN_DESC1 sd = {0}; 
sd.Width = 0;       
sd.Height = 0; 
sd.Format = DXGI_FORMAT_R8G8B8A8_UNORM; 
sd.Stereo = false; 
sd.SampleDesc.Count = 1;     
sd.SampleDesc.Quality = 0; 
sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; 
sd.BufferCount = 2;      
sd.Scaling = DXGI_SCALING_NONE; 
sd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; 
sd.Flags = 0; 

CoreWindow^ window = reinterpret_cast<CoreWindow^>(mSystem->GetIWindow()); 
hr = pIDXGIFactory->CreateSwapChainForCoreWindow(mD3DDevice, reinterpret_cast<IUnknown*>(window), &sd, NULL, &mSwapChain); 
EA_ASSERT(SUCCEEDED(hr)); 

그리고 본 코드 :

DXGI_PRESENT_PARAMETERS presentParameters = {0}; 
HRESULT hr = mSwapChain->Present1(0, 0, &presentParameters); 

꽤 straighforward 나에게 보인다, 그래서 작동하지 않는 이유는 정말하지 않습니다.

장면이 항상 실행 중입니다. 업데이트 기능은 매 프레임마다 실행됩니다.

또한 PIX에서 렌더링을 검사하면 모든 것이 정상입니다. 렌더링이되기를 기대합니다. 단지 화면에 나타나지 않습니다.

아이디어가 있으십니까? 감사!

답변

4

밝혀졌습니다. 모든 장치 컨텍스트에서 OMSetRenderTargets를 호출하지 않았습니다. 이제 작동합니다.