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.
14 #include "sk_types_priv.h"
16 sk_data_t* sk_data_new_from_file(const char* path) {
17 return ToData(SkData::MakeFromFileName(path).release());
20 sk_data_t* sk_data_new_from_stream(sk_stream_t* stream, size_t length) {
21 return ToData(SkData::MakeFromStream(AsStream(stream), length).release());
24 const uint8_t* sk_data_get_bytes(const sk_data_t* cdata) {
25 return AsData(cdata)->bytes();
28 sk_data_t* sk_data_new_empty() {
29 return ToData(SkData::MakeEmpty().release());
32 sk_data_t* sk_data_new_with_copy(const void* src, size_t length) {
33 return ToData(SkData::MakeWithCopy(src, length).release());
36 sk_data_t* sk_data_new_from_malloc(const void* memory, size_t length) {
37 return ToData(SkData::MakeFromMalloc(memory, length).release());
40 sk_data_t* sk_data_new_subset(const sk_data_t* csrc, size_t offset, size_t length) {
41 return ToData(SkData::MakeSubset(AsData(csrc), offset, length).release());
44 sk_data_t* sk_data_new_with_proc(const void* ptr, size_t length, sk_data_release_proc proc, void* ctx) {
45 return ToData(SkData::MakeWithProc(ptr, length, proc, ctx).release());
48 sk_data_t* sk_data_new_uninitialized(size_t size) {
49 return ToData(SkData::MakeUninitialized(size).release());
52 void sk_data_ref(const sk_data_t* cdata) {
53 SkSafeRef(AsData(cdata));
56 void sk_data_unref(const sk_data_t* cdata) {
57 SkSafeUnref(AsData(cdata));
60 size_t sk_data_get_size(const sk_data_t* cdata) {
61 return AsData(cdata)->size();
64 const void* sk_data_get_data(const sk_data_t* cdata) {
65 return AsData(cdata)->data();