summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2011-02-03 08:29:42 +0100
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2012-02-28 08:31:48 +0100
commit6e85218e6b206c0978a2195ed6626c767b4b249d (patch)
treec5efb5dfbff757ba4f77a3f1fd25891af772b574
parentaf535798001e74254ae1b75b23f31da9d38f5db8 (diff)
wayland: Update to libwayland-egl api changes
-rw-r--r--configure.in1
-rw-r--r--src/video/wayland/SDL_waylandevents.c4
-rw-r--r--src/video/wayland/SDL_waylandvideo.c3
-rw-r--r--src/video/wayland/SDL_waylandwindow.c12
-rw-r--r--src/video/wayland/SDL_waylandwindow.h2
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;