blob: 4c6389689ccdeec7913d66856ecd8fcb51158870 [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
51sk_colortype_t sk_colortype_get_default_8888();
52
53typedef struct {
54 int32_t width;
55 int32_t height;
56 sk_colortype_t colorType;
57 sk_alphatype_t alphaType;
58} sk_imageinfo_t;
59
60typedef struct {
reedafa278e2014-11-24 19:11:48 -080061 float x;
62 float y;
63} sk_point_t;
64
65typedef struct {
reed73c25012014-11-17 06:15:42 -080066 float left;
67 float top;
68 float right;
69 float bottom;
70} sk_rect_t;
71
reedafa278e2014-11-24 19:11:48 -080072typedef struct {
73 float mat[9];
74} sk_matrix_t;
75
reed73c25012014-11-17 06:15:42 -080076typedef struct sk_canvas_t sk_canvas_t;
77typedef struct sk_image_t sk_image_t;
78typedef struct sk_paint_t sk_paint_t;
79typedef struct sk_path_t sk_path_t;
reedafa278e2014-11-24 19:11:48 -080080typedef struct sk_shader_t sk_shader_t;
reed73c25012014-11-17 06:15:42 -080081typedef struct sk_surface_t sk_surface_t;
82
83//////////////////////////////////////////////////////////////////////////////////////////
84
85#ifdef __cplusplus
86 class SkCanvas;
87 void sk_test_capi(SkCanvas*);
88#endif
89
90SK_C_PLUS_PLUS_END_GUARD
91
92#endif