1 /*
2  * Copyright 2018 Google Inc.
3  *
4  * Use of this source code is governed by a BSD-style license that can
5  * be found in the LICENSE file.
6  *
7  */
8 
9 #ifndef SKC_ONCE_SKC_TYPES
10 #define SKC_ONCE_SKC_TYPES
11 
12 //
13 //
14 //
15 
16 #include <stdint.h>
17 #include <stdbool.h>
18 
19 //
20 //
21 //
22 
23 typedef struct skc_context        * skc_context_t;
24 typedef struct skc_path_builder   * skc_path_builder_t;
25 typedef struct skc_raster_builder * skc_raster_builder_t;
26 
27 typedef struct skc_composition    * skc_composition_t;
28 typedef struct skc_styling        * skc_styling_t;
29 
30 typedef struct skc_surface        * skc_surface_t;
31 
32 typedef        uint32_t             skc_path_t;
33 typedef        uint32_t             skc_raster_t;
34 
35 typedef        uint32_t             skc_layer_id;
36 typedef        uint32_t             skc_group_id;
37 
38 typedef        uint32_t             skc_styling_cmd_t;
39 
40 typedef        uint64_t             skc_weakref_t;
41 typedef        skc_weakref_t        skc_transform_weakref_t;
42 typedef        skc_weakref_t        skc_raster_clip_weakref_t;
43 
44 typedef        void               * skc_framebuffer_t;
45 
46 //
47 //
48 //
49 
50 #define SKC_PATH_INVALID     UINT32_MAX
51 #define SKC_RASTER_INVALID   UINT32_MAX
52 #define SKC_WEAKREF_INVALID  UINT64_MAX
53 
54 //
55 // TRANSFORM LAYOUT: { sx shx tx shy sy ty w0 w1 }
56 //
57 
58 //
59 // RASTER CLIP LAYOUT: { x0, y0, x1, y1 }
60 //
61 
62 #endif
63 
64 //
65 //
66 //
67