aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/gl/GrGpuGL.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/gl/GrGpuGL.h')
-rw-r--r--src/gpu/gl/GrGpuGL.h23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/gpu/gl/GrGpuGL.h b/src/gpu/gl/GrGpuGL.h
index 6220efafe4..2d6aa68120 100644
--- a/src/gpu/gl/GrGpuGL.h
+++ b/src/gpu/gl/GrGpuGL.h
@@ -98,7 +98,6 @@ protected:
virtual void onResolveRenderTarget(GrRenderTarget* target) SK_OVERRIDE;
-
virtual void onGpuDrawIndexed(GrPrimitiveType type,
uint32_t startVertex,
uint32_t startIndex,
@@ -107,7 +106,12 @@ protected:
virtual void onGpuDrawNonIndexed(GrPrimitiveType type,
uint32_t vertexCount,
uint32_t numVertices) SK_OVERRIDE;
- virtual void onGpuStencilPath(const GrPath&, GrPathFill) SK_OVERRIDE;
+
+ virtual void setStencilPathSettings(const GrPath&,
+ GrPathFill,
+ GrStencilSettings* settings)
+ SK_OVERRIDE;
+ virtual void onGpuStencilPath(const GrPath*, GrPathFill) SK_OVERRIDE;
virtual void clearStencil() SK_OVERRIDE;
virtual void clearStencilClip(const GrIRect& rect,
@@ -220,7 +224,7 @@ private:
void flushCoverage(GrColor color);
// sets the MVP matrix uniform for currently bound program
- void flushViewMatrix();
+ void flushViewMatrix(DrawType type);
// flushes the parameters to two point radial gradient
void flushRadial2(int stage);
@@ -268,8 +272,8 @@ private:
// bound is region that may be modified and therefore has to be resolved.
// NULL means whole target. Can be an empty rect.
void flushRenderTarget(const GrIRect* bound);
- void flushStencil();
- void flushAAState(bool isLines);
+ void flushStencil(DrawType);
+ void flushAAState(DrawType);
bool configToGLFormats(GrPixelConfig config,
bool getSizedInternal,
@@ -360,6 +364,15 @@ private:
}
} fHWAAState;
+ struct {
+ GrMatrix fViewMatrix;
+ SkISize fRTSize;
+ void invalidate() {
+ fViewMatrix = GrMatrix::InvalidMatrix();
+ fRTSize.fWidth = -1; // just make the first value compared illegal.
+ }
+ } fHWPathMatrixState;
+
GrStencilSettings fHWStencilSettings;
TriState fHWStencilTestEnabled;