blob: 9fdfcd26770adc2e9e62b744356672f60d3c8e4b [file] [log] [blame]
reed@google.com58b21ec2012-07-30 18:20:12 +00001/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkImage_Base_DEFINED
9#define SkImage_Base_DEFINED
10
11#include "SkImage.h"
12
13class SkImage_Base : public SkImage {
14public:
15 SkImage_Base(int width, int height) : INHERITED(width, height) {}
16
robertphillips@google.com97b6b072012-10-31 14:48:39 +000017 virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) = 0;
skia.committer@gmail.com7f1af502013-07-24 07:01:12 +000018 virtual void onDrawRectToRect(SkCanvas*, const SkRect* src,
commit-bot@chromium.orgdfec28d2013-07-23 15:52:16 +000019 const SkRect& dst, const SkPaint*) = 0;
reed@google.com4f7c6152014-02-06 14:11:56 +000020
21 // Default impl calls onDraw
22 virtual bool onReadPixels(SkBitmap*, const SkIRect& subset) const;
23
24 virtual const void* onPeekPixels(SkImageInfo*, size_t* /*rowBytes*/) const {
25 return NULL;
26 }
27
junov@chromium.orgda904742013-05-01 22:38:16 +000028 virtual GrTexture* onGetTexture() { return NULL; }
skia.committer@gmail.com3e50e992013-05-21 07:01:40 +000029
reed@google.com4b0757b2013-05-20 16:33:41 +000030 // return a read-only copy of the pixels. We promise to not modify them,
31 // but only inspect them (or encode them).
32 virtual bool getROPixels(SkBitmap*) const { return false; }
reed@google.com58b21ec2012-07-30 18:20:12 +000033
rmistry@google.comfbfcd562012-08-23 18:09:54 +000034private:
reed@google.com58b21ec2012-07-30 18:20:12 +000035 typedef SkImage INHERITED;
36};
37
38#endif