| Index: src/gpu/GrAtlasTextBlob.h
|
| diff --git a/src/gpu/GrAtlasTextBlob.h b/src/gpu/GrAtlasTextBlob.h
|
| index 35f642883f3116525c1657a836d5f6165a77cb73..0f995769304864e04eaaddcee790249d7e933136 100644
|
| --- a/src/gpu/GrAtlasTextBlob.h
|
| +++ b/src/gpu/GrAtlasTextBlob.h
|
| @@ -11,12 +11,18 @@
|
| #include "GrBatchAtlas.h"
|
| #include "GrBatchFontCache.h"
|
| #include "GrColor.h"
|
| +#include "GrMemoryPool.h"
|
| #include "SkDescriptor.h"
|
| #include "SkMaskFilter.h"
|
| -#include "GrMemoryPool.h"
|
| #include "SkSurfaceProps.h"
|
| #include "SkTInternalLList.h"
|
|
|
| +struct GrDistanceFieldAdjustTable;
|
| +class GrTextContext;
|
| +class SkDrawFilter;
|
| +class SkTextBlob;
|
| +class SkTextBlobRunIterator;
|
| +
|
| // With this flag enabled, the GrAtlasTextContext will, as a sanity check, regenerate every blob
|
| // that comes in to verify the integrity of its cache
|
| //#define CACHE_SANITY_CHECK // VERY SLOW
|
| @@ -35,7 +41,8 @@
|
| *
|
| * *WARNING* If you add new fields to this struct, then you may need to to update AssertEqual
|
| */
|
| -struct GrAtlasTextBlob : public SkNVRefCnt<GrAtlasTextBlob> {
|
| +class GrAtlasTextBlob : public SkNVRefCnt<GrAtlasTextBlob> {
|
| +public:
|
| SK_DECLARE_INTERNAL_LLIST_INTERFACE(GrAtlasTextBlob);
|
|
|
| /*
|
| @@ -308,6 +315,32 @@ struct GrAtlasTextBlob : public SkNVRefCnt<GrAtlasTextBlob> {
|
| GrColor color, const SkMaskFilter::BlurRec& blurRec,
|
| const SkMatrix& viewMatrix, SkScalar x, SkScalar y);
|
|
|
| + // flush a GrAtlasTextBlob associated with a SkTextBlob
|
| + void flushCached(const SkTextBlob* blob,
|
| + GrContext* context,
|
| + GrDrawContext* dc,
|
| + GrTextContext* textContext,
|
| + const SkSurfaceProps& props,
|
| + const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
| + const SkPaint& skPaint,
|
| + const GrPaint& grPaint,
|
| + SkDrawFilter* drawFilter,
|
| + const GrClip& clip,
|
| + const SkMatrix& viewMatrix,
|
| + const SkIRect& clipBounds,
|
| + SkScalar x, SkScalar y,
|
| + SkScalar transX, SkScalar transY);
|
| +
|
| + // flush a throwaway GrAtlasTextBlob *not* associated with an SkTextBlob
|
| + void flushThrowaway(GrContext* context,
|
| + GrDrawContext* dc,
|
| + const SkSurfaceProps& props,
|
| + const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
| + const SkPaint& skPaint,
|
| + const GrPaint& grPaint,
|
| + const GrClip& clip,
|
| + const SkIRect& clipBounds);
|
| +
|
| // position + local coord
|
| static const size_t kColorTextVASize = sizeof(SkPoint) + sizeof(SkIPoint16);
|
| static const size_t kGrayTextVASize = sizeof(SkPoint) + sizeof(GrColor) + sizeof(SkIPoint16);
|
| @@ -318,9 +351,39 @@ struct GrAtlasTextBlob : public SkNVRefCnt<GrAtlasTextBlob> {
|
| static void AssertEqual(const GrAtlasTextBlob&, const GrAtlasTextBlob&);
|
| size_t fSize;
|
| #endif
|
| +
|
| + // We'd like to inline this and make it private, but there is some test code which calls it.
|
| + // TODO refactor this
|
| + GrDrawBatch* createBatch(const Run::SubRunInfo& info,
|
| + int glyphCount, int run, int subRun,
|
| + GrColor color, SkScalar transX, SkScalar transY,
|
| + const SkPaint& skPaint, const SkSurfaceProps& props,
|
| + const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
| + GrBatchFontCache* cache);
|
| +
|
| private:
|
| void appendLargeGlyph(GrGlyph* glyph, GrFontScaler* scaler, const SkGlyph& skGlyph,
|
| SkScalar x, SkScalar y, SkScalar scale, bool applyVM);
|
| +
|
| + inline void flushRun(GrDrawContext* dc, GrPipelineBuilder* pipelineBuilder,
|
| + int run, GrColor color,
|
| + SkScalar transX, SkScalar transY,
|
| + const SkPaint& skPaint, const SkSurfaceProps& props,
|
| + const GrDistanceFieldAdjustTable* distanceAdjustTable,
|
| + GrBatchFontCache* cache);
|
| +
|
| + void flushBigGlyphs(GrContext* context, GrDrawContext* dc,
|
| + const GrClip& clip, const SkPaint& skPaint,
|
| + SkScalar transX, SkScalar transY,
|
| + const SkIRect& clipBounds);
|
| +
|
| + void flushRunAsPaths(GrDrawContext* dc,
|
| + GrTextContext* textContext,
|
| + const SkSurfaceProps& props,
|
| + const SkTextBlobRunIterator& it,
|
| + const GrClip& clip, const SkPaint& skPaint,
|
| + SkDrawFilter* drawFilter, const SkMatrix& viewMatrix,
|
| + const SkIRect& clipBounds, SkScalar x, SkScalar y);
|
| };
|
|
|
| #endif
|
|
|