|
1 /* |
|
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 |
|
13 class SkImage_Base : public SkImage { |
|
14 public: |
|
15 SkImage_Base(int width, int height) : INHERITED(width, height) {} |
|
16 |
|
17 virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y, const SkPaint*) = 0; |
|
18 virtual void onDrawRectToRect(SkCanvas*, const SkRect* src, |
|
19 const SkRect& dst, const SkPaint*) = 0; |
|
20 |
|
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 |
|
28 virtual GrTexture* onGetTexture() { return NULL; } |
|
29 |
|
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; } |
|
33 |
|
34 private: |
|
35 typedef SkImage INHERITED; |
|
36 }; |
|
37 |
|
38 #endif |