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 // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL | 8 // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL |
9 // DO NOT USE -- FOR INTERNAL TESTING ONLY | 9 // DO NOT USE -- FOR INTERNAL TESTING ONLY |
10 | 10 |
11 #ifndef sk_surface_DEFINED | 11 #ifndef sk_surface_DEFINED |
12 #define sk_surface_DEFINED | 12 #define sk_surface_DEFINED |
13 | 13 |
14 #include "sk_types.h" | 14 #include "sk_types.h" |
15 | 15 |
16 SK_C_PLUS_PLUS_BEGIN_GUARD | 16 SK_C_PLUS_PLUS_BEGIN_GUARD |
17 | 17 |
| 18 /** |
| 19 Return a new surface, with the memory for the pixels automatically |
| 20 allocated. If the requested surface cannot be created, or the |
| 21 request is not a supported configuration, NULL will be returned. |
| 22 |
| 23 @param sk_imageinfo_t* Specify the width, height, color type, and |
| 24 alpha type for the surface. |
| 25 |
| 26 @param sk_surfaceprops_t* If not NULL, specify additional non-default |
| 27 properties of the surface. |
| 28 */ |
18 SK_API sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t*, const sk_surfa
ceprops_t*); | 29 SK_API sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t*, const sk_surfa
ceprops_t*); |
| 30 |
| 31 /** |
| 32 Create a new surface which will draw into the specified pixels |
| 33 with the specified rowbytes. If the requested surface cannot be |
| 34 created, or the request is not a supported configuration, NULL |
| 35 will be returned. |
| 36 |
| 37 @param sk_imageinfo_t* Specify the width, height, color type, and |
| 38 alpha type for the surface. |
| 39 @param void* pixels Specify the location in memory where the |
| 40 destination pixels are. This memory must |
| 41 outlast this surface. |
| 42 @param size_t rowBytes Specify the difference, in bytes, between |
| 43 each adjacent row. Should be at least |
| 44 (width * sizeof(one pixel)). |
| 45 @param sk_surfaceprops_t* If not NULL, specify additional non-default |
| 46 properties of the surface. |
| 47 */ |
19 SK_API sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t*, | 48 SK_API sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t*, |
20 void* pixels, size_t rowBytes, | 49 void* pixels, size_t rowBytes, |
21 const sk_surfaceprops_t* props
); | 50 const sk_surfaceprops_t* props
); |
| 51 |
| 52 /** |
| 53 Decrement the reference count. If the reference count is 1 before |
| 54 the decrement, then release both the memory holding the |
| 55 sk_surface_t and any pixel memory it may be managing. New |
| 56 sk_surface_t are created with a reference count of 1. |
| 57 */ |
22 SK_API void sk_surface_unref(sk_surface_t*); | 58 SK_API void sk_surface_unref(sk_surface_t*); |
23 | 59 |
24 /** | 60 /** |
25 * Return the canvas associated with this surface. Note: the canvas is owned by
the surface, | 61 * Return the canvas associated with this surface. Note: the canvas is owned by
the surface, |
26 * so the returned object is only valid while the owning surface is valid. | 62 * so the returned object is only valid while the owning surface is valid. |
27 */ | 63 */ |
28 SK_API sk_canvas_t* sk_surface_get_canvas(sk_surface_t*); | 64 SK_API sk_canvas_t* sk_surface_get_canvas(sk_surface_t*); |
29 | 65 |
30 /** | 66 /** |
31 * Call sk_image_unref() when the returned image is no longer used. | 67 * Call sk_image_unref() when the returned image is no longer used. |
32 */ | 68 */ |
33 SK_API sk_image_t* sk_surface_new_image_snapshot(sk_surface_t*); | 69 SK_API sk_image_t* sk_surface_new_image_snapshot(sk_surface_t*); |
34 | 70 |
35 SK_C_PLUS_PLUS_END_GUARD | 71 SK_C_PLUS_PLUS_END_GUARD |
36 | 72 |
37 #endif | 73 #endif |
OLD | NEW |