summaryrefslogtreecommitdiffstats
path: root/Imgui/src/ImGuiImplDiligent.cpp
diff options
context:
space:
mode:
authorAssiduous <61806567+TheMostDiligent@users.noreply.github.com>2020-06-11 15:45:20 +0000
committerGitHub <noreply@github.com>2020-06-11 15:45:20 +0000
commitf9226ee23e830e80186f087910a364129ebb1e80 (patch)
treea92e1c89b273001526bcb23ededfc19bb27ea0f8 /Imgui/src/ImGuiImplDiligent.cpp
parentMerge pull request #11 from dolphineye/user/dolphineye/imgui-path-option (diff)
parentFixed ImGUI framebuffer scale (diff)
downloadDiligentTools-f9226ee23e830e80186f087910a364129ebb1e80.tar.gz
DiligentTools-f9226ee23e830e80186f087910a364129ebb1e80.zip
Merge pull request #10 from dolphineye/user/dolphineye/imgui-framebuffer-scale
Fixing ImGUI framebuffer scale
Diffstat (limited to 'Imgui/src/ImGuiImplDiligent.cpp')
-rw-r--r--Imgui/src/ImGuiImplDiligent.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/Imgui/src/ImGuiImplDiligent.cpp b/Imgui/src/ImGuiImplDiligent.cpp
index 1db7de5..3968b1d 100644
--- a/Imgui/src/ImGuiImplDiligent.cpp
+++ b/Imgui/src/ImGuiImplDiligent.cpp
@@ -533,12 +533,15 @@ void ImGuiImplDiligent_Internal::RenderDrawData(IDeviceContext* pCtx, ImDrawData
pCtx->SetBlendFactors(blend_factor);
Viewport vp;
- vp.Width = static_cast<float>(m_RenderSurfaceWidth);
- vp.Height = static_cast<float>(m_RenderSurfaceHeight);
+ vp.Width = static_cast<float>(m_RenderSurfaceWidth) * pDrawData->FramebufferScale.x;
+ vp.Height = static_cast<float>(m_RenderSurfaceHeight) * pDrawData->FramebufferScale.y;
vp.MinDepth = 0.0f;
vp.MaxDepth = 1.0f;
vp.TopLeftX = vp.TopLeftY = 0;
- pCtx->SetViewports(1, &vp, m_RenderSurfaceWidth, m_RenderSurfaceHeight);
+ pCtx->SetViewports(1,
+ &vp,
+ static_cast<Uint32>(m_RenderSurfaceWidth * pDrawData->FramebufferScale.x),
+ static_cast<Uint32>(m_RenderSurfaceHeight * pDrawData->FramebufferScale.y));
};
SetupRenderState();
@@ -568,10 +571,10 @@ void ImGuiImplDiligent_Internal::RenderDrawData(IDeviceContext* pCtx, ImDrawData
// Apply scissor/clipping rectangle
float4 ClipRect //
{
- pcmd->ClipRect.x - pDrawData->DisplayPos.x,
- pcmd->ClipRect.y - pDrawData->DisplayPos.y,
- pcmd->ClipRect.z - pDrawData->DisplayPos.x,
- pcmd->ClipRect.w - pDrawData->DisplayPos.y //
+ (pcmd->ClipRect.x - pDrawData->DisplayPos.x) * pDrawData->FramebufferScale.x,
+ (pcmd->ClipRect.y - pDrawData->DisplayPos.y) * pDrawData->FramebufferScale.y,
+ (pcmd->ClipRect.z - pDrawData->DisplayPos.x) * pDrawData->FramebufferScale.x,
+ (pcmd->ClipRect.w - pDrawData->DisplayPos.y) * pDrawData->FramebufferScale.y //
};
// Apply pretransform
ClipRect = TransformClipRect(pDrawData->DisplaySize, ClipRect);
@@ -583,7 +586,10 @@ void ImGuiImplDiligent_Internal::RenderDrawData(IDeviceContext* pCtx, ImDrawData
static_cast<Int32>(ClipRect.z),
static_cast<Int32>(ClipRect.w) //
};
- pCtx->SetScissorRects(1, &r, m_RenderSurfaceWidth, m_RenderSurfaceHeight);
+ pCtx->SetScissorRects(1,
+ &r,
+ static_cast<Uint32>(m_RenderSurfaceWidth * pDrawData->FramebufferScale.x),
+ static_cast<Uint32>(m_RenderSurfaceHeight * pDrawData->FramebufferScale.y));
// Bind texture, Draw
auto* texture_srv = reinterpret_cast<ITextureView*>(pcmd->TextureId);