Exposing the SkBitmap::swap method as this is used.
[platform/upstream/libSkiaSharp.git] / include / c / sk_bitmap.h
1 /*
2  * Copyright 2016 Xamarin 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_bitmap_DEFINED
12 #define sk_bitmap_DEFINED
13
14 #include "sk_types.h"
15
16 SK_C_PLUS_PLUS_BEGIN_GUARD
17
18 SK_C_API void sk_bitmap_destructor(sk_bitmap_t* cbitmap);
19 SK_C_API sk_bitmap_t* sk_bitmap_new(void);
20 SK_C_API void sk_bitmap_get_info(sk_bitmap_t* cbitmap, sk_imageinfo_t* info);
21 SK_C_API void* sk_bitmap_get_pixels(sk_bitmap_t* cbitmap, size_t* length);
22 SK_C_API size_t sk_bitmap_get_row_bytes(sk_bitmap_t* cbitmap);
23 SK_C_API size_t sk_bitmap_get_byte_count(sk_bitmap_t* cbitmap);
24 SK_C_API void sk_bitmap_reset(sk_bitmap_t* cbitmap);
25 SK_C_API bool sk_bitmap_is_null(sk_bitmap_t* cbitmap);
26 SK_C_API bool sk_bitmap_is_immutable(sk_bitmap_t* cbitmap);
27 SK_C_API void sk_bitmap_set_immutable(sk_bitmap_t* cbitmap);
28 SK_C_API bool sk_bitmap_is_volatile(sk_bitmap_t* cbitmap);
29 SK_C_API void sk_bitmap_set_volatile(sk_bitmap_t* cbitmap, bool value);
30 SK_C_API void sk_bitmap_erase(sk_bitmap_t* cbitmap, sk_color_t color);
31 SK_C_API void sk_bitmap_erase_rect(sk_bitmap_t* cbitmap, sk_color_t color, sk_irect_t* rect);
32 SK_C_API uint8_t sk_bitmap_get_addr_8(sk_bitmap_t* cbitmap, int x, int y);
33 SK_C_API uint16_t sk_bitmap_get_addr_16(sk_bitmap_t* cbitmap, int x, int y);
34 SK_C_API uint32_t sk_bitmap_get_addr_32(sk_bitmap_t* cbitmap, int x, int y);
35 SK_C_API void* sk_bitmap_get_addr(sk_bitmap_t* cbitmap, int x, int y);
36 SK_C_API sk_color_t sk_bitmap_get_pixel_color(sk_bitmap_t* cbitmap, int x, int y);
37 SK_C_API sk_pmcolor_t sk_bitmap_get_index8_color(sk_bitmap_t* cbitmap, int x, int y);
38 SK_C_API void sk_bitmap_set_pixel_color(sk_bitmap_t* cbitmap, int x, int y, sk_color_t color);
39 SK_C_API bool sk_bitmap_ready_to_draw(sk_bitmap_t* cbitmap);
40 SK_C_API void sk_bitmap_get_pixel_colors(sk_bitmap_t* cbitmap, sk_color_t* colors);
41 SK_C_API void sk_bitmap_set_pixel_colors(sk_bitmap_t* cbitmap, const sk_color_t* colors);
42 SK_C_API bool sk_bitmap_install_pixels(sk_bitmap_t* cbitmap, const sk_imageinfo_t* cinfo, void* pixels, size_t rowBytes, sk_colortable_t* ctable, const sk_bitmap_release_proc releaseProc, void* context);
43 SK_C_API bool sk_bitmap_install_pixels_with_pixmap(sk_bitmap_t* cbitmap, const sk_pixmap_t* cpixmap);
44 SK_C_API bool sk_bitmap_install_mask_pixels(sk_bitmap_t* cbitmap, const sk_mask_t* cmask);
45 SK_C_API bool sk_bitmap_try_alloc_pixels(sk_bitmap_t* cbitmap, const sk_imageinfo_t* requestedInfo, size_t rowBytes);
46 SK_C_API bool sk_bitmap_try_alloc_pixels_with_color_table(sk_bitmap_t* cbitmap, const sk_imageinfo_t* requestedInfo, sk_colortable_t* ctable, uint32_t flags);
47 SK_C_API sk_colortable_t* sk_bitmap_get_colortable(sk_bitmap_t* cbitmap);
48 SK_C_API void sk_bitmap_set_pixels(sk_bitmap_t* cbitmap, void* pixels, sk_colortable_t* ctable);
49 SK_C_API bool sk_bitmap_peek_pixels(sk_bitmap_t* cbitmap, sk_pixmap_t* cpixmap);
50 SK_C_API bool sk_bitmap_extract_subset(sk_bitmap_t* cbitmap, sk_bitmap_t* dst, sk_irect_t* subset);
51 SK_C_API bool sk_bitmap_extract_alpha(sk_bitmap_t* cbitmap, sk_bitmap_t* dst, const sk_paint_t* paint, sk_ipoint_t* offset);
52 SK_C_API void sk_bitmap_notify_pixels_changed(sk_bitmap_t* cbitmap);
53 SK_C_API void sk_bitmap_swap(sk_bitmap_t* cbitmap, sk_bitmap_t* cother);
54
55 SK_C_PLUS_PLUS_END_GUARD
56
57 #endif