85fe73d90bce7fd3c21baad88acfc426f40d980f
[profile/ivi/wayland.git] / wayland / wayland-egl.h
1 /*
2  * Copyright © 2011 Kristian Høgsberg
3  * Copyright © 2011 Benjamin Franzke
4  *
5  * Permission to use, copy, modify, distribute, and sell this software and its
6  * documentation for any purpose is hereby granted without fee, provided that
7  * the above copyright notice appear in all copies and that both that copyright
8  * notice and this permission notice appear in supporting documentation, and
9  * that the name of the copyright holders not be used in advertising or
10  * publicity pertaining to distribution of the software without specific,
11  * written prior permission.  The copyright holders make no representations
12  * about the suitability of this software for any purpose.  It is provided "as
13  * is" without express or implied warranty.
14  *
15  * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
16  * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
17  * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
18  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
19  * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
20  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
21  * OF THIS SOFTWARE.
22  */
23
24 #ifndef _WAYLAND_EGL_H
25 #define _WAYLAND_EGL_H
26
27 #ifdef  __cplusplus
28 extern "C" {
29 #endif
30
31 #include <wayland-client.h>
32
33 #define WL_EGL_PLATFORM 1
34
35 struct wl_egl_window;
36 struct wl_egl_pixmap;
37
38 struct wl_egl_window *
39 wl_egl_window_create(struct wl_surface *surface,
40                      int width, int height,
41                      struct wl_visual *visual);
42
43 void
44 wl_egl_window_destroy(struct wl_egl_window *egl_window);
45
46 void
47 wl_egl_window_resize(struct wl_egl_window *egl_window,
48                      int width, int height,
49                      int dx, int dy);
50
51 void
52 wl_egl_window_get_attached_size(struct wl_egl_window *egl_window,
53                                 int *width, int *height);
54
55 struct wl_egl_pixmap *
56 wl_egl_pixmap_create(int width, int height,
57                      struct wl_visual *visual, uint32_t flags);
58 void
59 wl_egl_pixmap_destroy(struct wl_egl_pixmap *egl_pixmap);
60
61 struct wl_buffer *
62 wl_egl_pixmap_create_buffer(struct wl_egl_pixmap *egl_pixmap);
63
64 #ifdef  __cplusplus
65 }
66 #endif
67
68 #endif