| Index: src/gpu/GrStencilAndCoverTextContext.h
|
| diff --git a/src/gpu/GrStencilAndCoverTextContext.h b/src/gpu/GrStencilAndCoverTextContext.h
|
| deleted file mode 100644
|
| index dab71e057859f798ca3258ce390055d1aee57fad..0000000000000000000000000000000000000000
|
| --- a/src/gpu/GrStencilAndCoverTextContext.h
|
| +++ /dev/null
|
| @@ -1,145 +0,0 @@
|
| -/*
|
| - * Copyright 2014 Google Inc.
|
| - *
|
| - * Use of this source code is governed by a BSD-style license that can be
|
| - * found in the LICENSE file.
|
| - */
|
| -
|
| -#ifndef GrStencilAndCoverTextContext_DEFINED
|
| -#define GrStencilAndCoverTextContext_DEFINED
|
| -
|
| -#include "GrTextContext.h"
|
| -#include "GrDrawTarget.h"
|
| -#include "GrStrokeInfo.h"
|
| -#include "SkTHash.h"
|
| -#include "SkTInternalLList.h"
|
| -#include "SkTLList.h"
|
| -#include "batches/GrDrawPathBatch.h"
|
| -
|
| -class GrTextStrike;
|
| -class GrPath;
|
| -class SkSurfaceProps;
|
| -
|
| -/*
|
| - * This class implements text rendering using stencil and cover path rendering
|
| - * (by the means of GrDrawTarget::drawPath).
|
| - * This class exposes the functionality through GrTextContext interface.
|
| - */
|
| -class GrStencilAndCoverTextContext : public GrTextContext {
|
| -public:
|
| - static GrStencilAndCoverTextContext* Create(GrContext*, const SkSurfaceProps&);
|
| -
|
| - virtual ~GrStencilAndCoverTextContext();
|
| -
|
| -private:
|
| - GrStencilAndCoverTextContext(GrContext*, const SkSurfaceProps&);
|
| -
|
| - bool canDraw(const SkPaint& skPaint, const SkMatrix&) override {
|
| - return this->internalCanDraw(skPaint);
|
| - }
|
| -
|
| - bool internalCanDraw(const SkPaint&);
|
| -
|
| - void onDrawText(GrDrawContext*, const GrClip&, const GrPaint&, const SkPaint&,
|
| - const SkMatrix& viewMatrix,
|
| - const char text[], size_t byteLength,
|
| - SkScalar x, SkScalar y, const SkIRect& clipBounds) override;
|
| - void onDrawPosText(GrDrawContext*,
|
| - const GrClip&, const GrPaint&, const SkPaint&,
|
| - const SkMatrix& viewMatrix,
|
| - const char text[], size_t byteLength,
|
| - const SkScalar pos[], int scalarsPerPosition,
|
| - const SkPoint& offset, const SkIRect& clipBounds) override;
|
| - void drawTextBlob(GrDrawContext*, const GrClip&, const SkPaint&,
|
| - const SkMatrix& viewMatrix, const SkTextBlob*, SkScalar x, SkScalar y,
|
| - SkDrawFilter*, const SkIRect& clipBounds) override;
|
| -
|
| - class FallbackBlobBuilder;
|
| -
|
| - class TextRun {
|
| - public:
|
| - TextRun(const SkPaint& fontAndStroke);
|
| - ~TextRun();
|
| -
|
| - void setText(const char text[], size_t byteLength, SkScalar x, SkScalar y);
|
| -
|
| - void setPosText(const char text[], size_t byteLength, const SkScalar pos[],
|
| - int scalarsPerPosition, const SkPoint& offset);
|
| -
|
| - void draw(GrContext*, GrDrawContext*, GrPipelineBuilder*, GrColor, const SkMatrix&,
|
| - SkScalar x, SkScalar y, const SkIRect& clipBounds,
|
| - GrTextContext* fallbackTextContext, const SkPaint& originalSkPaint) const;
|
| -
|
| - void releaseGlyphCache() const;
|
| -
|
| - size_t computeSizeInCache() const;
|
| -
|
| - private:
|
| - typedef GrDrawPathRangeBatch::InstanceData InstanceData;
|
| -
|
| - SkGlyphCache* getGlyphCache() const;
|
| - GrPathRange* createGlyphs(GrContext*) const;
|
| - void appendGlyph(const SkGlyph&, const SkPoint&, FallbackBlobBuilder*);
|
| -
|
| - GrStrokeInfo fStroke;
|
| - SkPaint fFont;
|
| - SkScalar fTextRatio;
|
| - float fTextInverseRatio;
|
| - bool fUsingRawGlyphPaths;
|
| - GrUniqueKey fGlyphPathsKey;
|
| - int fTotalGlyphCount;
|
| - SkAutoTUnref<InstanceData> fInstanceData;
|
| - int fFallbackGlyphCount;
|
| - SkAutoTUnref<const SkTextBlob> fFallbackTextBlob;
|
| - mutable SkGlyphCache* fDetachedGlyphCache;
|
| - mutable uint32_t fLastDrawnGlyphsID;
|
| - };
|
| -
|
| - // Text blobs/caches.
|
| -
|
| - class TextBlob : public SkTLList<TextRun, 1> {
|
| - public:
|
| - typedef SkTArray<uint32_t, true> Key;
|
| -
|
| - static const Key& GetKey(const TextBlob* blob) { return blob->key(); }
|
| -
|
| - static uint32_t Hash(const Key& key) {
|
| - SkASSERT(key.count() > 1); // 1-length keys should be using the blob-id hash map.
|
| - return SkChecksum::Murmur3(key.begin(), sizeof(uint32_t) * key.count());
|
| - }
|
| -
|
| - TextBlob(uint32_t blobId, const SkTextBlob* skBlob, const SkPaint& skPaint)
|
| - : fKey(&blobId, 1) { this->init(skBlob, skPaint); }
|
| -
|
| - TextBlob(const Key& key, const SkTextBlob* skBlob, const SkPaint& skPaint)
|
| - : fKey(key) {
|
| - // 1-length keys are unterstood to be the blob id and must use the other constructor.
|
| - SkASSERT(fKey.count() > 1);
|
| - this->init(skBlob, skPaint);
|
| - }
|
| -
|
| - const Key& key() const { return fKey; }
|
| -
|
| - size_t cpuMemorySize() const { return fCpuMemorySize; }
|
| -
|
| - private:
|
| - void init(const SkTextBlob*, const SkPaint&);
|
| -
|
| - const SkSTArray<1, uint32_t, true> fKey;
|
| - size_t fCpuMemorySize;
|
| -
|
| - SK_DECLARE_INTERNAL_LLIST_INTERFACE(TextBlob);
|
| - };
|
| -
|
| - const TextBlob& findOrCreateTextBlob(const SkTextBlob*, const SkPaint&);
|
| - void purgeToFit(const TextBlob&);
|
| -
|
| - SkTHashMap<uint32_t, TextBlob*> fBlobIdCache;
|
| - SkTHashTable<TextBlob*, const TextBlob::Key&, TextBlob> fBlobKeyCache;
|
| - SkTInternalLList<TextBlob> fLRUList;
|
| - size_t fCacheSize;
|
| -
|
| - typedef GrTextContext INHERITED;
|
| -};
|
| -
|
| -#endif
|
|
|