blob: 1dc026151e78317f836dc280e60c074972fb804e [file] [log] [blame]
Allan MacKinnon4359d522018-06-19 13:57:04 -07001/*
2 * Copyright 2017 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#pragma once
10
11//
12//
13//
14
15#include "skc.h"
16#include "types.h"
17
18//
19// FIXME -- relax the const correctness
20//
21
22struct skc_context
23{
24 struct skc_runtime * runtime;
25
26 //
27 //
28 //
29
30 bool (* yield )(struct skc_runtime * const runtime);
31
32 void (* wait )(struct skc_runtime * const runtime);
33
34 //
35 //
36 //
37
38 skc_err (* path_builder )(struct skc_context * const context,
39 skc_path_builder_t * const path_builder);
40
41 skc_err (* path_retain )(struct skc_runtime * const runtime,
42 skc_path_t const * paths,
43 uint32_t count);
44
45 skc_err (* path_release )(struct skc_runtime * const runtime,
46 skc_path_t const * paths,
47 uint32_t count);
48
49 skc_err (* path_flush )(struct skc_runtime * const runtime,
50 skc_path_t const * paths,
51 uint32_t count);
Hal Canary14195342018-07-11 16:10:14 -040052
Allan MacKinnon4359d522018-06-19 13:57:04 -070053 //
54 //
55 //
56
57 skc_err (* raster_builder )(struct skc_context * const context,
58 skc_raster_builder_t * const raster_builder);
59
60 skc_err (* raster_retain )(struct skc_runtime * const runtime,
61 skc_raster_t const * rasters,
62 uint32_t count);
63
64 skc_err (* raster_release )(struct skc_runtime * const runtime,
65 skc_raster_t const * rasters,
66 uint32_t count);
67
68 skc_err (* raster_flush )(struct skc_runtime * const runtime,
69 skc_raster_t const * rasters,
70 uint32_t count);
71 //
72 //
73 //
74
75 skc_err (* composition )(struct skc_context * const context,
76 skc_composition_t * const composition);
77
78 //
79 //
80 //
81
82 skc_err (* styling )(struct skc_context * const context,
83 skc_styling_t * const styling,
84 uint32_t const layers_count,
85 uint32_t const groups_count,
86 uint32_t const extras_count);
87
88 //
89 //
90 //
91
92 skc_err (* surface )(struct skc_context * const context,
93 skc_surface_t * const surface);
94 //
95 //
96 //
97
98 skc_int refcount;
99};
100
101//
102//
103//