mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-06 05:48:40 +00:00
render/d3d11: switch to flip_discard model
This commit is contained in:
@@ -517,14 +517,14 @@ r_window_equip(OS_Handle handle)
|
|||||||
{
|
{
|
||||||
swapchain_desc.Width = 0; // NOTE(rjf): use window width
|
swapchain_desc.Width = 0; // NOTE(rjf): use window width
|
||||||
swapchain_desc.Height = 0; // NOTE(rjf): use window height
|
swapchain_desc.Height = 0; // NOTE(rjf): use window height
|
||||||
swapchain_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
swapchain_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
|
||||||
swapchain_desc.Stereo = FALSE;
|
swapchain_desc.Stereo = FALSE;
|
||||||
swapchain_desc.SampleDesc.Count = 1;
|
swapchain_desc.SampleDesc.Count = 1;
|
||||||
swapchain_desc.SampleDesc.Quality = 0;
|
swapchain_desc.SampleDesc.Quality = 0;
|
||||||
swapchain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
swapchain_desc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
|
||||||
swapchain_desc.BufferCount = 2;
|
swapchain_desc.BufferCount = 2;
|
||||||
swapchain_desc.Scaling = DXGI_SCALING_STRETCH;
|
swapchain_desc.Scaling = DXGI_SCALING_STRETCH;
|
||||||
swapchain_desc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
|
swapchain_desc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
|
||||||
swapchain_desc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
|
swapchain_desc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
|
||||||
swapchain_desc.Flags = 0;
|
swapchain_desc.Flags = 0;
|
||||||
}
|
}
|
||||||
@@ -540,8 +540,11 @@ r_window_equip(OS_Handle handle)
|
|||||||
r_d3d11_state->dxgi_factory->lpVtbl->MakeWindowAssociation(r_d3d11_state->dxgi_factory, hwnd, DXGI_MWA_NO_ALT_ENTER);
|
r_d3d11_state->dxgi_factory->lpVtbl->MakeWindowAssociation(r_d3d11_state->dxgi_factory, hwnd, DXGI_MWA_NO_ALT_ENTER);
|
||||||
|
|
||||||
//- rjf: create framebuffer & view
|
//- rjf: create framebuffer & view
|
||||||
|
D3D11_RENDER_TARGET_VIEW_DESC framebuffer_rtv_desc = {0};
|
||||||
|
framebuffer_rtv_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
||||||
|
framebuffer_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
|
||||||
window->swapchain->lpVtbl->GetBuffer(window->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&window->framebuffer));
|
window->swapchain->lpVtbl->GetBuffer(window->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&window->framebuffer));
|
||||||
r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)window->framebuffer, 0, &window->framebuffer_rtv);
|
r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)window->framebuffer, &framebuffer_rtv_desc, &window->framebuffer_rtv);
|
||||||
|
|
||||||
result = r_d3d11_handle_from_window(window);
|
result = r_d3d11_handle_from_window(window);
|
||||||
}
|
}
|
||||||
@@ -886,7 +889,10 @@ r_window_begin_frame(OS_Handle window, R_Handle window_equip)
|
|||||||
wnd->framebuffer->lpVtbl->Release(wnd->framebuffer);
|
wnd->framebuffer->lpVtbl->Release(wnd->framebuffer);
|
||||||
wnd->swapchain->lpVtbl->ResizeBuffers(wnd->swapchain, 0, 0, 0, DXGI_FORMAT_UNKNOWN, 0);
|
wnd->swapchain->lpVtbl->ResizeBuffers(wnd->swapchain, 0, 0, 0, DXGI_FORMAT_UNKNOWN, 0);
|
||||||
wnd->swapchain->lpVtbl->GetBuffer(wnd->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&wnd->framebuffer));
|
wnd->swapchain->lpVtbl->GetBuffer(wnd->swapchain, 0, &IID_ID3D11Texture2D, (void **)(&wnd->framebuffer));
|
||||||
r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)wnd->framebuffer, 0, &wnd->framebuffer_rtv);
|
D3D11_RENDER_TARGET_VIEW_DESC framebuffer_rtv_desc = {0};
|
||||||
|
framebuffer_rtv_desc.Format = DXGI_FORMAT_B8G8R8A8_UNORM_SRGB;
|
||||||
|
framebuffer_rtv_desc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D;
|
||||||
|
r_d3d11_state->device->lpVtbl->CreateRenderTargetView(r_d3d11_state->device, (ID3D11Resource *)wnd->framebuffer, &framebuffer_rtv_desc, &wnd->framebuffer_rtv);
|
||||||
|
|
||||||
// rjf: create stage color targets
|
// rjf: create stage color targets
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user