aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGLGpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/gl/GrGLGpu.h')
-rw-r--r--src/gpu/gl/GrGLGpu.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/gpu/gl/GrGLGpu.h b/src/gpu/gl/GrGLGpu.h
index 63f1247962..6f194dcd6c 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.
};