Chromium Code Reviews| Index: src/gpu/GrTexture.cpp |
| diff --git a/src/gpu/GrTexture.cpp b/src/gpu/GrTexture.cpp |
| index 905455a9ec7030b1ac3d69019927888da320f637..d06459943ced933df440f0990393d2204374af83 100644 |
| --- a/src/gpu/GrTexture.cpp |
| +++ b/src/gpu/GrTexture.cpp |
| @@ -14,11 +14,12 @@ |
| #include "GrRenderTargetPriv.h" |
| #include "GrTexture.h" |
| #include "GrTexturePriv.h" |
| +#include "SkFloatingPoint.h" |
| void GrTexture::dirtyMipMaps(bool mipMapsDirty) { |
| if (mipMapsDirty) { |
| if (kValid_MipMapsStatus == fMipMapsStatus) { |
| - fMipMapsStatus = kAllocated_MipMapsStatus; |
| + fMipMapsStatus = kAllocated_MipMapsStatus; |
| } |
| } else { |
| const bool sizeChanged = kNotAllocated_MipMapsStatus == fMipMapsStatus; |
| @@ -82,8 +83,7 @@ GrSurfaceOrigin resolve_origin(const GrSurfaceDesc& desc) { |
| ////////////////////////////////////////////////////////////////////////////// |
| GrTexture::GrTexture(GrGpu* gpu, LifeCycle lifeCycle, const GrSurfaceDesc& desc) |
| - : INHERITED(gpu, lifeCycle, desc) |
| - , fMipMapsStatus(kNotAllocated_MipMapsStatus) { |
| + : INHERITED(gpu, lifeCycle, desc) { |
| if (!this->isExternal() && !GrPixelConfigIsCompressed(desc.fConfig)) { |
| GrScratchKey key; |
| @@ -93,6 +93,11 @@ GrTexture::GrTexture(GrGpu* gpu, LifeCycle lifeCycle, const GrSurfaceDesc& desc) |
| // only make sense if alloc size is pow2 |
| fShiftFixedX = 31 - SkCLZ(fDesc.fWidth); |
| fShiftFixedY = 31 - SkCLZ(fDesc.fHeight); |
| + if (desc.fIsMipMapped) { |
|
bsalomon
2015/10/28 16:40:44
Shouldn't fMipMapsStatus start as kValid *if* the
cblume
2015/11/09 21:26:32
Done.
|
| + fMipMapsStatus = kAllocated_MipMapsStatus; |
| + } else { |
| + fMipMapsStatus = kNotAllocated_MipMapsStatus; |
| + } |
| } |
| void GrTexturePriv::ComputeScratchKey(const GrSurfaceDesc& desc, GrScratchKey* key) { |
| @@ -101,7 +106,9 @@ void GrTexturePriv::ComputeScratchKey(const GrSurfaceDesc& desc, GrScratchKey* k |
| GrSurfaceOrigin origin = resolve_origin(desc); |
| uint32_t flags = desc.fFlags & ~kCheckAllocation_GrSurfaceFlag; |
| - SkASSERT(static_cast<int>(desc.fConfig) < (1 << 6)); |
| + // make sure desc.fConfig fits in 5 bits |
| + SkASSERT(sk_float_log2(kLast_GrPixelConfig) <= 5); |
| + SkASSERT(static_cast<int>(desc.fConfig) < (1 << 5)); |
| SkASSERT(desc.fSampleCnt < (1 << 8)); |
| SkASSERT(flags < (1 << 10)); |
| SkASSERT(static_cast<int>(origin) < (1 << 8)); |
| @@ -109,5 +116,6 @@ void GrTexturePriv::ComputeScratchKey(const GrSurfaceDesc& desc, GrScratchKey* k |
| GrScratchKey::Builder builder(key, kType, 3); |
| builder[0] = desc.fWidth; |
| builder[1] = desc.fHeight; |
| - builder[2] = desc.fConfig | (desc.fSampleCnt << 6) | (flags << 14) | (origin << 24); |
| + builder[2] = desc.fConfig | desc.fIsMipMapped << 5 | (desc.fSampleCnt << 6) | (flags << 14) |
| + | (origin << 24); |
| } |