blob: 338b7d906ac8d75dfd8467bcd699e61806a7c8fc [file] [log] [blame]
reede3719892014-12-22 17:46:00 -08001/*
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
16SK_C_PLUS_PLUS_BEGIN_GUARD
17
halcanaryc9119062015-09-01 10:45:09 -070018/**
19 Create a new sk_picture_recorder_t. Its resources should be
20 released with a call to sk_picture_recorder_delete().
21*/
reede3719892014-12-22 17:46:00 -080022sk_picture_recorder_t* sk_picture_recorder_new();
halcanaryc9119062015-09-01 10:45:09 -070023/**
24 Release the memory and other resources used by this
25 sk_picture_recorder_t.
26*/
reede3719892014-12-22 17:46:00 -080027void sk_picture_recorder_delete(sk_picture_recorder_t*);
28
halcanaryc9119062015-09-01 10:45:09 -070029/**
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*/
reede3719892014-12-22 17:46:00 -080036sk_canvas_t* sk_picture_recorder_begin_recording(sk_picture_recorder_t*, const sk_rect_t*);
halcanaryc9119062015-09-01 10:45:09 -070037/**
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*/
reede3719892014-12-22 17:46:00 -080043sk_picture_t* sk_picture_recorder_end_recording(sk_picture_recorder_t*);
44
halcanaryc9119062015-09-01 10:45:09 -070045/**
46 Increment the reference count on the given sk_picture_t. Must be
47 balanced by a call to sk_picture_unref().
48*/
reede3719892014-12-22 17:46:00 -080049void sk_picture_ref(sk_picture_t*);
halcanaryc9119062015-09-01 10:45:09 -070050/**
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*/
reede3719892014-12-22 17:46:00 -080056void sk_picture_unref(sk_picture_t*);
57
halcanaryc9119062015-09-01 10:45:09 -070058/**
59 Returns a non-zero value unique among all pictures.
60 */
reede3719892014-12-22 17:46:00 -080061uint32_t sk_picture_get_unique_id(sk_picture_t*);
halcanaryc9119062015-09-01 10:45:09 -070062
63/**
64 Return the cull rect specified when this picture was recorded.
65*/
reede3719892014-12-22 17:46:00 -080066sk_rect_t sk_picture_get_bounds(sk_picture_t*);
67
68SK_C_PLUS_PLUS_END_GUARD
69
70#endif