| OLD | NEW |
| 1 | |
| 2 /* | 1 /* |
| 3 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 4 * | 3 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 7 */ | 6 */ |
| 8 | 7 |
| 9 #include "GrTextureStripAtlas.h" | 8 #include "GrTextureStripAtlas.h" |
| 10 #include "GrContext.h" | 9 #include "GrContext.h" |
| 11 #include "GrTexture.h" | 10 #include "GrTexture.h" |
| 12 #include "SkGr.h" | 11 #include "SkGr.h" |
| 13 #include "SkPixelRef.h" | 12 #include "SkPixelRef.h" |
| 14 #include "SkTSearch.h" | 13 #include "SkTSearch.h" |
| 15 | 14 |
| 16 #ifdef SK_DEBUG | 15 #ifdef SK_DEBUG |
| 17 #define VALIDATE this->validate() | 16 #define VALIDATE this->validate() |
| 18 #else | 17 #else |
| 19 #define VALIDATE | 18 #define VALIDATE |
| 20 #endif | 19 #endif |
| 21 | 20 |
| 22 class GrTextureStripAtlas::Hash : public SkTDynamicHash<GrTextureStripAtlas::Atl
asEntry, | 21 class GrTextureStripAtlas::Hash : public SkTDynamicHash<GrTextureStripAtlas::Atl
asEntry, |
| 23 GrTextureStripAtlas::Des
c> {}; | 22 GrTextureStripAtlas::Des
c> {}; |
| 24 | 23 |
| 25 int32_t GrTextureStripAtlas::gCacheCount = 0; | 24 int32_t GrTextureStripAtlas::gCacheCount = 0; |
| 26 | 25 |
| 27 GrTextureStripAtlas::Hash* GrTextureStripAtlas::gAtlasCache = nullptr; | 26 GrTextureStripAtlas::Hash* GrTextureStripAtlas::gAtlasCache = nullptr; |
| 28 | 27 |
| 29 GrTextureStripAtlas::Hash* GrTextureStripAtlas::GetCache() { | 28 GrTextureStripAtlas::Hash* GrTextureStripAtlas::GetCache() { |
| 30 | 29 |
| 31 if (nullptr == gAtlasCache) { | 30 if (nullptr == gAtlasCache) { |
| 32 gAtlasCache = new Hash; | 31 gAtlasCache = new Hash; |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 // Front is least-recently-used | 187 // Front is least-recently-used |
| 189 AtlasRow* row = fLRUFront; | 188 AtlasRow* row = fLRUFront; |
| 190 return row; | 189 return row; |
| 191 } | 190 } |
| 192 | 191 |
| 193 void GrTextureStripAtlas::lockTexture() { | 192 void GrTextureStripAtlas::lockTexture() { |
| 194 GrSurfaceDesc texDesc; | 193 GrSurfaceDesc texDesc; |
| 195 texDesc.fWidth = fDesc.fWidth; | 194 texDesc.fWidth = fDesc.fWidth; |
| 196 texDesc.fHeight = fDesc.fHeight; | 195 texDesc.fHeight = fDesc.fHeight; |
| 197 texDesc.fConfig = fDesc.fConfig; | 196 texDesc.fConfig = fDesc.fConfig; |
| 197 texDesc.fIsMipMapped = false; |
| 198 | 198 |
| 199 static const GrUniqueKey::Domain kDomain = GrUniqueKey::GenerateDomain(); | 199 static const GrUniqueKey::Domain kDomain = GrUniqueKey::GenerateDomain(); |
| 200 GrUniqueKey key; | 200 GrUniqueKey key; |
| 201 GrUniqueKey::Builder builder(&key, kDomain, 1); | 201 GrUniqueKey::Builder builder(&key, kDomain, 1); |
| 202 builder[0] = static_cast<uint32_t>(fCacheKey); | 202 builder[0] = static_cast<uint32_t>(fCacheKey); |
| 203 builder.finish(); | 203 builder.finish(); |
| 204 | 204 |
| 205 fTexture = fDesc.fContext->textureProvider()->findAndRefTextureByUniqueKey(k
ey); | 205 fTexture = fDesc.fContext->textureProvider()->findAndRefTextureByUniqueKey(k
ey); |
| 206 if (nullptr == fTexture) { | 206 if (nullptr == fTexture) { |
| 207 fTexture = fDesc.fContext->textureProvider()->createTexture(texDesc, tru
e, nullptr, 0); | 207 fTexture = fDesc.fContext->textureProvider()->createTexture(texDesc, tru
e, nullptr, 0); |
| (...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 | 342 |
| 343 // If we have locked rows, we should have a locked texture, otherwise | 343 // If we have locked rows, we should have a locked texture, otherwise |
| 344 // it should be unlocked | 344 // it should be unlocked |
| 345 if (fLockedRows == 0) { | 345 if (fLockedRows == 0) { |
| 346 SkASSERT(nullptr == fTexture); | 346 SkASSERT(nullptr == fTexture); |
| 347 } else { | 347 } else { |
| 348 SkASSERT(fTexture); | 348 SkASSERT(fTexture); |
| 349 } | 349 } |
| 350 } | 350 } |
| 351 #endif | 351 #endif |
| OLD | NEW |