aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkBitmapController.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/SkBitmapController.h')
-rw-r--r--src/core/SkBitmapController.h40
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