Revision control
++ // Copyright (C) 2016 Klaralvdalens Datakonsult AB (KDAB).
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
++
++ #include "statevariant_p.h"
++
++ QT_BEGIN_NAMESPACE
++
++ namespace Qt3DRender {
++ namespace Render {
++
++ RenderStateImpl *StateVariant::state()
++ {
++ switch (type) {
++ case BlendEquationArgumentsMask:
++ case BlendStateMask:
++ case AlphaTestMask:
++ case MSAAEnabledStateMask:
++ case DepthRangeMask:
++ case DepthTestStateMask:
++ case DepthWriteStateMask:
++ case CullFaceStateMask:
++ case FrontFaceStateMask:
++ case DitheringStateMask:
++ case ScissorStateMask:
++ case StencilTestStateMask:
++ case AlphaCoverageStateMask:
++ case PointSizeMask:
++ case PolygonOffsetStateMask:
++ case ColorStateMask:
++ case ClipPlaneMask:
++ case SeamlessCubemapMask:
++ case StencilOpMask:
++ case StencilWriteStateMask:
++ case LineWidthMask:
++ case RasterModeMask:
++ return &data.blendEquationArguments;
++ default:
++ Q_UNREACHABLE();
++ }
++ }
++
++ const RenderStateImpl *StateVariant::constState() const
++ {
++ switch (type) {
++ case BlendEquationArgumentsMask:
++ case BlendStateMask:
++ case AlphaTestMask:
++ case MSAAEnabledStateMask:
++ case DepthRangeMask:
++ case DepthTestStateMask:
++ case DepthWriteStateMask:
++ case CullFaceStateMask:
++ case FrontFaceStateMask:
++ case DitheringStateMask:
++ case ScissorStateMask:
++ case StencilTestStateMask:
++ case AlphaCoverageStateMask:
++ case PointSizeMask:
++ case PolygonOffsetStateMask:
++ case ColorStateMask:
++ case ClipPlaneMask:
++ case SeamlessCubemapMask:
++ case StencilOpMask:
++ case StencilWriteStateMask:
++ case LineWidthMask:
++ case RasterModeMask:
++ return &data.blendEquationArguments;
++ default:
++ Q_UNREACHABLE();
++ }
++ }
++
++ bool StateVariant::operator ==(const StateVariant &other) const
++ {
++ return (other.type == type && constState()->equalTo(*other.constState()));
++ }
++
++ bool StateVariant::operator !=(const StateVariant &other) const
++ {
++ return !(*this == other);
++ }
++
++ } // namespace Render
++ } // namespace Qt3DRender
++
++ QT_END_NAMESPACE