subcompositor: Split out from compositor
[platform/core/uifw/libds.git] / src / compositor / compositor_private.h
1 #ifndef DS_SURFACE_PRIVATE_H
2 #define DS_SURFACE_PRIVATE_H
3
4 #include <stdint.h>
5 #include <stdlib.h>
6
7 #include <wayland-server.h>
8
9 #include "libds/log.h"
10 #include "libds/util/box.h"
11 #include "libds/util/addon.h"
12 #include "libds/types/ds_surface.h"
13 #include "libds/types/ds_subsurface.h"
14 #include "surface.h"
15 #include "util.h"
16
17 struct ds_surface *
18 create_surface(struct wl_client *client, uint32_t version, uint32_t id);
19
20 void surface_state_move(struct ds_surface_state *state,
21         struct ds_surface_state *next);
22
23 void surface_commit_state(struct ds_surface *surface,
24         struct ds_surface_state *next);
25
26 void surface_state_init(struct ds_surface_state *state);
27
28 void surface_state_finish(struct ds_surface_state *state);
29
30 struct ds_surface *
31 ds_surface_get_root_surface(struct ds_surface *surface);
32
33 struct ds_subsurface *
34 create_subsurface(struct wl_resource *subcomp_resource,
35         struct ds_surface *surface, struct ds_surface *parent,
36         uint32_t version, uint32_t id);
37
38 struct ds_surface *
39 subsurface_get_parent(struct ds_subsurface *subsurface);
40
41 void subsurface_commit(struct ds_subsurface *subsurface);
42
43 void subsurface_parent_commit(struct ds_subsurface *subsurface,
44         bool synchronized);
45
46 #endif