| Index: src/gpu/GrAtlasTextContext.h
|
| diff --git a/src/gpu/GrAtlasTextContext.h b/src/gpu/GrAtlasTextContext.h
|
| index 86810ff21b6209703a2368b6fb6efffaf7458416..2f4779f03c7aa723ac58b09b54f325ebc119fe6c 100644
|
| --- a/src/gpu/GrAtlasTextContext.h
|
| +++ b/src/gpu/GrAtlasTextContext.h
|
| @@ -13,12 +13,13 @@
|
| #include "GrBatchAtlas.h"
|
| #include "GrGeometryProcessor.h"
|
| #include "SkDescriptor.h"
|
| +#include "GrMemoryPool.h"
|
| #include "SkTextBlob.h"
|
| -#include "SkTDynamicHash.h"
|
| #include "SkTInternalLList.h"
|
|
|
| class GrBatchTextStrike;
|
| class GrPipelineBuilder;
|
| +class GrTextBlobCache;
|
|
|
| /*
|
| * This class implements GrTextContext using standard bitmap fonts, and can also process textblobs.
|
| @@ -28,8 +29,6 @@ class GrAtlasTextContext : public GrTextContext {
|
| public:
|
| static GrAtlasTextContext* Create(GrContext*, SkGpuDevice*, const SkDeviceProperties&);
|
|
|
| - virtual ~GrAtlasTextContext();
|
| -
|
| private:
|
| GrAtlasTextContext(GrContext*, SkGpuDevice*, const SkDeviceProperties&);
|
|
|
| @@ -126,13 +125,13 @@ private:
|
| };
|
|
|
| SkTArray<BigGlyph> fBigGlyphs;
|
| + GrColor fColor; // the original color on the paint
|
| SkMatrix fViewMatrix;
|
| SkScalar fX;
|
| SkScalar fY;
|
| SkPaint::Style fStyle;
|
| int fRunCount;
|
| uint32_t fUniqueID;
|
| - size_t fSize;
|
| GrMemoryPool* fPool;
|
|
|
| // all glyph / vertex offsets are into these pools.
|
| @@ -166,8 +165,6 @@ private:
|
| typedef BitmapTextBlob::Run Run;
|
| typedef Run::SubRunInfo PerSubRunInfo;
|
|
|
| - BitmapTextBlob* CreateBlob(int glyphCount, int runCount, GrMemoryPool*);
|
| -
|
| void appendGlyph(BitmapTextBlob*, int runIndex, GrGlyph::PackedID, int left, int top,
|
| GrColor color, GrFontScaler*, const SkIRect& clipRect);
|
|
|
| @@ -175,14 +172,15 @@ private:
|
| const SkMatrix& viewMatrix, const SkIRect& clipBounds, SkScalar x,
|
| SkScalar y);
|
| inline void flushRun(GrDrawTarget*, GrPipelineBuilder*, BitmapTextBlob*, int run, GrColor,
|
| - uint8_t paintAlpha);
|
| + uint8_t paintAlpha, SkScalar transX, SkScalar transY);
|
| inline void flushBigGlyphs(BitmapTextBlob* cacheBlob, GrRenderTarget* rt,
|
| - const GrPaint& grPaint, const GrClip& clip);
|
| + const GrPaint& grPaint, const GrClip& clip,
|
| + SkScalar transX, SkScalar transY);
|
|
|
| // We have to flush SkTextBlobs differently from drawText / drawPosText
|
| void flush(GrDrawTarget*, const SkTextBlob*, BitmapTextBlob*, GrRenderTarget*, const SkPaint&,
|
| const GrPaint&, SkDrawFilter*, const GrClip&, const SkMatrix& viewMatrix,
|
| - const SkIRect& clipBounds, SkScalar x, SkScalar y);
|
| + const SkIRect& clipBounds, SkScalar x, SkScalar y, SkScalar transX, SkScalar transY);
|
| void flush(GrDrawTarget*, BitmapTextBlob*, GrRenderTarget*, const SkPaint&,
|
| const GrPaint&, const GrClip&, const SkMatrix& viewMatrix);
|
|
|
| @@ -197,18 +195,15 @@ private:
|
|
|
| // sets up the descriptor on the blob and returns a detached cache. Client must attach
|
| inline SkGlyphCache* setupCache(Run*, const SkPaint&, const SkMatrix& viewMatrix);
|
| - static inline bool MustRegenerateBlob(const BitmapTextBlob&, const SkPaint&,
|
| + static inline bool MustRegenerateBlob(SkScalar* outTransX, SkScalar* outTransY,
|
| + const BitmapTextBlob&, const SkPaint&,
|
| const SkMatrix& viewMatrix, SkScalar x, SkScalar y);
|
| void regenerateTextBlob(BitmapTextBlob* bmp, const SkPaint& skPaint, const SkMatrix& viewMatrix,
|
| const SkTextBlob* blob, SkScalar x, SkScalar y,
|
| SkDrawFilter* drawFilter, const SkIRect& clipRect);
|
|
|
| - // TODO this currently only uses the public interface of SkTextBlob, however, I may need to add
|
| - // functionality to it while looping over the runs so I'm putting this here for the time being.
|
| - // If this lands in Chrome without changes, move it to SkTextBlob.
|
| - static inline void BlobGlyphCount(int* glyphCount, int* runCount, const SkTextBlob*);
|
| -
|
| GrBatchTextStrike* fCurrStrike;
|
| + GrTextBlobCache* fCache;
|
|
|
| friend class GrTextBlobCache;
|
| friend class BitmapTextBatch;
|
|
|