OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 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 SkSurface_DEFINED | 8 #ifndef SkSurface_DEFINED |
9 #define SkSurface_DEFINED | 9 #define SkSurface_DEFINED |
10 | 10 |
(...skipping 17 matching lines...) Expand all Loading... |
28 public: | 28 public: |
29 SK_DECLARE_INST_COUNT(SkSurface) | 29 SK_DECLARE_INST_COUNT(SkSurface) |
30 | 30 |
31 /** | 31 /** |
32 * Create a new surface, using the specified pixels/rowbytes as its | 32 * Create a new surface, using the specified pixels/rowbytes as its |
33 * backend. | 33 * backend. |
34 * | 34 * |
35 * If the requested surface cannot be created, or the request is not a | 35 * If the requested surface cannot be created, or the request is not a |
36 * supported configuration, NULL will be returned. | 36 * supported configuration, NULL will be returned. |
37 */ | 37 */ |
38 static SkSurface* NewRasterDirect(const SkImage::Info&, void* pixels, size_t
rowBytes); | 38 static SkSurface* NewRasterDirect(const SkImageInfo&, void* pixels, size_t r
owBytes); |
39 | 39 |
40 /** | 40 /** |
41 * Return a new surface, with the memory for the pixels automatically | 41 * Return a new surface, with the memory for the pixels automatically |
42 * allocated. | 42 * allocated. |
43 * | 43 * |
44 * If the requested surface cannot be created, or the request is not a | 44 * If the requested surface cannot be created, or the request is not a |
45 * supported configuration, NULL will be returned. | 45 * supported configuration, NULL will be returned. |
46 */ | 46 */ |
47 static SkSurface* NewRaster(const SkImage::Info&); | 47 static SkSurface* NewRaster(const SkImageInfo&); |
48 | 48 |
49 /** | 49 /** |
50 * Helper version of NewRaster. It creates a SkImage::Info with the | 50 * Helper version of NewRaster. It creates a SkImageInfo with the |
51 * specified width and height, and populates the rest of info to match | 51 * specified width and height, and populates the rest of info to match |
52 * pixels in SkPMColor format. | 52 * pixels in SkPMColor format. |
53 */ | 53 */ |
54 static SkSurface* NewRasterPMColor(int width, int height) { | 54 static SkSurface* NewRasterPMColor(int width, int height) { |
55 SkImage::Info info = { | 55 SkImageInfo info = { |
56 width, height, SkImage::kPMColor_ColorType, kPremul_SkAlphaType | 56 width, height, kPMColor_SkColorType, kPremul_SkAlphaType |
57 }; | 57 }; |
58 return NewRaster(info); | 58 return NewRaster(info); |
59 } | 59 } |
60 | 60 |
61 /** | 61 /** |
62 * Return a new surface whose contents will be recorded into a picture. | 62 * Return a new surface whose contents will be recorded into a picture. |
63 * When this surface is drawn into another canvas, its contents will be | 63 * When this surface is drawn into another canvas, its contents will be |
64 * "replayed" into that canvas. | 64 * "replayed" into that canvas. |
65 */ | 65 */ |
66 static SkSurface* NewPicture(int width, int height); | 66 static SkSurface* NewPicture(int width, int height); |
67 | 67 |
68 /** | 68 /** |
69 * Return a new surface using the specified render target. | 69 * Return a new surface using the specified render target. |
70 */ | 70 */ |
71 static SkSurface* NewRenderTargetDirect(GrContext*, GrRenderTarget*); | 71 static SkSurface* NewRenderTargetDirect(GrContext*, GrRenderTarget*); |
72 | 72 |
73 /** | 73 /** |
74 * Return a new surface whose contents will be drawn to an offscreen | 74 * Return a new surface whose contents will be drawn to an offscreen |
75 * render target, allocated by the surface. | 75 * render target, allocated by the surface. |
76 */ | 76 */ |
77 static SkSurface* NewRenderTarget(GrContext*, const SkImage::Info&, int samp
leCount = 0); | 77 static SkSurface* NewRenderTarget(GrContext*, const SkImageInfo&, int sample
Count = 0); |
78 | 78 |
79 int width() const { return fWidth; } | 79 int width() const { return fWidth; } |
80 int height() const { return fHeight; } | 80 int height() const { return fHeight; } |
81 | 81 |
82 /** | 82 /** |
83 * Returns a unique non-zero, unique value identifying the content of this | 83 * Returns a unique non-zero, unique value identifying the content of this |
84 * surface. Each time the content is changed changed, either by drawing | 84 * surface. Each time the content is changed changed, either by drawing |
85 * into this surface, or explicitly calling notifyContentChanged()) this | 85 * into this surface, or explicitly calling notifyContentChanged()) this |
86 * method will return a new value. | 86 * method will return a new value. |
87 * | 87 * |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
126 * pattern: | 126 * pattern: |
127 * | 127 * |
128 * SkSurface* A = SkSurface::New...(); | 128 * SkSurface* A = SkSurface::New...(); |
129 * SkCanvas* canvasA = surfaceA->newCanvas(); | 129 * SkCanvas* canvasA = surfaceA->newCanvas(); |
130 * ... | 130 * ... |
131 * SkSurface* surfaceB = surfaceA->newSurface(...); | 131 * SkSurface* surfaceB = surfaceA->newSurface(...); |
132 * SkCanvas* canvasB = surfaceB->newCanvas(); | 132 * SkCanvas* canvasB = surfaceB->newCanvas(); |
133 * ... // draw using canvasB | 133 * ... // draw using canvasB |
134 * canvasA->drawSurface(surfaceB); // <--- this will always be optimal! | 134 * canvasA->drawSurface(surfaceB); // <--- this will always be optimal! |
135 */ | 135 */ |
136 SkSurface* newSurface(const SkImage::Info&); | 136 SkSurface* newSurface(const SkImageInfo&); |
137 | 137 |
138 /** | 138 /** |
139 * Returns an image of the current state of the surface pixels up to this | 139 * Returns an image of the current state of the surface pixels up to this |
140 * point. Subsequent changes to the surface (by drawing into its canvas) | 140 * point. Subsequent changes to the surface (by drawing into its canvas) |
141 * will not be reflected in this image. | 141 * will not be reflected in this image. |
142 */ | 142 */ |
143 SkImage* newImageSnapshot(); | 143 SkImage* newImageSnapshot(); |
144 | 144 |
145 /** | 145 /** |
146 * Thought the caller could get a snapshot image explicitly, and draw that, | 146 * Thought the caller could get a snapshot image explicitly, and draw that, |
(...skipping 14 matching lines...) Expand all Loading... |
161 | 161 |
162 private: | 162 private: |
163 const int fWidth; | 163 const int fWidth; |
164 const int fHeight; | 164 const int fHeight; |
165 uint32_t fGenerationID; | 165 uint32_t fGenerationID; |
166 | 166 |
167 typedef SkRefCnt INHERITED; | 167 typedef SkRefCnt INHERITED; |
168 }; | 168 }; |
169 | 169 |
170 #endif | 170 #endif |
OLD | NEW |