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 2559520203..4e7e4d6e14 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);
@@ -220,6 +222,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 {
@@ -341,6 +348,8 @@ private:
void createWireRectProgram();
void createUnitRectBuffer();
+ void createPLSSetupProgram();
+
// GL program-related state
ProgramCache* fProgramCache;
@@ -551,6 +560,15 @@ private:
}
}
+ struct {
+ GrGLuint fProgram;
+ GrGLint fPosXformUniform;
+ GrGLuint fArrayBuffer;
+ } fPLSSetupProgram;
+
+ bool fHWPLSEnabled;
+ bool fPLSHasBeenUsed;
+
typedef GrGpu INHERITED;
friend class GrGLPathRendering; // For accessing setTextureUnit.
};