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

Unified Diff: src/gpu/GrPrimitiveProcessor.h

Issue 1541903002: added support for PLS path rendering (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix for ASAN failure Created 4 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/GrPathRendererChain.cpp ('k') | src/gpu/GrXferProcessor.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/gpu/GrPrimitiveProcessor.h
diff --git a/src/gpu/GrPrimitiveProcessor.h b/src/gpu/GrPrimitiveProcessor.h
index 467200a86d098316a9226c5c6dcc56db7e14426d..c1e946db20747553f70d513f511c0b1c770245b1 100644
--- a/src/gpu/GrPrimitiveProcessor.h
+++ b/src/gpu/GrPrimitiveProcessor.h
@@ -47,6 +47,16 @@ class GrGLSLPrimitiveProcessor;
struct GrInitInvariantOutput;
+// Describes the state of pixel local storage with respect to the current draw.
+enum GrPixelLocalStorageState {
+ // The draw is actively updating PLS.
+ kDraw_GrPixelLocalStorageState,
+ // The draw is a "finish" operation which is reading from PLS and writing color.
+ kFinish_GrPixelLocalStorageState,
+ // The draw does not use PLS.
+ kDisabled_GrPixelLocalStorageState
+};
+
/*
* This class allows the GrPipeline to communicate information about the pipeline to a
* GrBatch which should be forwarded to the GrPrimitiveProcessor(s) created by the batch.
@@ -199,7 +209,7 @@ public:
the object. */
virtual GrGLSLPrimitiveProcessor* createGLSLInstance(const GrGLSLCaps& caps) const = 0;
- bool isPathRendering() const { return fIsPathRendering; }
+ virtual bool isPathRendering() const { return false; }
/**
* No Local Coord Transformation is needed in the shader, instead transformed local coords will
@@ -207,11 +217,19 @@ public:
*/
virtual bool hasTransformedLocalCoords() const = 0;
+ virtual GrPixelLocalStorageState getPixelLocalStorageState() const {
+ return kDisabled_GrPixelLocalStorageState;
+ }
+
+ /**
+ * If non-null, overrides the dest color returned by GrGLSLFragmentShaderBuilder::dstColor().
+ */
+ virtual const char* getDestColorOverride() const { return nullptr; }
+
protected:
- GrPrimitiveProcessor(bool isPathRendering)
+ GrPrimitiveProcessor()
: fNumAttribs(0)
- , fVertexStride(0)
- , fIsPathRendering(isPathRendering) {}
+ , fVertexStride(0) {}
Attribute fAttribs[kMaxVertexAttribs];
int fNumAttribs;
@@ -221,8 +239,6 @@ private:
void notifyRefCntIsZero() const final {};
virtual bool hasExplicitLocalCoords() const = 0;
- bool fIsPathRendering;
-
typedef GrProcessor INHERITED;
};
« no previous file with comments | « src/gpu/GrPathRendererChain.cpp ('k') | src/gpu/GrXferProcessor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698