aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrOptDrawState.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrOptDrawState.h')
-rw-r--r--src/gpu/GrOptDrawState.h17
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;