diff options
author | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2011-02-03 08:29:42 +0100 |
---|---|---|
committer | Benjamin Franzke <benjaminfranzke@googlemail.com> | 2012-02-28 08:31:48 +0100 |
commit | 6e85218e6b206c0978a2195ed6626c767b4b249d (patch) | |
tree | c5efb5dfbff757ba4f77a3f1fd25891af772b574 | |
parent | af535798001e74254ae1b75b23f31da9d38f5db8 (diff) |
wayland: Update to libwayland-egl api changes
-rw-r--r-- | configure.in | 1 | ||||
-rw-r--r-- | src/video/wayland/SDL_waylandevents.c | 4 | ||||
-rw-r--r-- | src/video/wayland/SDL_waylandvideo.c | 3 | ||||
-rw-r--r-- | src/video/wayland/SDL_waylandwindow.c | 12 | ||||
-rw-r--r-- | src/video/wayland/SDL_waylandwindow.h | 2 |
5 files changed, 13 insertions, 9 deletions
diff --git a/configure.in b/configure.in index 48cd99d6..8939f7bd 100644 --- a/configure.in +++ b/configure.in @@ -1018,6 +1018,7 @@ AC_HELP_STRING([--enable-video-wayland], [use Wayland video driver [[default=yes if test x$video_wayland = xyes; then AC_DEFINE(SDL_VIDEO_DRIVER_WAYLAND) SOURCES="$SOURCES $srcdir/src/video/wayland/*.c" + EXTRA_CFLAGS="$EXTRA_CFLAGS $(pkg-config --cflags wayland-client wayland-egl libdrm egl gl xkbcommon)" EXTRA_LDFLAGS="$EXTRA_LDFLAGS $(pkg-config --libs wayland-client wayland-egl libdrm egl gl xkbcommon)" have_video=yes fi diff --git a/src/video/wayland/SDL_waylandevents.c b/src/video/wayland/SDL_waylandevents.c index 600a52fa..3e725c06 100644 --- a/src/video/wayland/SDL_waylandevents.c +++ b/src/video/wayland/SDL_waylandevents.c @@ -39,8 +39,8 @@ #include <sys/select.h> -const char *option_xkb_layout = "us"; -const char *option_xkb_variant = ""; +const char *option_xkb_layout = "de"; +const char *option_xkb_variant = "nodeadkeys"; const char *option_xkb_options = ""; void diff --git a/src/video/wayland/SDL_waylandvideo.c b/src/video/wayland/SDL_waylandvideo.c index e98fdd53..a818e3e7 100644 --- a/src/video/wayland/SDL_waylandvideo.c +++ b/src/video/wayland/SDL_waylandvideo.c @@ -192,10 +192,11 @@ Wayland_VideoInit(_THIS) SDL_SetError("Failed to connecto to a Wayland display."); return 0; } - data->egl_display = wl_egl_create_native_display(data->display); + data->egl_display = wl_egl_native_display_create(data->display); wl_display_add_global_listener(data->display, display_handle_global, data); + wl_display_iterate(data->display, WL_DISPLAY_READABLE); fprintf(stderr, "after global listener iteration\n"); diff --git a/src/video/wayland/SDL_waylandwindow.c b/src/video/wayland/SDL_waylandwindow.c index d30f3f29..ad0a799f 100644 --- a/src/video/wayland/SDL_waylandwindow.c +++ b/src/video/wayland/SDL_waylandwindow.c @@ -73,12 +73,14 @@ int Wayland_CreateWindow(_THIS, SDL_Window * window) wl_compositor_create_surface(c->compositor); wl_surface_set_user_data(data->surface, data); - data->egl_surface = wl_egl_create_native_surface(data->surface, - window->w, - window->h); + visual = wl_display_get_premultiplied_argb_visual(c->display); + data->egl_window = wl_egl_native_window_create(data->surface, + window->w, + window->h, + visual); data->esurf = eglCreateWindowSurface(c->edpy, c->econf, - (EGLNativeWindowType) data->egl_surface, NULL); + (EGLNativeWindowType) data->egl_window, NULL); if (data->esurf == EGL_NO_SURFACE) { fprintf(stderr, "failed to create window surface\n"); @@ -99,7 +101,7 @@ void Wayland_DestroyWindow(_THIS, SDL_Window * window) if (data) { eglDestroySurface(data->edpy, wind->esurf); - wl_egl_destroy_native_surface(wind->egl_surface); + wl_egl_native_window_destroy(wind->egl_window); wl_surface_destroy(wind->surface); SDL_free(wind); } diff --git a/src/video/wayland/SDL_waylandwindow.h b/src/video/wayland/SDL_waylandwindow.h index acadcc10..871db13f 100644 --- a/src/video/wayland/SDL_waylandwindow.h +++ b/src/video/wayland/SDL_waylandwindow.h @@ -33,7 +33,7 @@ typedef struct SDL_Window *sdlwindow; SDL_WaylandData *waylandData; struct wl_surface *surface; - struct wl_egl_surface *egl_surface; + struct wl_egl_window *egl_window; EGLSurface esurf; struct SDL_WaylandInput *keyboard_device; |