summaryrefslogtreecommitdiffstats
path: root/src/render/renderers/opengl/renderstates/renderstateset.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/render/renderers/opengl/renderstates/renderstateset.cpp')
-rw-r--r--src/render/renderers/opengl/renderstates/renderstateset.cpp266
1 files changed, 0 insertions, 266 deletions
diff --git a/src/render/renderers/opengl/renderstates/renderstateset.cpp b/src/render/renderers/opengl/renderstates/renderstateset.cpp
index bf84b0e1c..f7fc279a1 100644
--- a/src/render/renderers/opengl/renderstates/renderstateset.cpp
+++ b/src/render/renderers/opengl/renderstates/renderstateset.cpp
@@ -45,50 +45,9 @@
#include <QDebug>
#include <QOpenGLContext>
-#include <Qt3DRender/private/submissioncontext_p.h>
#include <Qt3DRender/private/renderstates_p.h>
#include <Qt3DRender/private/qrenderstate_p.h>
-#include <Qt3DRender/qalphacoverage.h>
-#include <Qt3DRender/qalphatest.h>
-#include <Qt3DRender/private/qalphatest_p.h>
-#include <Qt3DRender/qblendequation.h>
-#include <Qt3DRender/private/qblendequation_p.h>
-#include <Qt3DRender/qblendequationarguments.h>
-#include <Qt3DRender/private/qblendequationarguments_p.h>
-#include <Qt3DRender/qcolormask.h>
-#include <Qt3DRender/private/qcolormask_p.h>
-#include <Qt3DRender/qcullface.h>
-#include <Qt3DRender/private/qcullface_p.h>
-#include <Qt3DRender/qnodepthmask.h>
-#include <Qt3DRender/qdepthtest.h>
-#include <Qt3DRender/private/qdepthtest_p.h>
-#include <Qt3DRender/qdithering.h>
-#include <Qt3DRender/qfrontface.h>
-#include <Qt3DRender/private/qfrontface_p.h>
-#include <Qt3DRender/qpointsize.h>
-#include <Qt3DRender/private/qpointsize_p.h>
-#include <Qt3DRender/qpolygonoffset.h>
-#include <Qt3DRender/private/qpolygonoffset_p.h>
-#include <Qt3DRender/qscissortest.h>
-#include <Qt3DRender/private/qscissortest_p.h>
-#include <Qt3DRender/qstenciltest.h>
-#include <Qt3DRender/private/qstenciltest_p.h>
-#include <Qt3DRender/qstenciltestarguments.h>
-#include <Qt3DRender/private/qstenciltestarguments_p.h>
-#include <Qt3DRender/qclipplane.h>
-#include <Qt3DRender/private/qclipplane_p.h>
-#include <Qt3DRender/qmultisampleantialiasing.h>
-#include <Qt3DRender/qseamlesscubemap.h>
-#include <Qt3DRender/qstenciloperation.h>
-#include <Qt3DRender/private/qstenciloperation_p.h>
-#include <Qt3DRender/qstenciloperationarguments.h>
-#include <Qt3DRender/private/qstenciloperationarguments_p.h>
-#include <Qt3DRender/qstencilmask.h>
-#include <Qt3DRender/private/qstencilmask_p.h>
-#include <Qt3DRender/qlinewidth.h>
-#include <Qt3DRender/private/qlinewidth_p.h>
-
QT_BEGIN_NAMESPACE
namespace Qt3DRender {
@@ -139,33 +98,6 @@ int RenderStateSet::changeCost(RenderStateSet *previousState)
return cost;
}
-void RenderStateSet::apply(SubmissionContext *gc)
-{
- RenderStateSet* previousStates = gc->currentStateSet();
-
- const StateMaskSet invOurState = ~stateMask();
- // generate a mask for each set bit in previous, where we do not have
- // the corresponding bit set.
-
- StateMaskSet stateToReset = 0;
- if (previousStates) {
- stateToReset = previousStates->stateMask() & invOurState;
- qCDebug(RenderStates) << "previous states " << QString::number(previousStates->stateMask(), 2);
- }
- qCDebug(RenderStates) << " current states " << QString::number(stateMask(), 2) << "inverse " << QString::number(invOurState, 2) << " -> states to change: " << QString::number(stateToReset, 2);
-
- // Reset states that aren't active in the current state set
- resetMasked(stateToReset, gc);
-
- // Apply states that weren't in the previous state or that have
- // different values
- for (const StateVariant &ds : qAsConst(m_states)) {
- if (previousStates && previousStates->contains(ds))
- continue;
- ds.apply(gc);
- }
-}
-
StateMaskSet RenderStateSet::stateMask() const
{
return m_stateMask;
@@ -176,67 +108,6 @@ void RenderStateSet::merge(RenderStateSet *other)
m_stateMask |= other->stateMask();
}
-void RenderStateSet::resetMasked(StateMaskSet maskOfStatesToReset, SubmissionContext *gc)
-{
- // TO DO -> Call gcHelper methods instead of raw GL
- // QOpenGLFunctions shouldn't be used here directly
- QOpenGLFunctions *funcs = gc->openGLContext()->functions();
-
- if (maskOfStatesToReset & ScissorStateMask)
- funcs->glDisable(GL_SCISSOR_TEST);
-
- if (maskOfStatesToReset & BlendStateMask)
- funcs->glDisable(GL_BLEND);
-
- if (maskOfStatesToReset & StencilWriteStateMask)
- funcs->glStencilMask(0);
-
- if (maskOfStatesToReset & StencilTestStateMask)
- funcs->glDisable(GL_STENCIL_TEST);
-
- if (maskOfStatesToReset & DepthTestStateMask)
- funcs->glDisable(GL_DEPTH_TEST);
-
- if (maskOfStatesToReset & DepthWriteStateMask)
- funcs->glDepthMask(GL_TRUE); // reset to default
-
- if (maskOfStatesToReset & FrontFaceStateMask)
- funcs->glFrontFace(GL_CCW); // reset to default
-
- if (maskOfStatesToReset & CullFaceStateMask)
- funcs->glDisable(GL_CULL_FACE);
-
- if (maskOfStatesToReset & DitheringStateMask)
- funcs->glDisable(GL_DITHER);
-
- if (maskOfStatesToReset & AlphaCoverageStateMask)
- gc->setAlphaCoverageEnabled(false);
-
- if (maskOfStatesToReset & PointSizeMask)
- gc->pointSize(false, 1.0f); // reset to default
-
- if (maskOfStatesToReset & PolygonOffsetStateMask)
- funcs->glDisable(GL_POLYGON_OFFSET_FILL);
-
- if (maskOfStatesToReset & ColorStateMask)
- funcs->glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
-
- if (maskOfStatesToReset & ClipPlaneMask) {
- GLint max = gc->maxClipPlaneCount();
- for (GLint i = 0; i < max; ++i)
- gc->disableClipPlane(i);
- }
-
- if (maskOfStatesToReset & SeamlessCubemapMask)
- gc->setSeamlessCubemap(false);
-
- if (maskOfStatesToReset & StencilOpMask)
- funcs->glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
-
- if (maskOfStatesToReset & LineWidthMask)
- funcs->glLineWidth(1.0f);
-}
-
bool RenderStateSet::contains(const StateVariant &ds) const
{
// trivial reject using the state mask bits
@@ -250,143 +121,6 @@ bool RenderStateSet::contains(const StateVariant &ds) const
return false;
}
-StateVariant RenderStateSet::initializeStateFromPeer(const Qt3DRender::QRenderStateCreatedChangeBasePtr change)
-{
- switch (change->renderStateType()) {
- case AlphaCoverageStateMask: {
- return RenderStateSet::createState<AlphaCoverage>();
- }
-
- case AlphaTestMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QAlphaTestData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<AlphaFunc>(data.alphaFunction, data.referenceValue);
- }
-
- case BlendStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QBlendEquationData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<BlendEquation>(data.blendFunction);
- }
-
- case BlendEquationArgumentsMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QBlendEquationArgumentsData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<BlendEquationArguments>(
- data.sourceRgb, data.destinationRgb,
- data.sourceAlpha, data.destinationAlpha,
- change->isNodeEnabled(),
- data.bufferIndex);
- }
-
- case MSAAEnabledStateMask: {
- return RenderStateSet::createState<MSAAEnabled>(change->isNodeEnabled());
- }
-
- case CullFaceStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QCullFaceData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<CullFace>(data.mode);
- }
-
- case DepthWriteStateMask: {
- return RenderStateSet::createState<NoDepthMask>(false);
- }
-
- case DepthTestStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QDepthTestData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<DepthTest>(data.depthFunction);
- }
-
- case FrontFaceStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QFrontFaceData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<FrontFace>(data.direction);
- }
-
- case ScissorStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QScissorTestData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<ScissorTest>(data.left, data.bottom,
- data.width, data.height);
- }
-
- case StencilTestStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QStencilTestData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<StencilTest>(data.front.stencilFunction,
- data.front.referenceValue,
- data.front.comparisonMask,
- data.back.stencilFunction,
- data.back.referenceValue,
- data.back.comparisonMask);
- }
-
- case PointSizeMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QPointSizeData>>(change);
- const auto &data = typedChange->data;
- const bool isProgrammable = (data.sizeMode == QPointSize::Programmable);
- return RenderStateSet::createState<PointSize>(isProgrammable, data.value);
- }
-
- case PolygonOffsetStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QPolygonOffsetData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<PolygonOffset>(data.scaleFactor, data.depthSteps);
- }
-
- case ColorStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QColorMaskData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<ColorMask>(data.redMasked, data.greenMasked,
- data.blueMasked, data.alphaMasked);
- }
-
- case ClipPlaneMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QClipPlaneData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<ClipPlane>(data.planeIndex,
- data.normal,
- data.distance);
- }
-
- case SeamlessCubemapMask: {
- return RenderStateSet::createState<SeamlessCubemap>();
- }
-
- case StencilOpMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QStencilOperationData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<StencilOp>(data.front.stencilTestFailureOperation,
- data.front.depthTestFailureOperation,
- data.front.allTestsPassOperation,
- data.back.stencilTestFailureOperation,
- data.back.depthTestFailureOperation,
- data.back.allTestsPassOperation);
- }
-
- case StencilWriteStateMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QStencilMaskData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<StencilMask>(data.frontOutputMask,
- data.backOutputMask);
- }
-
- case LineWidthMask: {
- const auto typedChange = qSharedPointerCast<Qt3DRender::QRenderStateCreatedChange<QLineWidthData>>(change);
- const auto &data = typedChange->data;
- return RenderStateSet::createState<LineWidth>(data.value, data.smooth);
- }
-
- // TODO: Fix Dithering state
- case DitheringStateMask:
- default:
- Q_UNREACHABLE();
- return StateVariant();
- }
-}
-
} // namespace Render
} // namespace Qt3DRender