| Index: src/core/SkMipMap.h
|
| diff --git a/src/core/SkMipMap.h b/src/core/SkMipMap.h
|
| index a230a23392a831caf5b39baea09d075dc57ca2e1..1f9b74e4376525ba1a10ce70e8ad1beda72438e2 100644
|
| --- a/src/core/SkMipMap.h
|
| +++ b/src/core/SkMipMap.h
|
| @@ -12,6 +12,7 @@
|
| #include "SkPixmap.h"
|
| #include "SkScalar.h"
|
| #include "SkSize.h"
|
| +#include "SkShader.h"
|
|
|
| class SkBitmap;
|
| class SkDiscardableMemory;
|
| @@ -20,8 +21,13 @@ typedef SkDiscardableMemory* (*SkDiscardableFactoryProc)(size_t bytes);
|
|
|
| class SkMipMap : public SkCachedData {
|
| public:
|
| - static SkMipMap* Build(const SkPixmap& src, SkDiscardableFactoryProc);
|
| - static SkMipMap* Build(const SkBitmap& src, SkDiscardableFactoryProc);
|
| + static SkMipMap* Build(const SkPixmap& src, SkSourceGammaTreatment, SkDiscardableFactoryProc);
|
| + static SkMipMap* Build(const SkBitmap& src, SkSourceGammaTreatment, SkDiscardableFactoryProc);
|
| +
|
| + static SkSourceGammaTreatment DeduceTreatment(const SkShader::ContextRec& rec) {
|
| + return (SkShader::ContextRec::kPMColor_DstType == rec.fPreferredDstType) ?
|
| + SkSourceGammaTreatment::kIgnore : SkSourceGammaTreatment::kRespect;
|
| + }
|
|
|
| // Determines how many levels a SkMipMap will have without creating that mipmap.
|
| static int ComputeLevelCount(int baseWidth, int baseHeight);
|
| @@ -44,10 +50,10 @@ protected:
|
| }
|
|
|
| private:
|
| - Level* fLevels;
|
| - int fCount;
|
| + sk_sp<SkColorSpace> fCS;
|
| + Level* fLevels; // managed by the baseclass, may be null due to onDataChanged.
|
| + int fCount;
|
|
|
| - // we take ownership of levels, and will free it with sk_free()
|
| SkMipMap(void* malloc, size_t size) : INHERITED(malloc, size) {}
|
| SkMipMap(size_t size, SkDiscardableMemory* dm) : INHERITED(size, dm) {}
|
|
|
|
|