Index: src/gpu/GrTextStrike.h |
diff --git a/src/gpu/GrTextStrike.h b/src/gpu/GrTextStrike.h |
deleted file mode 100644 |
index 09d7323179543950840c1f937e342fcc4dc9c2f0..0000000000000000000000000000000000000000 |
--- a/src/gpu/GrTextStrike.h |
+++ /dev/null |
@@ -1,139 +0,0 @@ |
- |
-/* |
- * Copyright 2010 Google Inc. |
- * |
- * Use of this source code is governed by a BSD-style license that can be |
- * found in the LICENSE file. |
- */ |
- |
- |
- |
-#ifndef GrTextStrike_DEFINED |
-#define GrTextStrike_DEFINED |
- |
-#include "GrAtlas.h" |
-#include "GrDrawTarget.h" |
-#include "GrFontScaler.h" |
-#include "GrGlyph.h" |
-#include "SkTDynamicHash.h" |
-#include "SkVarAlloc.h" |
- |
-class GrFontCache; |
-class GrGpu; |
-class GrFontPurgeListener; |
- |
-/** |
- * The textstrike maps a hostfontscaler instance to a dictionary of |
- * glyphid->strike |
- */ |
-class GrTextStrike { |
-public: |
- GrTextStrike(GrFontCache*, const GrFontDescKey* fontScalerKey); |
- ~GrTextStrike(); |
- |
- const GrFontDescKey* getFontScalerKey() const { return fFontScalerKey; } |
- GrFontCache* getFontCache() const { return fFontCache; } |
- |
- inline GrGlyph* getGlyph(GrGlyph::PackedID, GrFontScaler*); |
- // returns true if glyph (or glyph+padding for distance field) |
- // is too large to ever fit in texture atlas subregions (GrPlots) |
- bool glyphTooLargeForAtlas(GrGlyph*); |
- // returns true if glyph successfully added to texture atlas, false otherwise |
- bool addGlyphToAtlas(GrGlyph*, GrFontScaler*); |
- |
- // testing |
- int countGlyphs() const { return fCache.count(); } |
- |
- // remove any references to this plot |
- void removePlot(const GrPlot* plot); |
- |
- static const GrFontDescKey& GetKey(const GrTextStrike& ts) { |
- return *(ts.fFontScalerKey); |
- } |
- static uint32_t Hash(const GrFontDescKey& key) { |
- return key.getHash(); |
- } |
- |
-public: |
- // for easy removal from list |
- GrTextStrike* fPrev; |
- GrTextStrike* fNext; |
- |
-private: |
- SkTDynamicHash<GrGlyph, GrGlyph::PackedID> fCache; |
- const GrFontDescKey* fFontScalerKey; |
- SkVarAlloc fPool; |
- |
- GrFontCache* fFontCache; |
- bool fUseDistanceField; |
- |
- GrAtlas::ClientPlotUsage fPlotUsage; |
- |
- GrGlyph* generateGlyph(GrGlyph::PackedID packed, GrFontScaler* scaler); |
- |
- friend class GrFontCache; |
-}; |
- |
-class GrFontCache { |
-public: |
- GrFontCache(GrGpu*); |
- ~GrFontCache(); |
- |
- inline GrTextStrike* getStrike(GrFontScaler*, bool useDistanceField); |
- |
- // add to texture atlas that matches this format |
- GrPlot* addToAtlas(GrMaskFormat format, GrAtlas::ClientPlotUsage* usage, |
- int width, int height, const void* image, |
- SkIPoint16* loc); |
- |
- void freeAll(); |
- |
- // make an unused plot available for this glyph |
- bool freeUnusedPlot(GrTextStrike* preserveStrike, const GrGlyph* glyph); |
- |
- // testing |
- int countStrikes() const { return fCache.count(); } |
- GrTextStrike* getHeadStrike() const { return fHead; } |
- |
- void updateTextures() { |
- for (int i = 0; i < kAtlasCount; ++i) { |
- if (fAtlases[i]) { |
- fAtlases[i]->uploadPlotsToTexture(); |
- } |
- } |
- } |
- |
-#ifdef SK_DEBUG |
- void validate() const; |
-#else |
- void validate() const {} |
-#endif |
- |
- void dump() const; |
- |
- enum AtlasType { |
- kA8_AtlasType, //!< 1-byte per pixel |
- k565_AtlasType, //!< 2-bytes per pixel |
- k8888_AtlasType, //!< 4-bytes per pixel |
- |
- kLast_AtlasType = k8888_AtlasType |
- }; |
- static const int kAtlasCount = kLast_AtlasType + 1; |
- |
-private: |
- friend class GrFontPurgeListener; |
- |
- SkTDynamicHash<GrTextStrike, GrFontDescKey> fCache; |
- // for LRU |
- GrTextStrike* fHead; |
- GrTextStrike* fTail; |
- |
- GrGpu* fGpu; |
- GrAtlas* fAtlases[kAtlasCount]; |
- |
- GrTextStrike* generateStrike(GrFontScaler*); |
- inline void detachStrikeFromList(GrTextStrike*); |
- void purgeStrike(GrTextStrike* strike); |
-}; |
- |
-#endif |