1 | /* GSK - The GTK Scene Kit |
2 | * |
3 | * Copyright 2016 Endless |
4 | * |
5 | * This library is free software; you can redistribute it and/or |
6 | * modify it under the terms of the GNU Lesser General Public |
7 | * License as published by the Free Software Foundation; either |
8 | * version 2 of the License, or (at your option) any later version. |
9 | * |
10 | * This library is distributed in the hope that it will be useful, |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | * Lesser General Public License for more details. |
14 | * |
15 | * You should have received a copy of the GNU Lesser General Public |
16 | * License along with this library. If not, see <http://www.gnu.org/licenses/>. |
17 | */ |
18 | |
19 | #ifndef __GSK_RENDERER_PRIVATE_H__ |
20 | #define __GSK_RENDERER_PRIVATE_H__ |
21 | |
22 | #include "gskrenderer.h" |
23 | #include "gskprofilerprivate.h" |
24 | #include "gskdebugprivate.h" |
25 | |
26 | G_BEGIN_DECLS |
27 | |
28 | #define GSK_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_RENDERER, GskRendererClass)) |
29 | #define GSK_IS_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_RENDERER)) |
30 | #define GSK_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_RENDERER, GskRendererClass)) |
31 | |
32 | struct _GskRenderer |
33 | { |
34 | GObject parent_instance; |
35 | }; |
36 | |
37 | struct _GskRendererClass |
38 | { |
39 | GObjectClass parent_class; |
40 | |
41 | gboolean (* realize) (GskRenderer *renderer, |
42 | GdkSurface *surface, |
43 | GError **error); |
44 | void (* unrealize) (GskRenderer *renderer); |
45 | |
46 | GdkTexture * (* render_texture) (GskRenderer *renderer, |
47 | GskRenderNode *root, |
48 | const graphene_rect_t *viewport); |
49 | void (* render) (GskRenderer *renderer, |
50 | GskRenderNode *root, |
51 | const cairo_region_t *invalid); |
52 | }; |
53 | |
54 | GskRenderNode * gsk_renderer_get_root_node (GskRenderer *renderer); |
55 | |
56 | GskProfiler * gsk_renderer_get_profiler (GskRenderer *renderer); |
57 | |
58 | GskDebugFlags gsk_renderer_get_debug_flags (GskRenderer *renderer); |
59 | void gsk_renderer_set_debug_flags (GskRenderer *renderer, |
60 | GskDebugFlags flags); |
61 | |
62 | G_END_DECLS |
63 | |
64 | #endif /* __GSK_RENDERER_PRIVATE_H__ */ |
65 | |