diff options
Diffstat (limited to 'src/gpu/GrOptDrawState.h')
-rw-r--r-- | src/gpu/GrOptDrawState.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gpu/GrOptDrawState.h b/src/gpu/GrOptDrawState.h index 457f035423..9c9bf94597 100644 --- a/src/gpu/GrOptDrawState.h +++ b/src/gpu/GrOptDrawState.h @@ -23,6 +23,11 @@ public: bool inputColorIsUsed() const { return fInputColorIsUsed; } bool inputCoverageIsUsed() const { return fInputCoverageIsUsed; } + bool readsDst() const { return fReadsDst; } + bool readsFragPosition() const { return fReadsFragPosition; } + bool requiresVertexShader() const { return fRequiresVertexShader; } + bool requiresLocalCoordAttrib() const { return fRequiresLocalCoordAttrib; } + private: /** * Constructs and optimized drawState out of a GrRODrawState. @@ -61,11 +66,23 @@ private: */ void adjustFromBlendOpts(); + /** + * Loop over the effect stages to determine various info like what data they will read and what + * shaders they require. + */ + void getStageStats(); + // These flags are needed to protect the code from creating an unused uniform color/coverage // which will cause shader compiler errors. bool fInputColorIsUsed; bool fInputCoverageIsUsed; + // These flags give aggregated info on the effect stages that are used when building programs. + bool fReadsDst; + bool fReadsFragPosition; + bool fRequiresVertexShader; + bool fRequiresLocalCoordAttrib; + SkAutoSTArray<4, GrVertexAttrib> fOptVA; BlendOptFlags fBlendOptFlags; |