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