Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Unified Diff: src/gpu/GrOptDrawState.h

Issue 858343002: Rename GrOptDrawState to GrPipeline and GrDrawState to GrPipelineBuilder (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: more nits Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/gpu/GrInOrderDrawBuffer.cpp ('k') | src/gpu/GrOptDrawState.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « src/gpu/GrInOrderDrawBuffer.cpp ('k') | src/gpu/GrOptDrawState.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698