| Index: src/gpu/GrOptDrawState.h
|
| diff --git a/src/gpu/GrOptDrawState.h b/src/gpu/GrOptDrawState.h
|
| deleted file mode 100644
|
| index 626e6d7c6160086189e473135952a9963fbfb25e..0000000000000000000000000000000000000000
|
| --- a/src/gpu/GrOptDrawState.h
|
| +++ /dev/null
|
| @@ -1,183 +0,0 @@
|
| -/*
|
| - * Copyright 2014 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#ifndef GrOptDrawState_DEFINED
|
| -#define GrOptDrawState_DEFINED
|
| -
|
| -#include "GrColor.h"
|
| -#include "GrGpu.h"
|
| -#include "GrPendingFragmentStage.h"
|
| -#include "GrProgramDesc.h"
|
| -#include "GrStencil.h"
|
| -#include "GrTypesPriv.h"
|
| -#include "SkMatrix.h"
|
| -#include "SkRefCnt.h"
|
| -
|
| -class GrDeviceCoordTexture;
|
| -class GrDrawState;
|
| -class GrPathProcessor;
|
| -
|
| -/**
|
| - * Class that holds an optimized version of a GrDrawState. It is meant to be an immutable class,
|
| - * and contains all data needed to set the state for a gpu draw.
|
| - */
|
| -class GrOptDrawState {
|
| -public:
|
| - SK_DECLARE_INST_COUNT(GrOptDrawState)
|
| -
|
| - GrOptDrawState(const GrDrawState& drawState, const GrPrimitiveProcessor*,
|
| - const GrDrawTargetCaps&, const GrScissorState&,
|
| - const GrDeviceCoordTexture* dstCopy);
|
| -
|
| - /*
|
| - * Returns true if it is possible to combine the two GrOptDrawStates and it will update 'this'
|
| - * to subsume 'that''s draw.
|
| - */
|
| - bool isEqual(const GrOptDrawState& that) const;
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| - /// @name Effect Stages
|
| - /// Each stage hosts a GrProcessor. The effect produces an output color or coverage in the
|
| - /// fragment shader. Its inputs are the output from the previous stage as well as some variables
|
| - /// available to it in the fragment and vertex shader (e.g. the vertex position, the dst color,
|
| - /// the fragment position, local coordinates).
|
| - ///
|
| - /// The stages are divided into two sets, color-computing and coverage-computing. The final
|
| - /// color stage produces the final pixel color. The coverage-computing stages function exactly
|
| - /// as the color-computing but the output of the final coverage stage is treated as a fractional
|
| - /// pixel coverage rather than as input to the src/dst color blend step.
|
| - ///
|
| - /// The input color to the first color-stage is either the constant color or interpolated
|
| - /// per-vertex colors. The input to the first coverage stage is either a constant coverage
|
| - /// (usually full-coverage) or interpolated per-vertex coverage.
|
| - ////
|
| -
|
| - int numColorStages() const { return fNumColorStages; }
|
| - int numCoverageStages() const { return fFragmentStages.count() - fNumColorStages; }
|
| - int numFragmentStages() const { return fFragmentStages.count(); }
|
| -
|
| - const GrXferProcessor* getXferProcessor() const { return fXferProcessor.get(); }
|
| -
|
| - const GrPendingFragmentStage& getColorStage(int idx) const {
|
| - SkASSERT(idx < this->numColorStages());
|
| - return fFragmentStages[idx];
|
| - }
|
| - const GrPendingFragmentStage& getCoverageStage(int idx) const {
|
| - SkASSERT(idx < this->numCoverageStages());
|
| - return fFragmentStages[fNumColorStages + idx];
|
| - }
|
| - const GrPendingFragmentStage& getFragmentStage(int idx) const {
|
| - return fFragmentStages[idx];
|
| - }
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| - /// @name Render Target
|
| - ////
|
| -
|
| - /**
|
| - * Retrieves the currently set render-target.
|
| - *
|
| - * @return The currently set render target.
|
| - */
|
| - GrRenderTarget* getRenderTarget() const { return fRenderTarget.get(); }
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| - /// @name Stencil
|
| - ////
|
| -
|
| - const GrStencilSettings& getStencil() const { return fStencilSettings; }
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| - /// @name ScissorState
|
| - ////
|
| -
|
| - const GrScissorState& getScissorState() const { return fScissorState; }
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| - /// @name Boolean Queries
|
| - ////
|
| -
|
| - bool isDitherState() const { return SkToBool(fFlags & kDither_Flag); }
|
| - bool isHWAntialiasState() const { return SkToBool(fFlags & kHWAA_Flag); }
|
| - bool mustSkip() const { return NULL == this->getRenderTarget(); }
|
| -
|
| - /// @}
|
| -
|
| - /**
|
| - * Gets whether the target is drawing clockwise, counterclockwise,
|
| - * or both faces.
|
| - * @return the current draw face(s).
|
| - */
|
| - GrDrawState::DrawFace getDrawFace() const { return fDrawFace; }
|
| -
|
| - /// @}
|
| -
|
| - ///////////////////////////////////////////////////////////////////////////
|
| -
|
| - const GrDeviceCoordTexture* getDstCopy() const { return fDstCopy.texture() ? &fDstCopy : NULL; }
|
| -
|
| - const GrProgramDesc::DescInfo& descInfo() const { return fDescInfo; }
|
| -
|
| - const GrGeometryProcessor::InitBT& getInitBatchTracker() const { return fInitBT; }
|
| -
|
| -private:
|
| - /**
|
| - * Alter the program desc and inputs (attribs and processors) based on the blend optimization.
|
| - */
|
| - void adjustProgramFromOptimizations(const GrDrawState& ds,
|
| - GrXferProcessor::OptFlags,
|
| - const GrProcOptInfo& colorPOI,
|
| - const GrProcOptInfo& coveragePOI,
|
| - int* firstColorStageIdx,
|
| - int* firstCoverageStageIdx);
|
| -
|
| - /**
|
| - * Calculates the primary and secondary output types of the shader. For certain output types
|
| - * the function may adjust the blend coefficients. After this function is called the src and dst
|
| - * blend coeffs will represent those used by backend API.
|
| - */
|
| - void setOutputStateInfo(const GrDrawState& ds, GrXferProcessor::OptFlags,
|
| - const GrDrawTargetCaps&);
|
| -
|
| - enum Flags {
|
| - kDither_Flag = 0x1,
|
| - kHWAA_Flag = 0x2,
|
| - };
|
| -
|
| - typedef GrPendingIOResource<GrRenderTarget, kWrite_GrIOType> RenderTarget;
|
| - typedef SkSTArray<8, GrPendingFragmentStage> FragmentStageArray;
|
| - typedef GrPendingProgramElement<const GrXferProcessor> ProgramXferProcessor;
|
| - RenderTarget fRenderTarget;
|
| - GrScissorState fScissorState;
|
| - GrStencilSettings fStencilSettings;
|
| - GrDrawState::DrawFace fDrawFace;
|
| - GrDeviceCoordTexture fDstCopy;
|
| - uint32_t fFlags;
|
| - ProgramXferProcessor fXferProcessor;
|
| - FragmentStageArray fFragmentStages;
|
| - GrProgramDesc::DescInfo fDescInfo;
|
| - GrGeometryProcessor::InitBT fInitBT;
|
| -
|
| - // This function is equivalent to the offset into fFragmentStages where coverage stages begin.
|
| - int fNumColorStages;
|
| -
|
| - GrProgramDesc fDesc;
|
| -
|
| - typedef SkRefCnt INHERITED;
|
| -};
|
| -
|
| -#endif
|
|
|