Index: src/gpu/gl/GrGLGpu.h |
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h |
index 63f1247962b0677475c01da0e1fc7dcf3b06a81d..6f194dcd6c4296ebaebb0b1ec5ba86f6329e6d43 100644 |
--- a/src/gpu/gl/GrGLGpu.h |
+++ b/src/gpu/gl/GrGLGpu.h |
@@ -134,6 +134,8 @@ public: |
void drawDebugWireRect(GrRenderTarget*, const SkIRect&, GrColor) override; |
+ void performFlushWorkaround() override; |
+ |
private: |
GrGLGpu(GrGLContext* ctx, GrContext* context); |
@@ -234,6 +236,11 @@ private: |
const SkIRect& srcRect, |
const SkIPoint& dstPoint); |
+ void stampRectUsingProgram(GrGLuint program, const SkRect& bounds, GrGLint posXformUniform, |
+ GrGLuint arrayBuffer); |
+ |
+ void setupPixelLocalStorage(const DrawArgs& args); |
+ |
static bool BlendCoeffReferencesConstant(GrBlendCoeff coeff); |
class ProgramCache : public ::SkNoncopyable { |
@@ -355,6 +362,8 @@ private: |
void createWireRectProgram(); |
void createUnitRectBuffer(); |
+ void createPLSSetupProgram(); |
+ |
// GL program-related state |
ProgramCache* fProgramCache; |
@@ -565,6 +574,15 @@ private: |
} |
} |
+ struct { |
+ GrGLuint fProgram; |
+ GrGLint fPosXformUniform; |
+ GrGLuint fArrayBuffer; |
+ } fPLSSetupProgram; |
+ |
+ bool fHWPLSEnabled; |
+ bool fPLSHasBeenUsed; |
+ |
typedef GrGpu INHERITED; |
friend class GrGLPathRendering; // For accessing setTextureUnit. |
}; |