summaryrefslogtreecommitdiffstats
path: root/src/render/renderstates
diff options
context:
space:
mode:
authorWieland Hagen <wieland.hagen@kdab.com>2017-07-26 16:23:23 +0200
committerWieland Hagen <wieland.hagen@kdab.com>2017-08-03 15:57:08 +0000
commitada47e47ef2e23feb334183d808cd6294aa69739 (patch)
tree8d88fea8c8f8e7c18fa38ca09e280b5befa70519 /src/render/renderstates
parent6e71be0630da0a7c9e460ed7adda8ed7ac7434f6 (diff)
Fix QAlphaMask and QStencilMask render states property updating
Change-Id: Ie11ce88441a6d287d50d1cb78365a65b2742a502 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Diffstat (limited to 'src/render/renderstates')
-rw-r--r--src/render/renderstates/qstencilmask_p.h2
-rw-r--r--src/render/renderstates/renderstates.cpp8
-rw-r--r--src/render/renderstates/renderstates_p.h1
3 files changed, 10 insertions, 1 deletions
diff --git a/src/render/renderstates/qstencilmask_p.h b/src/render/renderstates/qstencilmask_p.h
index a6aad60b9..762b249f8 100644
--- a/src/render/renderstates/qstencilmask_p.h
+++ b/src/render/renderstates/qstencilmask_p.h
@@ -60,7 +60,7 @@ class QT3DRENDERSHARED_PRIVATE_EXPORT QStencilMaskPrivate : public QRenderStateP
{
public:
QStencilMaskPrivate()
- : QRenderStatePrivate(Render::StencilTestStateMask)
+ : QRenderStatePrivate(Render::StencilWriteStateMask)
, m_frontOutputMask(0)
, m_backOutputMask(0)
{}
diff --git a/src/render/renderstates/renderstates.cpp b/src/render/renderstates/renderstates.cpp
index 7c59aa7f3..3c43252a0 100644
--- a/src/render/renderstates/renderstates.cpp
+++ b/src/render/renderstates/renderstates.cpp
@@ -111,6 +111,14 @@ void AlphaFunc::apply(GraphicsContext* gc) const
gc->alphaTest(std::get<0>(m_values), std::get<1>(m_values));
}
+void AlphaFunc::updateProperty(const char *name, const QVariant &value)
+{
+ if (name == QByteArrayLiteral("alphaFunction"))
+ std::get<0>(m_values) = value.toInt();
+ if (name == QByteArrayLiteral("referenceValue"))
+ std::get<1>(m_values) = value.toFloat();
+}
+
void MSAAEnabled::apply(GraphicsContext *gc) const
{
gc->setMSAAEnabled(std::get<0>(m_values));
diff --git a/src/render/renderstates/renderstates_p.h b/src/render/renderstates/renderstates_p.h
index 66e9e079a..784060331 100644
--- a/src/render/renderstates/renderstates_p.h
+++ b/src/render/renderstates/renderstates_p.h
@@ -78,6 +78,7 @@ class Q_AUTOTEST_EXPORT AlphaFunc : public GenericState<AlphaFunc, AlphaTestMask
{
public:
void apply(GraphicsContext *gc) const Q_DECL_OVERRIDE;
+ void updateProperty(const char *name, const QVariant &value) Q_DECL_OVERRIDE;
};
class Q_AUTOTEST_EXPORT MSAAEnabled : public GenericState<MSAAEnabled, MSAAEnabledStateMask, GLboolean>