Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / skia / src / gpu / GrDistanceFieldTextContext.h
index 85d9250..1f07a8a 100644 (file)
@@ -18,48 +18,51 @@ class GrTextStrike;
  */
 class GrDistanceFieldTextContext : public GrTextContext {
 public:
-    GrDistanceFieldTextContext(GrContext*, const SkDeviceProperties&, bool enable);
-    virtual ~GrDistanceFieldTextContext();
+    static GrDistanceFieldTextContext* Create(GrContext*, const SkDeviceProperties&, bool enable);
 
-    virtual void drawText(const GrPaint&, const SkPaint&, const char text[], size_t byteLength,
-                          SkScalar x, SkScalar y) SK_OVERRIDE;
-    virtual void drawPosText(const GrPaint&, const SkPaint&,
-                             const char text[], size_t byteLength,
-                             const SkScalar pos[], SkScalar constY,
-                             int scalarsPerPosition) SK_OVERRIDE;
-
-    virtual bool canDraw(const SkPaint& paint) SK_OVERRIDE;
+    virtual ~GrDistanceFieldTextContext();
 
 private:
+    enum {
+        kMinRequestedGlyphs      = 1,
+        kDefaultRequestedGlyphs  = 64,
+        kMinRequestedVerts       = kMinRequestedGlyphs * 4,
+        kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
+    };
+
     GrTextStrike*                      fStrike;
     SkScalar                           fTextRatio;
     bool                               fUseLCDText;
     bool                               fEnableDFRendering;
     SkAutoTUnref<GrGeometryProcessor>  fCachedGeometryProcessor;
     // Used to check whether fCachedEffect is still valid.
-    uint32_t                fEffectTextureUniqueID;
-    SkColor                 fEffectColor;
-    uint32_t                fEffectFlags;
-    GrTexture*              fGammaTexture;
+    uint32_t                           fEffectTextureUniqueID;
+    SkColor                            fEffectColor;
+    uint32_t                           fEffectFlags;
+    GrTexture*                         fGammaTexture;
+    void*                              fVertices;
+    int                                fCurrVertex;
+    int                                fAllocVertexCount;
+    int                                fTotalVertexCount;
+    GrTexture*                         fCurrTexture;
+    SkRect                             fVertexBounds;
+
+    GrDistanceFieldTextContext(GrContext*, const SkDeviceProperties&, bool enable);
+
+    virtual bool canDraw(const SkPaint& paint) SK_OVERRIDE;
+
+    virtual void onDrawText(const GrPaint&, const SkPaint&, const char text[], size_t byteLength,
+                            SkScalar x, SkScalar y) SK_OVERRIDE;
+    virtual void onDrawPosText(const GrPaint&, const SkPaint&,
+                               const char text[], size_t byteLength,
+                               const SkScalar pos[], int scalarsPerPosition,
+                               const SkPoint& offset) SK_OVERRIDE;
 
     void init(const GrPaint&, const SkPaint&);
-    void drawPackedGlyph(GrGlyph::PackedID, SkFixed left, SkFixed top, GrFontScaler*);
-    void flushGlyphs();                 // automatically called by destructor
+    bool appendGlyph(GrGlyph::PackedID, SkScalar left, SkScalar top, GrFontScaler*);
     void setupCoverageEffect(const SkColor& filteredColor);
+    void flush();                 // automatically called by destructor
     void finish();
-
-    enum {
-        kMinRequestedGlyphs      = 1,
-        kDefaultRequestedGlyphs  = 64,
-        kMinRequestedVerts       = kMinRequestedGlyphs * 4,
-        kDefaultRequestedVerts   = kDefaultRequestedGlyphs * 4,
-    };
-
-    void*                   fVertices;
-    int32_t                 fMaxVertices;
-    GrTexture*              fCurrTexture;
-    int                     fCurrVertex;
-    SkRect                  fVertexBounds;
 };
 
 #endif