1 /* 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_types_DEFINED 12 #define sk_types_DEFINED 13 14 #include <stdint.h> 15 #include <stddef.h> 16 17 #ifdef __cplusplus 18 #define SK_C_PLUS_PLUS_BEGIN_GUARD extern "C" { 19 #define SK_C_PLUS_PLUS_END_GUARD } 20 #else 21 #include <stdbool.h> 22 #define SK_C_PLUS_PLUS_BEGIN_GUARD 23 #define SK_C_PLUS_PLUS_END_GUARD 24 #endif 25 26 /////////////////////////////////////////////////////////////////////////////////////// 27 28 SK_C_PLUS_PLUS_BEGIN_GUARD 29 30 typedef uint32_t sk_color_t; 31 32 #define sk_color_set_argb(a, r, g, b) (((a) << 24) | ((r) << 16) | ((g) << 8) | (b)) 33 #define sk_color_get_a(c) (((c) >> 24) & 0xFF) 34 #define sk_color_get_r(c) (((c) >> 16) & 0xFF) 35 #define sk_color_get_g(c) (((c) >> 8) & 0xFF) 36 #define sk_color_get_b(c) (((c) >> 0) & 0xFF) 37 38 typedef enum { 39 UNKNOWN_SK_COLORTYPE, 40 RGBA_8888_SK_COLORTYPE, 41 BGRA_8888_SK_COLORTYPE, 42 ALPHA_8_SK_COLORTYPE, 43 } sk_colortype_t; 44 45 typedef enum { 46 OPAQUE_SK_ALPHATYPE, 47 PREMUL_SK_ALPHATYPE, 48 UNPREMUL_SK_ALPHATYPE, 49 } sk_alphatype_t; 50 51 typedef enum { 52 INTERSECT_SK_CLIPTYPE, 53 DIFFERENCE_SK_CLIPTYPE, 54 } sk_cliptype_t; 55 56 sk_colortype_t sk_colortype_get_default_8888(); 57 58 typedef struct { 59 int32_t width; 60 int32_t height; 61 sk_colortype_t colorType; 62 sk_alphatype_t alphaType; 63 } sk_imageinfo_t; 64 65 typedef struct { 66 float x; 67 float y; 68 } sk_point_t; 69 70 typedef struct { 71 float left; 72 float top; 73 float right; 74 float bottom; 75 } sk_rect_t; 76 77 typedef struct { 78 float mat[9]; 79 } sk_matrix_t; 80 81 typedef struct sk_canvas_t sk_canvas_t; 82 typedef struct sk_data_t sk_data_t; 83 typedef struct sk_image_t sk_image_t; 84 typedef struct sk_maskfilter_t sk_maskfilter_t; 85 typedef struct sk_paint_t sk_paint_t; 86 typedef struct sk_path_t sk_path_t; 87 typedef struct sk_picture_t sk_picture_t; 88 typedef struct sk_picture_recorder_t sk_picture_recorder_t; 89 typedef struct sk_shader_t sk_shader_t; 90 typedef struct sk_surface_t sk_surface_t; 91 92 ////////////////////////////////////////////////////////////////////////////////////////// 93 94 #ifdef __cplusplus 95 class SkCanvas; 96 void sk_test_capi(SkCanvas*); 97 #endif 98 99 SK_C_PLUS_PLUS_END_GUARD 100 101 #endif 102