| Index: src/gpu/GrAADistanceFieldPathRenderer.h
|
| diff --git a/src/gpu/GrAADistanceFieldPathRenderer.h b/src/gpu/GrAADistanceFieldPathRenderer.h
|
| index 40430bbd2ff47a403eda93881f2dd8c380d19748..10f0ebab93bb90065febf8ced2503504c94e4f64 100755
|
| --- a/src/gpu/GrAADistanceFieldPathRenderer.h
|
| +++ b/src/gpu/GrAADistanceFieldPathRenderer.h
|
| @@ -41,18 +41,27 @@ protected:
|
|
|
| private:
|
| struct PathData {
|
| - uint32_t fGenID;
|
| + struct Key {
|
| + uint32_t fGenID;
|
| + // rendered size for stored path (32x32 max, 64x64 max, 128x128 max)
|
| + uint32_t fDimension;
|
| + bool operator==(const Key& other) const {
|
| + return other.fGenID == fGenID && other.fDimension == fDimension;
|
| + }
|
| + };
|
| + Key fKey;
|
| + SkScalar fScale;
|
| GrPlot* fPlot;
|
| SkRect fBounds;
|
| SkIPoint16 fAtlasLocation;
|
| SK_DECLARE_INTERNAL_LLIST_INTERFACE(PathData);
|
|
|
| - static inline const uint32_t& GetKey(const PathData& data) {
|
| - return data.fGenID;
|
| + static inline const Key& GetKey(const PathData& data) {
|
| + return data.fKey;
|
| }
|
|
|
| - static inline uint32_t Hash(uint32_t key) {
|
| - return SkChecksum::Murmur3(&key, sizeof(key));
|
| + static inline uint32_t Hash(Key key) {
|
| + return SkChecksum::Murmur3(reinterpret_cast<const uint32_t*>(&key), sizeof(key));
|
| }
|
| };
|
| typedef SkTInternalLList<PathData> PathDataList;
|
| @@ -63,11 +72,12 @@ private:
|
| // current set of flags used to create the cached geometry processor
|
| uint32_t fEffectFlags;
|
| GrAtlas::ClientPlotUsage fPlotUsage;
|
| - SkTDynamicHash<PathData, uint32_t> fPathCache;
|
| + SkTDynamicHash<PathData, PathData::Key> fPathCache;
|
| PathDataList fPathList;
|
|
|
| bool internalDrawPath(const SkPath& path, const PathData* pathData, GrDrawTarget* target);
|
| - PathData* addPathToAtlas(const SkPath& path, const SkStrokeRec& stroke, bool antiAlias);
|
| + PathData* addPathToAtlas(const SkPath& path, const SkStrokeRec& stroke, bool antiAlias,
|
| + uint32_t dimension, SkScalar scale);
|
| bool freeUnusedPlot();
|
|
|
| typedef GrPathRenderer INHERITED;
|
|
|