OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #ifndef SkGatherPixelRefsAndRects_DEFINED | 8 #ifndef SkGatherPixelRefsAndRects_DEFINED |
9 #define SkGatherPixelRefsAndRects_DEFINED | 9 #define SkGatherPixelRefsAndRects_DEFINED |
10 | 10 |
(...skipping 10 matching lines...) Expand all Loading... |
21 // device bounds to the user provided SkPixelRefContainer-derived object | 21 // device bounds to the user provided SkPixelRefContainer-derived object |
22 class SkGatherPixelRefsAndRectsDevice : public SkBaseDevice { | 22 class SkGatherPixelRefsAndRectsDevice : public SkBaseDevice { |
23 public: | 23 public: |
24 SK_DECLARE_INST_COUNT(SkGatherPixelRefsAndRectsDevice) | 24 SK_DECLARE_INST_COUNT(SkGatherPixelRefsAndRectsDevice) |
25 | 25 |
26 SkGatherPixelRefsAndRectsDevice(int width, int height, | 26 SkGatherPixelRefsAndRectsDevice(int width, int height, |
27 SkPictureUtils::SkPixelRefContainer* prCont)
{ | 27 SkPictureUtils::SkPixelRefContainer* prCont)
{ |
28 fSize.set(width, height); | 28 fSize.set(width, height); |
29 fPRCont = prCont; | 29 fPRCont = prCont; |
30 SkSafeRef(fPRCont); | 30 SkSafeRef(fPRCont); |
31 fEmptyBitmap.setConfig(SkBitmap::kNo_Config, width, height); | 31 fEmptyBitmap.setConfig(SkImageInfo::Make(width, height, |
| 32 kUnknown_SkColorType, |
| 33 kIgnore_SkAlphaType)); |
32 } | 34 } |
33 | 35 |
34 virtual ~SkGatherPixelRefsAndRectsDevice() { | 36 virtual ~SkGatherPixelRefsAndRectsDevice() { |
35 SkSafeUnref(fPRCont); | 37 SkSafeUnref(fPRCont); |
36 } | 38 } |
37 | 39 |
38 virtual uint32_t getDeviceCapabilities() SK_OVERRIDE { return 0; } | 40 virtual uint32_t getDeviceCapabilities() SK_OVERRIDE { return 0; } |
39 | 41 |
40 virtual int width() const SK_OVERRIDE { return fSize.width(); } | 42 virtual int width() const SK_OVERRIDE { return fSize.width(); } |
41 virtual int height() const SK_OVERRIDE { return fSize.height(); } | 43 virtual int height() const SK_OVERRIDE { return fSize.height(); } |
42 virtual bool isOpaque() const SK_OVERRIDE { return false; } | 44 virtual bool isOpaque() const SK_OVERRIDE { return false; } |
43 virtual SkBitmap::Config config() const SK_OVERRIDE { | 45 virtual SkBitmap::Config config() const SK_OVERRIDE { |
44 return SkBitmap::kNo_Config; | 46 return SkBitmap::kNo_Config; |
45 } | 47 } |
| 48 virtual SkImageInfo imageInfo() const SK_OVERRIDE { |
| 49 return fEmptyBitmap.info(); |
| 50 } |
| 51 |
46 virtual void writePixels(const SkBitmap& bitmap, int x, int y, | 52 virtual void writePixels(const SkBitmap& bitmap, int x, int y, |
47 SkCanvas::Config8888 config8888) SK_OVERRIDE { | 53 SkCanvas::Config8888 config8888) SK_OVERRIDE { |
48 NotSupported(); | 54 NotSupported(); |
49 } | 55 } |
50 virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE { return NULL; } | 56 virtual GrRenderTarget* accessRenderTarget() SK_OVERRIDE { return NULL; } |
51 | 57 |
52 protected: | 58 protected: |
53 virtual bool filterTextFlags(const SkPaint& paint, TextFlags*) SK_OVERRIDE { | 59 virtual bool filterTextFlags(const SkPaint& paint, TextFlags*) SK_OVERRIDE { |
54 return false; | 60 return false; |
55 } | 61 } |
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 return SkShader::kNone_BitmapType != shader->asABitmap(bitmap, N
ULL, NULL); | 325 return SkShader::kNone_BitmapType != shader->asABitmap(bitmap, N
ULL, NULL); |
320 } | 326 } |
321 } | 327 } |
322 return false; | 328 return false; |
323 } | 329 } |
324 | 330 |
325 virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRI
DE { | 331 virtual void replaceBitmapBackendForRasterSurface(const SkBitmap&) SK_OVERRI
DE { |
326 NotSupported(); | 332 NotSupported(); |
327 } | 333 } |
328 | 334 |
329 virtual SkBaseDevice* onCreateCompatibleDevice(SkBitmap::Config config, | 335 virtual SkBaseDevice* onCreateDevice(const SkImageInfo& info, Usage usage) S
K_OVERRIDE { |
330 int width, int height, | |
331 bool isOpaque, | |
332 Usage usage) SK_OVERRIDE { | |
333 // we expect to only get called via savelayer, in which case it is fine. | 336 // we expect to only get called via savelayer, in which case it is fine. |
334 SkASSERT(kSaveLayer_Usage == usage); | 337 SkASSERT(kSaveLayer_Usage == usage); |
335 return SkNEW_ARGS(SkGatherPixelRefsAndRectsDevice, (width, height, fPRCo
nt)); | 338 return SkNEW_ARGS(SkGatherPixelRefsAndRectsDevice, |
| 339 (info.width(), info.height(), fPRCont)); |
336 } | 340 } |
337 | 341 |
338 virtual void flush() SK_OVERRIDE {} | 342 virtual void flush() SK_OVERRIDE {} |
339 | 343 |
340 static void NotSupported() { | 344 static void NotSupported() { |
341 SkDEBUGFAIL("this method should never be called"); | 345 SkDEBUGFAIL("this method should never be called"); |
342 } | 346 } |
343 | 347 |
344 static void NothingToDo() {} | 348 static void NothingToDo() {} |
345 | 349 |
346 typedef SkBaseDevice INHERITED; | 350 typedef SkBaseDevice INHERITED; |
347 }; | 351 }; |
348 | 352 |
349 #endif // SkGatherPixelRefsAndRects_DEFINED | 353 #endif // SkGatherPixelRefsAndRects_DEFINED |
OLD | NEW |