OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2006 The Android Open Source Project | 2 * Copyright 2006 The Android Open Source Project |
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 SkCanvas_DEFINED | 8 #ifndef SkCanvas_DEFINED |
9 #define SkCanvas_DEFINED | 9 #define SkCanvas_DEFINED |
10 | 10 |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 * Note: it is valid to request a supported ImageInfo, but with zero | 81 * Note: it is valid to request a supported ImageInfo, but with zero |
82 * dimensions. | 82 * dimensions. |
83 */ | 83 */ |
84 static SkCanvas* NewRaster(const SkImageInfo&); | 84 static SkCanvas* NewRaster(const SkImageInfo&); |
85 | 85 |
86 static SkCanvas* NewRasterN32(int width, int height) { | 86 static SkCanvas* NewRasterN32(int width, int height) { |
87 return NewRaster(SkImageInfo::MakeN32Premul(width, height)); | 87 return NewRaster(SkImageInfo::MakeN32Premul(width, height)); |
88 } | 88 } |
89 | 89 |
90 /** | 90 /** |
| 91 * Attempt to allocate raster canvas, matching the ImageInfo, that will dra
w directly into the |
| 92 * specified pixels. To access the pixels after drawing to them, the caller
should call |
| 93 * flush() or call peekPixels(...). |
| 94 * |
| 95 * On failure, return NULL. This can fail for several reasons: |
| 96 * 1. invalid ImageInfo (e.g. negative dimensions) |
| 97 * 2. unsupported ImageInfo for a canvas |
| 98 * - kUnknown_SkColorType, kIndex_8_SkColorType |
| 99 * - kIgnore_SkAlphaType |
| 100 * - this list is not complete, so others may also be unsupported |
| 101 * |
| 102 * Note: it is valid to request a supported ImageInfo, but with zero |
| 103 * dimensions. |
| 104 */ |
| 105 static SkCanvas* NewRasterDirect(const SkImageInfo&, void*, size_t); |
| 106 |
| 107 static SkCanvas* NewRasterDirectN32(int width, int height, SkPMColor* pixels
, size_t rowBytes) { |
| 108 return NewRasterDirect(SkImageInfo::MakeN32Premul(width, height), pixels
, rowBytes); |
| 109 } |
| 110 |
| 111 /** |
91 * Creates an empty canvas with no backing device/pixels, and zero | 112 * Creates an empty canvas with no backing device/pixels, and zero |
92 * dimensions. | 113 * dimensions. |
93 */ | 114 */ |
94 SkCanvas(); | 115 SkCanvas(); |
95 | 116 |
96 /** | 117 /** |
97 * Creates a canvas of the specified dimensions, but explicitly not backed | 118 * Creates a canvas of the specified dimensions, but explicitly not backed |
98 * by any device/pixels. Typically this use used by subclasses who handle | 119 * by any device/pixels. Typically this use used by subclasses who handle |
99 * the draw calls in some other way. | 120 * the draw calls in some other way. |
100 */ | 121 */ |
(...skipping 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1465 bool asROBitmap(SkBitmap*) const; | 1486 bool asROBitmap(SkBitmap*) const; |
1466 | 1487 |
1467 private: | 1488 private: |
1468 SkBitmap fBitmap; // used if peekPixels() fails | 1489 SkBitmap fBitmap; // used if peekPixels() fails |
1469 const void* fAddr; // NULL on failure | 1490 const void* fAddr; // NULL on failure |
1470 SkImageInfo fInfo; | 1491 SkImageInfo fInfo; |
1471 size_t fRowBytes; | 1492 size_t fRowBytes; |
1472 }; | 1493 }; |
1473 | 1494 |
1474 #endif | 1495 #endif |
OLD | NEW |