reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 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 "sk_types.h" |
| 15 | |
| 16 | SK_C_PLUS_PLUS_BEGIN_GUARD |
| 17 | |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 18 | /** |
| 19 | Create a new sk_picture_recorder_t. Its resources should be |
| 20 | released with a call to sk_picture_recorder_delete(). |
| 21 | */ |
Brian Salomon | 7551898 | 2016-12-28 15:56:16 -0500 | [diff] [blame] | 22 | sk_picture_recorder_t* sk_picture_recorder_new(void); |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 23 | /** |
| 24 | Release the memory and other resources used by this |
| 25 | sk_picture_recorder_t. |
| 26 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 27 | void sk_picture_recorder_delete(sk_picture_recorder_t*); |
| 28 | |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 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 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 36 | sk_canvas_t* sk_picture_recorder_begin_recording(sk_picture_recorder_t*, const sk_rect_t*); |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 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 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 43 | sk_picture_t* sk_picture_recorder_end_recording(sk_picture_recorder_t*); |
| 44 | |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 45 | /** |
| 46 | Increment the reference count on the given sk_picture_t. Must be |
| 47 | balanced by a call to sk_picture_unref(). |
| 48 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 49 | void sk_picture_ref(sk_picture_t*); |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 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 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 56 | void sk_picture_unref(sk_picture_t*); |
| 57 | |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 58 | /** |
| 59 | Returns a non-zero value unique among all pictures. |
| 60 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 61 | uint32_t sk_picture_get_unique_id(sk_picture_t*); |
halcanary | c911906 | 2015-09-01 10:45:09 -0700 | [diff] [blame] | 62 | |
| 63 | /** |
| 64 | Return the cull rect specified when this picture was recorded. |
| 65 | */ |
reed | e371989 | 2014-12-22 17:46:00 -0800 | [diff] [blame] | 66 | sk_rect_t sk_picture_get_bounds(sk_picture_t*); |
| 67 | |
| 68 | SK_C_PLUS_PLUS_END_GUARD |
| 69 | |
| 70 | #endif |