Index: src/gpu/gl/GrGpuGL.h |
diff --git a/src/gpu/gl/GrGpuGL.h b/src/gpu/gl/GrGpuGL.h |
index b39aedb82417f273e552c7adf53dbf463eb207ab..40104f8825e069f6511b53ff65f35978b4f6a9ef 100644 |
--- a/src/gpu/gl/GrGpuGL.h |
+++ b/src/gpu/gl/GrGpuGL.h |
@@ -12,6 +12,7 @@ |
#include "GrGLContext.h" |
#include "GrGLIRect.h" |
#include "GrGLIndexBuffer.h" |
+#include "GrGLPathRendering.h" |
#include "GrGLProgram.h" |
#include "GrGLStencilBuffer.h" |
#include "GrGLTexture.h" |
@@ -24,8 +25,6 @@ |
#define PROGRAM_CACHE_STATS |
#endif |
-class GrGLPathRendering; |
- |
class GrGpuGL : public GrGpu { |
public: |
GrGpuGL(const GrGLContext& ctx, GrContext* context); |
@@ -40,9 +39,9 @@ public: |
GrGLSLGeneration glslGeneration() const { return fGLContext.glslGeneration(); } |
const GrGLCaps& glCaps() const { return *fGLContext.caps(); } |
- GrGLPathRendering* pathRendering() const { |
+ GrGLPathRendering* glPathRendering() { |
SkASSERT(glCaps().pathRenderingSupport()); |
- return fPathRendering.get(); |
+ return static_cast<GrGLPathRendering*>(pathRendering()); |
} |
virtual void discard(GrRenderTarget*) SK_OVERRIDE; |
@@ -50,17 +49,7 @@ public: |
// Used by GrGLProgram and GrGLPathTexGenProgramEffects to configure OpenGL |
// state. |
void bindTexture(int unitIdx, const GrTextureParams& params, GrGLTexture* texture); |
- void setProjectionMatrix(const SkMatrix& matrix, |
- const SkISize& renderTargetSize, |
- GrSurfaceOrigin renderTargetOrigin); |
- enum PathTexGenComponents { |
- kS_PathTexGenComponents = 1, |
- kST_PathTexGenComponents = 2, |
- kSTR_PathTexGenComponents = 3 |
- }; |
- void enablePathTexGen(int unitIdx, PathTexGenComponents, const GrGLfloat* coefficients); |
- void enablePathTexGen(int unitIdx, PathTexGenComponents, const SkMatrix& matrix); |
- void flushPathTexGenSettings(int numUsedTexCoordSets); |
+ |
bool shouldUseFixedFunctionTexturing() const { |
return this->glCaps().pathRenderingSupport(); |
} |
@@ -131,8 +120,6 @@ private: |
const void* srcData) SK_OVERRIDE; |
virtual GrVertexBuffer* onCreateVertexBuffer(size_t size, bool dynamic) SK_OVERRIDE; |
virtual GrIndexBuffer* onCreateIndexBuffer(size_t size, bool dynamic) SK_OVERRIDE; |
- virtual GrPath* onCreatePath(const SkPath&, const SkStrokeRec&) SK_OVERRIDE; |
- virtual GrPathRange* onCreatePathRange(size_t size, const SkStrokeRec&) SK_OVERRIDE; |
virtual GrTexture* onWrapBackendTexture(const GrBackendTextureDesc&) SK_OVERRIDE; |
virtual GrRenderTarget* onWrapBackendRenderTarget(const GrBackendRenderTargetDesc&) SK_OVERRIDE; |
virtual bool createStencilBufferForRenderTarget(GrRenderTarget* rt, |
@@ -160,12 +147,6 @@ private: |
virtual void onGpuDraw(const DrawInfo&) SK_OVERRIDE; |
- virtual void onGpuStencilPath(const GrPath*, SkPath::FillType) SK_OVERRIDE; |
- virtual void onGpuDrawPath(const GrPath*, SkPath::FillType) SK_OVERRIDE; |
- virtual void onGpuDrawPaths(const GrPathRange*, |
- const uint32_t indices[], int count, |
- const float transforms[], PathTransformType, |
- SkPath::FillType) SK_OVERRIDE; |
virtual void clearStencil() SK_OVERRIDE; |
virtual void clearStencilClip(const SkIRect& rect, |
@@ -257,7 +238,6 @@ private: |
void flushRenderTarget(const SkIRect* bound); |
void flushStencil(DrawType); |
void flushAAState(DrawType); |
- void flushPathStencilSettings(SkPath::FillType fill); |
bool configToGLFormats(GrPixelConfig config, |
bool getSizedInternal, |
@@ -445,11 +425,9 @@ private: |
TriState fMSAAEnabled; |
- GrGLProgram::MatrixState fHWProjectionMatrixState; |
- |
GrStencilSettings fHWStencilSettings; |
TriState fHWStencilTestEnabled; |
- GrStencilSettings fHWPathStencilSettings; |
+ |
GrDrawState::DrawFace fHWDrawFace; |
TriState fHWWriteToColor; |
@@ -457,22 +435,14 @@ private: |
uint32_t fHWBoundRenderTargetUniqueID; |
SkTArray<uint32_t, true> fHWBoundTextureUniqueIDs; |
- struct PathTexGenData { |
- GrGLenum fMode; |
- GrGLint fNumComponents; |
- GrGLfloat fCoefficients[3 * 3]; |
- }; |
- int fHWActivePathTexGenSets; |
- SkTArray<PathTexGenData, true> fHWPathTexGenSettings; |
///@} |
// we record what stencil format worked last time to hopefully exit early |
// from our loop that tries stencil formats and calls check fb status. |
int fLastSuccessfulStencilFmtIdx; |
- SkAutoTDelete<GrGLPathRendering> fPathRendering; |
- |
typedef GrGpu INHERITED; |
+ friend class GrGLPathRendering; // For accessing setTextureUnit. |
}; |
#endif |