Home | History | Annotate | Download | only in wayland-egl
      1 #include <stdlib.h>
      2 
      3 #include <wayland-client.h>
      4 #include "wayland-egl.h"
      5 #include "wayland-egl-priv.h"
      6 
      7 WL_EGL_EXPORT void
      8 wl_egl_window_resize(struct wl_egl_window *egl_window,
      9 		     int width, int height,
     10 		     int dx, int dy)
     11 {
     12 	egl_window->width  = width;
     13 	egl_window->height = height;
     14 	egl_window->dx     = dx;
     15 	egl_window->dy     = dy;
     16 
     17 	if (egl_window->resize_callback)
     18 		egl_window->resize_callback(egl_window, egl_window->private);
     19 }
     20 
     21 WL_EGL_EXPORT struct wl_egl_window *
     22 wl_egl_window_create(struct wl_surface *surface,
     23 		     int width, int height)
     24 {
     25 	struct wl_egl_window *egl_window;
     26 
     27 	egl_window = malloc(sizeof *egl_window);
     28 	if (!egl_window)
     29 		return NULL;
     30 
     31 	egl_window->surface = surface;
     32 	egl_window->private = NULL;
     33 	egl_window->resize_callback = NULL;
     34 	wl_egl_window_resize(egl_window, width, height, 0, 0);
     35 	egl_window->attached_width  = 0;
     36 	egl_window->attached_height = 0;
     37 
     38 	return egl_window;
     39 }
     40 
     41 WL_EGL_EXPORT void
     42 wl_egl_window_destroy(struct wl_egl_window *egl_window)
     43 {
     44 	free(egl_window);
     45 }
     46 
     47 WL_EGL_EXPORT void
     48 wl_egl_window_get_attached_size(struct wl_egl_window *egl_window,
     49 				int *width, int *height)
     50 {
     51 	if (width)
     52 		*width = egl_window->attached_width;
     53 	if (height)
     54 		*height = egl_window->attached_height;
     55 }
     56