2 * Copyright 2012 Google Inc.
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
8 #ifndef SkImage_Base_DEFINED
9 #define SkImage_Base_DEFINED
13 class SkImage_Base : public SkImage {
15 SkImage_Base(int width, int height) : INHERITED(width, height) {}
17 virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) const = 0;
18 virtual void onDrawRect(SkCanvas*, const SkRect* src,
19 const SkRect& dst, const SkPaint*) const = 0;
21 // Default impl calls onDraw
22 virtual bool onReadPixels(SkBitmap*, const SkIRect& subset) const;
24 virtual const void* onPeekPixels(SkImageInfo*, size_t* /*rowBytes*/) const {
28 virtual GrTexture* onGetTexture() const { return NULL; }
30 // 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; }
34 virtual SkShader* onNewShader(SkShader::TileMode,
36 const SkMatrix* localMatrix) const { return NULL; };
38 typedef SkImage INHERITED;