dx11 oit: resize to null width and height when rendering to texture
Regression introduced by d2e8c9465b
Issue #974
This commit is contained in:
parent
97bd3fc082
commit
541544292a
|
@ -96,14 +96,14 @@ struct DX11OITRenderer : public DX11Renderer
|
|||
return success;
|
||||
}
|
||||
|
||||
void resize(int w, int h) override
|
||||
void resize(int w, int h) override
|
||||
{
|
||||
if (w == (int)width && h == (int)height && opaqueTex != nullptr)
|
||||
return;
|
||||
DX11Renderer::resize(w, h);
|
||||
buffers.resize(w, h);
|
||||
if (w == (int)width && h == (int)height && opaqueTex != nullptr)
|
||||
return;
|
||||
DX11Renderer::resize(w, h);
|
||||
buffers.resize(w, h);
|
||||
|
||||
createTexAndRenderTarget(opaqueTex, opaqueRenderTarget, width, height);
|
||||
createTexAndRenderTarget(opaqueTex, opaqueRenderTarget, width, height);
|
||||
multipassTex.reset();
|
||||
multipassRenderTarget.reset();
|
||||
multipassTextureView.reset();
|
||||
|
@ -115,7 +115,7 @@ struct DX11OITRenderer : public DX11Renderer
|
|||
device->CreateShaderResourceView(opaqueTex, &viewDesc, &opaqueTextureView.get());
|
||||
|
||||
// For depth pass. Use a 32-bit format for depth to avoid loss of precision
|
||||
createDepthTexAndView(depthStencilTex2, depthStencilView2, width, height, DXGI_FORMAT_R32G8X24_TYPELESS, D3D11_BIND_SHADER_RESOURCE);
|
||||
createDepthTexAndView(depthStencilTex2, depthStencilView2, width, height, DXGI_FORMAT_R32G8X24_TYPELESS, D3D11_BIND_SHADER_RESOURCE);
|
||||
stencilView.reset();
|
||||
viewDesc.Format = DXGI_FORMAT_X32_TYPELESS_G8X24_UINT;
|
||||
device->CreateShaderResourceView(depthStencilTex2, &viewDesc, &stencilView.get());
|
||||
|
@ -124,11 +124,11 @@ struct DX11OITRenderer : public DX11Renderer
|
|||
viewDesc.Format = DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS;
|
||||
device->CreateShaderResourceView(depthStencilTex2, &viewDesc, &depthView.get());
|
||||
|
||||
createDepthTexAndView(depthTex, depthTexView, width, height, DXGI_FORMAT_R32G8X24_TYPELESS);
|
||||
createDepthTexAndView(depthTex, depthTexView, width, height, DXGI_FORMAT_R32G8X24_TYPELESS);
|
||||
}
|
||||
|
||||
void setRTTSize(int width, int height) override {
|
||||
buffers.resize(width, height);
|
||||
buffers.resize(width, height);
|
||||
}
|
||||
|
||||
void Term() override
|
||||
|
@ -622,7 +622,10 @@ struct DX11OITRenderer : public DX11Renderer
|
|||
|
||||
bool Render() override
|
||||
{
|
||||
resize(pvrrc.framebufferWidth, pvrrc.framebufferHeight);
|
||||
bool is_rtt = pvrrc.isRTT;
|
||||
|
||||
if (!is_rtt)
|
||||
resize(pvrrc.framebufferWidth, pvrrc.framebufferHeight);
|
||||
if (pixelBufferSize != config::PixelBufferSize)
|
||||
{
|
||||
buffers.init(device, deviceContext);
|
||||
|
@ -636,8 +639,6 @@ struct DX11OITRenderer : public DX11Renderer
|
|||
deviceContext->OMSetRenderTargets(1, &fbRenderTarget.get(), nullptr);
|
||||
configVertexShader();
|
||||
|
||||
bool is_rtt = pvrrc.isRTT;
|
||||
|
||||
deviceContext->IASetInputLayout(mainInputLayout);
|
||||
|
||||
n2Helper.resetCache();
|
||||
|
|
Loading…
Reference in New Issue