diff options
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.h | 209 |
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_ |