| Index: src/gpu/GrTexture.cpp
|
| diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp
|
| index 8651d1090ec96529f08d19008f7eb8ae008e8fa7..20cd597fc4b034d2c0a459fdcf682976e94a92ac 100644
|
| --- a/src/gpu/GrTexture.cpp
|
| +++ b/src/gpu/GrTexture.cpp
|
| @@ -62,6 +62,25 @@ size_t GrTexture::gpuMemorySize() const {
|
| size_t textureSize = (size_t) fDesc.fWidth *
|
| fDesc.fHeight *
|
| GrBytesPerPixel(fDesc.fConfig);
|
| +
|
| + if (GrPixelConfigIsCompressed(fDesc.fConfig)) {
|
| + // Figure out the width and height corresponding to the data...
|
| +
|
| + // Both of the available formats (ETC1 and LATC) have 4x4
|
| + // blocks that compress down to 8 bytes.
|
| + switch(fDesc.fConfig) {
|
| + case kETC1_GrPixelConfig:
|
| + case kLATC_GrPixelConfig:
|
| + SkASSERT((fDesc.fWidth & 3) == 0);
|
| + SkASSERT((fDesc.fHeight & 3) == 0);
|
| + textureSize = (fDesc.fWidth >> 2) * (fDesc.fHeight >> 2) * 8;
|
| + break;
|
| +
|
| + default:
|
| + SkFAIL("Unknown compressed config");
|
| + }
|
| + }
|
| +
|
| if (this->impl()->hasMipMaps()) {
|
| // We don't have to worry about the mipmaps being a different size than
|
| // we'd expect because we never change fDesc.fWidth/fHeight.
|
|
|