| 1 | /* |
|---|---|
| 2 | * Copyright 2014 Google Inc. |
| 3 | * |
| 4 | * Use of this source code is governed by a BSD-style license that can be |
| 5 | * found in the LICENSE file. |
| 6 | */ |
| 7 | |
| 8 | // EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL EXPERIMENTAL |
| 9 | // DO NOT USE -- FOR INTERNAL TESTING ONLY |
| 10 | |
| 11 | #ifndef sk_picture_DEFINED |
| 12 | #define sk_picture_DEFINED |
| 13 | |
| 14 | #include "include/c/sk_types.h" |
| 15 | |
| 16 | SK_C_PLUS_PLUS_BEGIN_GUARD |
| 17 | |
| 18 | /** |
| 19 | Create a new sk_picture_recorder_t. Its resources should be |
| 20 | released with a call to sk_picture_recorder_delete(). |
| 21 | */ |
| 22 | SK_API sk_picture_recorder_t* sk_picture_recorder_new(void); |
| 23 | /** |
| 24 | Release the memory and other resources used by this |
| 25 | sk_picture_recorder_t. |
| 26 | */ |
| 27 | SK_API void sk_picture_recorder_delete(sk_picture_recorder_t*); |
| 28 | |
| 29 | /** |
| 30 | Returns the canvas that records the drawing commands |
| 31 | |
| 32 | @param sk_rect_t* the cull rect used when recording this |
| 33 | picture. Any drawing the falls outside of this |
| 34 | rect is undefined, and may be drawn or it may not. |
| 35 | */ |
| 36 | SK_API sk_canvas_t* sk_picture_recorder_begin_recording(sk_picture_recorder_t*, const sk_rect_t*); |
| 37 | /** |
| 38 | Signal that the caller is done recording. This invalidates the |
| 39 | canvas returned by begin_recording. Ownership of the sk_picture_t |
| 40 | is passed to the caller, who must call sk_picture_unref() when |
| 41 | they are done using it. The returned picture is immutable. |
| 42 | */ |
| 43 | SK_API sk_picture_t* sk_picture_recorder_end_recording(sk_picture_recorder_t*); |
| 44 | |
| 45 | /** |
| 46 | Increment the reference count on the given sk_picture_t. Must be |
| 47 | balanced by a call to sk_picture_unref(). |
| 48 | */ |
| 49 | SK_API void sk_picture_ref(sk_picture_t*); |
| 50 | /** |
| 51 | Decrement the reference count. If the reference count is 1 before |
| 52 | the decrement, then release both the memory holding the |
| 53 | sk_picture_t and any resouces it may be managing. New |
| 54 | sk_picture_t are created with a reference count of 1. |
| 55 | */ |
| 56 | SK_API void sk_picture_unref(sk_picture_t*); |
| 57 | |
| 58 | /** |
| 59 | Returns a non-zero value unique among all pictures. |
| 60 | */ |
| 61 | SK_API uint32_t sk_picture_get_unique_id(sk_picture_t*); |
| 62 | |
| 63 | /** |
| 64 | Return the cull rect specified when this picture was recorded. |
| 65 | */ |
| 66 | SK_API sk_rect_t sk_picture_get_bounds(sk_picture_t*); |
| 67 | |
| 68 | SK_C_PLUS_PLUS_END_GUARD |
| 69 | |
| 70 | #endif |
| 71 |