djc*_*uch 0 windows directx directx-11 windows-8
当我运行我的3D场景时,它只渲染第一帧然后在它和黑屏之间翻转,导致大量闪烁.我认为这是我的交换链没有正确设置,但我真的不知道.
这是我的代码来设置它.它几乎是从微软的例子中复制而来的.
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 ));
Run Code Online (Sandbox Code Playgroud)
而目前的代码:
DXGI_PRESENT_PARAMETERS presentParameters = {0};
HRESULT hr = mSwapChain->Present1(0, 0, &presentParameters);
Run Code Online (Sandbox Code Playgroud)
在我看来相当直接,所以我不明白为什么它不起作用.
场景一直在运行.更新功能每帧都运行一次.
另外,如果我在PIX中检查渲染,一切都很好.我得到了我期望渲染的东西.它只是没有出现在屏幕上.
有任何想法吗?谢谢!
归档时间: |
|
查看次数: |
771 次 |
最近记录: |