| Index: src/core/SkBitmapProcShader.h
|
| diff --git a/src/core/SkBitmapProcShader.h b/src/core/SkBitmapProcShader.h
|
| index 9f4c16202c0047c13f6fc7a94e9de3ad879e0e9d..a83fda762868826c75ba3f185cf5e59978ba340d 100644
|
| --- a/src/core/SkBitmapProcShader.h
|
| +++ b/src/core/SkBitmapProcShader.h
|
| @@ -21,7 +21,9 @@ public:
|
|
|
| bool isOpaque() const override;
|
|
|
| - size_t contextSize(const ContextRec& rec) const override { return ContextSize(rec); }
|
| + size_t contextSize(const ContextRec& rec) const override {
|
| + return ContextSize(rec, fRawBitmap.info());
|
| + }
|
|
|
| SK_TO_STRING_OVERRIDE()
|
| SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkBitmapProcShader)
|
| @@ -36,13 +38,13 @@ protected:
|
| Context* onCreateContext(const ContextRec&, void* storage) const override;
|
| bool onIsABitmap(SkBitmap*, SkMatrix*, TileMode*) const override;
|
|
|
| - SkBitmap fRawBitmap; // experimental for RLE encoding
|
| + SkBitmap fRawBitmap;
|
| uint8_t fTileModeX, fTileModeY;
|
|
|
| private:
|
| friend class SkImageShader;
|
|
|
| - static size_t ContextSize(const ContextRec&);
|
| + static size_t ContextSize(const ContextRec&, const SkImageInfo& srcInfo);
|
| static Context* MakeContext(const SkShader&, TileMode tmx, TileMode tmy,
|
| const SkBitmapProvider&, const ContextRec&, void* storage);
|
|
|
| @@ -54,7 +56,7 @@ private:
|
| // an Sk3DBlitter in SkDraw.cpp
|
| // Note that some contexts may contain other contexts (e.g. for compose shaders), but we've not
|
| // yet found a situation where the size below isn't big enough.
|
| -typedef SkSmallAllocator<3, 1500> SkTBlitterAllocator;
|
| +typedef SkSmallAllocator<3, 2100> SkTBlitterAllocator;
|
|
|
| // If alloc is non-nullptr, it will be used to allocate the returned SkShader, and MUST outlive
|
| // the SkShader.
|
|
|