summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h')
-rw-r--r--src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h209
1 files changed, 0 insertions, 209 deletions
diff --git a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h b/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
deleted file mode 100644
index 63ce17cb1e..0000000000
--- a/src/3rdparty/angle/src/libANGLE/renderer/d3d/d3d9/StateManager9.h
+++ /dev/null
@@ -1,209 +0,0 @@
-//
-// Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-//
-
-// StateManager9.h: Defines a class for caching D3D9 state
-
-#ifndef LIBANGLE_RENDERER_D3D9_STATEMANAGER9_H_
-#define LIBANGLE_RENDERER_D3D9_STATEMANAGER9_H_
-
-#include "libANGLE/angletypes.h"
-#include "libANGLE/ContextState.h"
-#include "libANGLE/State.h"
-#include "libANGLE/renderer/d3d/RendererD3D.h"
-
-namespace rx
-{
-
-class Renderer9;
-
-struct dx_VertexConstants9
-{
- float depthRange[4];
- float viewAdjust[4];
- float viewCoords[4];
-};
-
-struct dx_PixelConstants9
-{
- float depthRange[4];
- float viewCoords[4];
- float depthFront[4];
-};
-
-class StateManager9 final : angle::NonCopyable
-{
- public:
- StateManager9(Renderer9 *renderer9);
- ~StateManager9();
-
- void initialize();
-
- void syncState(const gl::State &state, const gl::State::DirtyBits &dirtyBits);
-
- gl::Error setBlendDepthRasterStates(const gl::State &glState, unsigned int sampleMask);
- void setScissorState(const gl::Rectangle &scissor, bool enabled);
- void setViewportState(const gl::Rectangle &viewport,
- float zNear,
- float zFar,
- GLenum drawMode,
- GLenum frontFace,
- bool ignoreViewport);
-
- void setShaderConstants();
-
- void forceSetBlendState();
- void forceSetRasterState();
- void forceSetDepthStencilState();
- void forceSetScissorState();
- void forceSetViewportState();
- void forceSetDXUniformsState();
-
- void updateDepthSizeIfChanged(bool depthStencilInitialized, unsigned int depthSize);
- void updateStencilSizeIfChanged(bool depthStencilInitialized, unsigned int stencilSize);
-
- void setRenderTargetBounds(size_t width, size_t height);
-
- int getRenderTargetWidth() const { return mRenderTargetBounds.width; }
- int getRenderTargetHeight() const { return mRenderTargetBounds.height; }
-
- void resetDirtyBits() { mDirtyBits.reset(); }
-
- private:
- // Blend state functions
- void setBlendEnabled(bool enabled);
- void setBlendColor(const gl::BlendState &blendState, const gl::ColorF &blendColor);
- void setBlendFuncsEquations(const gl::BlendState &blendState);
- void setColorMask(const gl::Framebuffer *framebuffer,
- bool red,
- bool blue,
- bool green,
- bool alpha);
- void setSampleAlphaToCoverage(bool enabled);
- void setDither(bool dither);
- void setSampleMask(unsigned int sampleMask);
-
- // Current raster state functions
- void setCullMode(bool cullFace, gl::CullFaceMode cullMode, GLenum frontFace);
- void setDepthBias(bool polygonOffsetFill,
- GLfloat polygonOffsetFactor,
- GLfloat polygonOffsetUnits);
-
- // Depth stencil state functions
- void setStencilOpsFront(GLenum stencilFail,
- GLenum stencilPassDepthFail,
- GLenum stencilPassDepthPass,
- bool frontFaceCCW);
- void setStencilOpsBack(GLenum stencilBackFail,
- GLenum stencilBackPassDepthFail,
- GLenum stencilBackPassDepthPass,
- bool frontFaceCCW);
- void setStencilBackWriteMask(GLuint stencilBackWriteMask, bool frontFaceCCW);
- void setDepthFunc(bool depthTest, GLenum depthFunc);
- void setStencilTestEnabled(bool enabled);
- void setDepthMask(bool depthMask);
- void setStencilFuncsFront(GLenum stencilFunc,
- GLuint stencilMask,
- GLint stencilRef,
- bool frontFaceCCW,
- unsigned int maxStencil);
- void setStencilFuncsBack(GLenum stencilBackFunc,
- GLuint stencilBackMask,
- GLint stencilBackRef,
- bool frontFaceCCW,
- unsigned int maxStencil);
- void setStencilWriteMask(GLuint stencilWriteMask, bool frontFaceCCW);
-
- void setScissorEnabled(bool scissorEnabled);
- void setScissorRect(const gl::Rectangle &scissor, bool enabled);
-
- enum DirtyBitType
- {
- // Blend dirty bits
- DIRTY_BIT_BLEND_ENABLED,
- DIRTY_BIT_BLEND_COLOR,
- DIRTY_BIT_BLEND_FUNCS_EQUATIONS,
- DIRTY_BIT_SAMPLE_ALPHA_TO_COVERAGE,
- DIRTY_BIT_COLOR_MASK,
- DIRTY_BIT_DITHER,
- DIRTY_BIT_SAMPLE_MASK,
-
- // Rasterizer dirty bits
- DIRTY_BIT_CULL_MODE,
- DIRTY_BIT_DEPTH_BIAS,
-
- // Depth stencil dirty bits
- DIRTY_BIT_STENCIL_DEPTH_MASK,
- DIRTY_BIT_STENCIL_DEPTH_FUNC,
- DIRTY_BIT_STENCIL_TEST_ENABLED,
- DIRTY_BIT_STENCIL_FUNCS_FRONT,
- DIRTY_BIT_STENCIL_FUNCS_BACK,
- DIRTY_BIT_STENCIL_WRITEMASK_FRONT,
- DIRTY_BIT_STENCIL_WRITEMASK_BACK,
- DIRTY_BIT_STENCIL_OPS_FRONT,
- DIRTY_BIT_STENCIL_OPS_BACK,
-
- // Scissor dirty bits
- DIRTY_BIT_SCISSOR_ENABLED,
- DIRTY_BIT_SCISSOR_RECT,
-
- // Viewport dirty bits
- DIRTY_BIT_VIEWPORT,
-
- DIRTY_BIT_MAX
- };
-
- using DirtyBits = angle::BitSet<DIRTY_BIT_MAX>;
-
- bool mUsingZeroColorMaskWorkaround;
-
- // Currently applied blend state
- gl::BlendState mCurBlendState;
- gl::ColorF mCurBlendColor;
- unsigned int mCurSampleMask;
- DirtyBits mBlendStateDirtyBits;
-
- // Currently applied raster state
- gl::RasterizerState mCurRasterState;
- unsigned int mCurDepthSize;
- DirtyBits mRasterizerStateDirtyBits;
-
- // Currently applied depth stencil state
- gl::DepthStencilState mCurDepthStencilState;
- int mCurStencilRef;
- int mCurStencilBackRef;
- bool mCurFrontFaceCCW;
- unsigned int mCurStencilSize;
- DirtyBits mDepthStencilStateDirtyBits;
-
- // Currently applied scissor states
- gl::Rectangle mCurScissorRect;
- bool mCurScissorEnabled;
- gl::Extents mRenderTargetBounds;
- DirtyBits mScissorStateDirtyBits;
-
- // Currently applied viewport states
- bool mForceSetViewport;
- gl::Rectangle mCurViewport;
- float mCurNear;
- float mCurFar;
- float mCurDepthFront;
- bool mCurIgnoreViewport;
-
- dx_VertexConstants9 mVertexConstants;
- dx_PixelConstants9 mPixelConstants;
- bool mDxUniformsDirty;
-
- // FIXME: Unsupported by D3D9
- static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILREF = D3DRS_STENCILREF;
- static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILMASK = D3DRS_STENCILMASK;
- static const D3DRENDERSTATETYPE D3DRS_CCW_STENCILWRITEMASK = D3DRS_STENCILWRITEMASK;
-
- Renderer9 *mRenderer9;
- DirtyBits mDirtyBits;
-};
-
-} // namespace rx
-#endif // LIBANGLE_RENDERER_D3D9_STATEMANAGER9_H_