Chromium Code Reviews| Index: src/gpu/GrPath.cpp |
| diff --git a/src/gpu/GrPath.cpp b/src/gpu/GrPath.cpp |
| index eb956fbf658e77574dec939d65f198e61ce90f21..a989be09676b01201ba9866e193be46c2082ef72 100644 |
| --- a/src/gpu/GrPath.cpp |
| +++ b/src/gpu/GrPath.cpp |
| @@ -13,15 +13,17 @@ template<int NumBits> static uint64_t get_top_n_float_bits(float f) { |
| return floatBits >> (32 - NumBits); |
| } |
| -GrResourceKey GrPath::ComputeKey(const SkPath& path, const SkStrokeRec& stroke) { |
| - static const GrCacheID::Domain gPathDomain = GrCacheID::GenerateDomain(); |
| +void GrPath::ComputeKey(const SkPath& path, const SkStrokeRec& stroke, GrContentKey* key) { |
| + static const GrContentKey::Domain kDomain = GrContentKey::GenerateDomain(); |
| - GrCacheID::Key key; |
| - uint64_t* keyData = key.fData64; |
| - keyData[0] = path.getGenerationID(); |
| - keyData[1] = ComputeStrokeKey(stroke); |
| - |
| - return GrResourceKey(GrCacheID(gPathDomain, key), 0); |
| + GrContentKey::Builder builder(key, kDomain, 3); |
|
robertphillips
2015/01/22 16:49:12
Add assert that this is tightly packed ?
bsalomon
2015/01/22 19:23:17
killed it
|
| + struct PathKey { |
| + uint32_t fGenID; |
| + uint64_t fStroke; |
| + }; |
| + PathKey *pathKey = reinterpret_cast<PathKey*>(&builder[0]); |
| + pathKey->fGenID = path.getGenerationID(); |
| + pathKey->fStroke = ComputeStrokeKey(stroke); |
| } |
| uint64_t GrPath::ComputeStrokeKey(const SkStrokeRec& stroke) { |