diff options
Diffstat (limited to 'src/core/SkBitmapController.h')
-rw-r--r-- | src/core/SkBitmapController.h | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/src/core/SkBitmapController.h b/src/core/SkBitmapController.h index 394a7cfd1a..2ac6c8c9d7 100644 --- a/src/core/SkBitmapController.h +++ b/src/core/SkBitmapController.h @@ -12,6 +12,7 @@ #include "SkBitmapCache.h" #include "SkFilterQuality.h" #include "SkMatrix.h" +#include "SkMipMap.h" class SkBitmapProvider; @@ -22,42 +23,31 @@ class SkBitmapController : ::SkNoncopyable { public: class State : ::SkNoncopyable { public: - virtual ~State() {} + State(const SkBitmapProvider&, const SkMatrix& inv, SkFilterQuality); const SkPixmap& pixmap() const { return fPixmap; } const SkMatrix& invMatrix() const { return fInvMatrix; } SkFilterQuality quality() const { return fQuality; } - protected: - SkPixmap fPixmap; - SkMatrix fInvMatrix; - SkFilterQuality fQuality; - private: - friend class SkBitmapController; - }; + bool processHighRequest(const SkBitmapProvider&); + bool processMediumRequest(const SkBitmapProvider&); - virtual ~SkBitmapController() {} + SkPixmap fPixmap; + SkMatrix fInvMatrix; + SkFilterQuality fQuality; - State* requestBitmap(const SkBitmapProvider&, const SkMatrix& inverse, SkFilterQuality, - SkArenaAlloc*); - -protected: - virtual State* onRequestBitmap(const SkBitmapProvider&, const SkMatrix& inv, SkFilterQuality, - SkArenaAlloc*) = 0; -}; + // Pixmap storage. + SkBitmap fResultBitmap; + sk_sp<const SkMipMap> fCurrMip; -/////////////////////////////////////////////////////////////////////////////////////////////////// - -#include "SkMipMap.h" + }; -class SkDefaultBitmapController : public SkBitmapController { -public: - SkDefaultBitmapController() {} + static State* RequestBitmap(const SkBitmapProvider&, const SkMatrix& inverse, SkFilterQuality, + SkArenaAlloc*); -protected: - State* onRequestBitmap(const SkBitmapProvider&, const SkMatrix& inverse, SkFilterQuality, - SkArenaAlloc*) override; +private: + SkBitmapController() = delete; }; #endif |