2 * Copyright 2014 Google Inc.
3 * Copyright 2015 Xamarin Inc.
4 * Copyright 2017 Microsoft Corporation. All rights reserved.
6 * Use of this source code is governed by a BSD-style license that can be
7 * found in the LICENSE file.
10 #include "SkPicture.h"
11 #include "SkPictureRecorder.h"
13 #include "sk_picture.h"
15 #include "sk_types_priv.h"
17 sk_picture_recorder_t* sk_picture_recorder_new() {
18 return ToPictureRecorder(new SkPictureRecorder);
21 void sk_picture_recorder_delete(sk_picture_recorder_t* crec) {
22 delete AsPictureRecorder(crec);
25 sk_canvas_t* sk_picture_recorder_begin_recording(sk_picture_recorder_t* crec,
26 const sk_rect_t* cbounds) {
27 return ToCanvas(AsPictureRecorder(crec)->beginRecording(AsRect(*cbounds)));
30 sk_picture_t* sk_picture_recorder_end_recording(sk_picture_recorder_t* crec) {
31 return ToPicture(AsPictureRecorder(crec)->finishRecordingAsPicture().release());
34 sk_canvas_t* sk_picture_get_recording_canvas(sk_picture_recorder_t* crec) {
35 return ToCanvas(AsPictureRecorder(crec)->getRecordingCanvas());
38 void sk_picture_ref(sk_picture_t* cpic) {
39 SkSafeRef(AsPicture(cpic));
42 void sk_picture_unref(sk_picture_t* cpic) {
43 SkSafeUnref(AsPicture(cpic));
46 uint32_t sk_picture_get_unique_id(sk_picture_t* cpic) {
47 return AsPicture(cpic)->uniqueID();
50 void sk_picture_get_cull_rect(sk_picture_t* cpic, sk_rect_t* crect) {
52 *crect = ToRect(AsPicture(cpic)->cullRect());