| /* |
| * Copyright 2014 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL |
| // DO NOT USE -- FOR INTERNAL TESTING ONLY |
| |
| #ifndef sk_surface_DEFINED |
| #define sk_surface_DEFINED |
| |
| #include "sk_types.h" |
| |
| SK_C_PLUS_PLUS_BEGIN_GUARD |
| |
| /** |
| Return a new surface, with the memory for the pixels automatically |
| allocated. If the requested surface cannot be created, or the |
| request is not a supported configuration, NULL will be returned. |
| |
| @param sk_imageinfo_t* Specify the width, height, color type, and |
| alpha type for the surface. |
| |
| @param sk_surfaceprops_t* If not NULL, specify additional non-default |
| properties of the surface. |
| */ |
| SK_API sk_surface_t* sk_surface_new_raster(const sk_imageinfo_t*, const sk_surfaceprops_t*); |
| |
| /** |
| Create a new surface which will draw into the specified pixels |
| with the specified rowbytes. If the requested surface cannot be |
| created, or the request is not a supported configuration, NULL |
| will be returned. |
| |
| @param sk_imageinfo_t* Specify the width, height, color type, and |
| alpha type for the surface. |
| @param void* pixels Specify the location in memory where the |
| destination pixels are. This memory must |
| outlast this surface. |
| @param size_t rowBytes Specify the difference, in bytes, between |
| each adjacent row. Should be at least |
| (width * sizeof(one pixel)). |
| @param sk_surfaceprops_t* If not NULL, specify additional non-default |
| properties of the surface. |
| */ |
| SK_API sk_surface_t* sk_surface_new_raster_direct(const sk_imageinfo_t*, |
| void* pixels, size_t rowBytes, |
| const sk_surfaceprops_t* props); |
| |
| /** |
| Decrement the reference count. If the reference count is 1 before |
| the decrement, then release both the memory holding the |
| sk_surface_t and any pixel memory it may be managing. New |
| sk_surface_t are created with a reference count of 1. |
| */ |
| SK_API void sk_surface_unref(sk_surface_t*); |
| |
| /** |
| * Return the canvas associated with this surface. Note: the canvas is owned by the surface, |
| * so the returned object is only valid while the owning surface is valid. |
| */ |
| SK_API sk_canvas_t* sk_surface_get_canvas(sk_surface_t*); |
| |
| /** |
| * Call sk_image_unref() when the returned image is no longer used. |
| */ |
| SK_API sk_image_t* sk_surface_new_image_snapshot(sk_surface_t*); |
| |
| SK_C_PLUS_PLUS_END_GUARD |
| |
| #endif |