summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Busse <alexander.busse@kdab.com>2024-03-19 16:12:04 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2024-03-20 08:10:50 +0000
commita056f27dc9ad83f9c55295b26f90a37060b26d58 (patch)
tree8e6583a98d0f794721f0f99c5031ee008c97e09c
parentce54c2c316bb704c45957e166fa739eddd93ca94 (diff)
fix stereo rendering
Change-Id: I1f55f4ce10107b5d4b3f92e1cb022a0c6595186b Task-number: QTBUG-123483 Reviewed-by: Mike Krus <mike.krus@kdab.com> (cherry picked from commit 34a079506ee9cf7fc692261aa2949a2e662ce45f) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8dadce1681e2f0cd56693012bff68f9d22ac00a4)
-rw-r--r--src/render/backend/attachmentpack.cpp24
-rw-r--r--src/render/frontend/qrendertargetoutput.cpp2
2 files changed, 9 insertions, 17 deletions
diff --git a/src/render/backend/attachmentpack.cpp b/src/render/backend/attachmentpack.cpp
index cf7566e23..a96e3affb 100644
--- a/src/render/backend/attachmentpack.cpp
+++ b/src/render/backend/attachmentpack.cpp
@@ -47,30 +47,22 @@ AttachmentPack::AttachmentPack(const RenderTarget *target,
if (drawBuffers.empty()) {
m_drawBuffers.reserve(m_attachments.size());
for (const Attachment &attachment : std::as_const(m_attachments)) {
- switch (attachment.m_point) {
- case QRenderTargetOutput::Left:
+ if (attachment.m_point >= QRenderTargetOutput::Color0 && attachment.m_point <= QRenderTargetOutput::Color15)
+ m_drawBuffers.push_back((int)attachment.m_point);
+ else if (attachment.m_point == QRenderTargetOutput::Left)
m_drawBuffers.push_back(GL_BACK_LEFT);
- case QRenderTargetOutput::Right:
+ else if (attachment.m_point == QRenderTargetOutput::Right)
m_drawBuffers.push_back(GL_BACK_RIGHT);
- default:
- if (attachment.m_point >= QRenderTargetOutput::Color0 && attachment.m_point <= QRenderTargetOutput::Color15)
- m_drawBuffers.push_back((int) attachment.m_point);
- break;
- }
}
} else {
m_drawBuffers.reserve(drawBuffers.size());
for (QRenderTargetOutput::AttachmentPoint drawBuffer : drawBuffers) {
- switch (drawBuffer) {
- case QRenderTargetOutput::Left:
+ if (drawBuffer >= QRenderTargetOutput::Color0 && drawBuffer <= QRenderTargetOutput::Color15)
+ m_drawBuffers.push_back((int)drawBuffer);
+ else if (drawBuffer == QRenderTargetOutput::Left)
m_drawBuffers.push_back(GL_BACK_LEFT);
- case QRenderTargetOutput::Right:
+ else if (drawBuffer == QRenderTargetOutput::Right)
m_drawBuffers.push_back(GL_BACK_RIGHT);
- default:
- if (drawBuffer >= QRenderTargetOutput::Color0 && drawBuffer <= QRenderTargetOutput::Color15)
- m_drawBuffers.push_back((int) drawBuffer);
- break;
- }
}
}
}
diff --git a/src/render/frontend/qrendertargetoutput.cpp b/src/render/frontend/qrendertargetoutput.cpp
index 3be19a2b4..553c668dc 100644
--- a/src/render/frontend/qrendertargetoutput.cpp
+++ b/src/render/frontend/qrendertargetoutput.cpp
@@ -40,7 +40,7 @@ namespace Qt3DRender {
RenderTargetOutput must be compatible with the given parameters.
\note Left and Right attachment points are special values. They do not refer to
- render target objects to be either of the back buffers used for stereo rendering.
+ render target objects, but rather to either of the back buffers used for stereo rendering.
*/
/*!