Revision control
Copy as Markdown
// 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