Fix for FullscreenTrianglePass viewport and scissor state (author: moudgils).

This commit is contained in:
Doug McDiarmid
2021-06-22 23:48:14 -07:00
parent 623a77c21f
commit d98ad8eda8
@@ -24,6 +24,7 @@
#include <AzCore/Asset/AssetCommon.h>
#include <AzCore/Asset/AssetManagerBus.h>
#include <AzCore/std/algorithm.h>
namespace AZ
{
@@ -181,19 +182,13 @@ namespace AZ
RHI::Size targetImageSize = outputAttachment->m_descriptor.m_image.m_size;
m_viewportState = params.m_viewportState;
if (m_viewportState.IsNull())
{
// compute viewport from target attachment
m_viewportState = RHI::Viewport(0, static_cast<float>(targetImageSize.m_width), 0, static_cast<float>(targetImageSize.m_height));
}
m_viewportState.m_minX = m_viewportState.m_minY = 0;
m_viewportState.m_maxX = AZStd::min(static_cast<uint32_t>(params.m_viewportState.m_maxX), targetImageSize.m_width);
m_viewportState.m_maxY = AZStd::min(static_cast<uint32_t>(params.m_viewportState.m_maxY), targetImageSize.m_height);
m_scissorState = params.m_scissorState;
if (m_scissorState.IsNull())
{
// compute scissor from target attachment
m_scissorState = RHI::Scissor(0, 0, targetImageSize.m_width, targetImageSize.m_height);
}
m_scissorState.m_minX = m_scissorState.m_minY = 0;
m_scissorState.m_maxX = AZStd::min(static_cast<uint32_t>(params.m_scissorState.m_maxX), targetImageSize.m_width);
m_scissorState.m_maxY = AZStd::min(static_cast<uint32_t>(params.m_scissorState.m_maxY), targetImageSize.m_height);
RenderPass::FrameBeginInternal(params);
}