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 |