blob: dc530f374b78f248162c84c8c1d037fb10a278df [file] [log] [blame]
reed73c25012014-11-17 06:15:42 -08001/*
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
28SK_C_PLUS_PLUS_BEGIN_GUARD
29
30typedef 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
38typedef 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
45typedef enum {
46 OPAQUE_SK_ALPHATYPE,
47 PREMUL_SK_ALPHATYPE,
48 UNPREMUL_SK_ALPHATYPE,
49} sk_alphatype_t;
50
reede3719892014-12-22 17:46:00 -080051typedef enum {
52 INTERSECT_SK_CLIPTYPE,
53 DIFFERENCE_SK_CLIPTYPE,
54} sk_cliptype_t;
55
reed73c25012014-11-17 06:15:42 -080056sk_colortype_t sk_colortype_get_default_8888();
57
58typedef struct {
59 int32_t width;
60 int32_t height;
61 sk_colortype_t colorType;
62 sk_alphatype_t alphaType;
63} sk_imageinfo_t;
64
65typedef struct {
reedafa278e2014-11-24 19:11:48 -080066 float x;
67 float y;
68} sk_point_t;
69
70typedef struct {
reed73c25012014-11-17 06:15:42 -080071 float left;
72 float top;
73 float right;
74 float bottom;
75} sk_rect_t;
76
reedafa278e2014-11-24 19:11:48 -080077typedef struct {
78 float mat[9];
79} sk_matrix_t;
80
reed73c25012014-11-17 06:15:42 -080081typedef struct sk_canvas_t sk_canvas_t;
reedb2a5d7e2014-12-25 14:16:21 -080082typedef struct sk_data_t sk_data_t;
reed73c25012014-11-17 06:15:42 -080083typedef struct sk_image_t sk_image_t;
reed0eafc9b2014-12-23 14:11:11 -080084typedef struct sk_maskfilter_t sk_maskfilter_t;
reed73c25012014-11-17 06:15:42 -080085typedef struct sk_paint_t sk_paint_t;
reedb2a5d7e2014-12-25 14:16:21 -080086typedef struct sk_path_t sk_path_t;
reede3719892014-12-22 17:46:00 -080087typedef struct sk_picture_t sk_picture_t;
88typedef struct sk_picture_recorder_t sk_picture_recorder_t;
reedafa278e2014-11-24 19:11:48 -080089typedef struct sk_shader_t sk_shader_t;
reed73c25012014-11-17 06:15:42 -080090typedef 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
99SK_C_PLUS_PLUS_END_GUARD
100
101#endif