Added C API for SkData::MakeWithProc
authorMatthew Leibowitz <mattleibow@live.com>
Fri, 24 Feb 2017 09:02:19 +0000 (11:02 +0200)
committerMatthew Leibowitz <mattleibow@live.com>
Fri, 24 Feb 2017 09:02:19 +0000 (11:02 +0200)
include/c/sk_data.h
include/c/sk_types.h
src/c/sk_data.cpp

index 59a7971..95a66ed 100644 (file)
@@ -79,6 +79,8 @@ SK_C_API sk_data_t* sk_data_new_from_stream(sk_stream_t* stream, size_t length);
 */
 SK_C_API const uint8_t* sk_data_get_bytes(const sk_data_t*);
 
+SK_C_API sk_data_t* sk_data_new_with_proc(const void* ptr, size_t length, sk_data_release_proc proc, void* ctx);
+
 SK_C_PLUS_PLUS_END_GUARD
 
 #endif
index a8a8cae..44feeee 100644 (file)
@@ -726,6 +726,8 @@ typedef enum {
 
 typedef void (*sk_bitmap_release_proc)(void* addr, void* context);
 
+typedef void (*sk_data_release_proc)(const void* ptr, void* context);
+
 typedef void (*sk_image_raster_release_proc)(const void* addr, void* context);
 typedef void (*sk_image_texture_release_proc)(void* context);
 
index e6acc69..497a7b1 100644 (file)
@@ -39,6 +39,10 @@ sk_data_t* sk_data_new_subset(const sk_data_t* csrc, size_t offset, size_t lengt
     return ToData(SkData::MakeSubset(AsData(csrc), offset, length).release());
 }
 
+sk_data_t* sk_data_new_with_proc(const void* ptr, size_t length, sk_data_release_proc proc, void* ctx) {
+    return ToData(SkData::MakeWithProc(ptr, length, proc, ctx).release());
+}
+
 void sk_data_ref(const sk_data_t* cdata) {
     SkSafeRef(AsData(cdata));
 }