Use new format codes
diff --git a/clients/screenshot.c b/clients/screenshot.c
index bfe5ea0..51f3280 100644
--- a/clients/screenshot.c
+++ b/clients/screenshot.c
@@ -117,7 +117,7 @@
 	}
 
 	buffer = wl_shm_create_buffer(shm, fd, width, height, stride,
-				      WL_SHM_FORMAT_XRGB32);
+				      WL_SHM_FORMAT_XRGB8888);
 
 	close(fd);
 
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index cb36b62..78fa0a5 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -95,7 +95,7 @@
 	};
 
 	static const EGLint config_attribs[] = {
-		EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_VG_ALPHA_FORMAT_PRE_BIT,
+		EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
 		EGL_RED_SIZE, 1,
 		EGL_GREEN_SIZE, 1,
 		EGL_BLUE_SIZE, 1,
@@ -207,10 +207,6 @@
 {
 	struct display *display = window->display;
 	EGLBoolean ret;
-	static const EGLint surface_attribs[] = {
-		EGL_ALPHA_FORMAT, EGL_ALPHA_FORMAT_PRE,
-		EGL_NONE
-	};
 	
 	window->surface = wl_compositor_create_surface(display->compositor);
 	window->shell_surface = wl_shell_get_shell_surface(display->shell,
@@ -222,8 +218,7 @@
 	window->egl_surface =
 		eglCreateWindowSurface(display->egl.dpy,
 				       display->egl.conf,
-				       window->native,
-				       surface_attribs);
+				       window->native, NULL);
 
 	wl_shell_surface_set_toplevel(window->shell_surface);
 
diff --git a/clients/simple-shm.c b/clients/simple-shm.c
index 61771c9..8eca298 100644
--- a/clients/simple-shm.c
+++ b/clients/simple-shm.c
@@ -108,7 +108,7 @@
 							   window->surface);
 	window->buffer = create_shm_buffer(display,
 					   width, height,
-					   WL_SHM_FORMAT_XRGB32,
+					   WL_SHM_FORMAT_XRGB8888,
 					   &window->shm_data);
 
 	wl_shell_surface_set_toplevel(window->shell_surface);
@@ -213,7 +213,7 @@
 	wl_display_iterate(display->display, WL_DISPLAY_READABLE);
 	wl_display_roundtrip(display->display);
 
-	if (!(display->formats & (1 << WL_SHM_FORMAT_XRGB32))) {
+	if (!(display->formats & (1 << WL_SHM_FORMAT_XRGB8888))) {
 		fprintf(stderr, "WL_SHM_FORMAT_XRGB32 not available\n");
 		exit(1);
 	}
diff --git a/clients/simple-touch.c b/clients/simple-touch.c
index e80a00e..c1a0899 100644
--- a/clients/simple-touch.c
+++ b/clients/simple-touch.c
@@ -79,7 +79,7 @@
 	touch->buffer =
 		wl_shm_create_buffer(touch->shm, fd,
 				     touch->width, touch->height, stride,
-				     WL_SHM_FORMAT_PREMULTIPLIED_ARGB32);
+				     WL_SHM_FORMAT_ARGB8888);
 
 	close(fd);
 }
@@ -89,7 +89,7 @@
 {
 	struct touch *touch = data;
 
-	if (format == WL_SHM_FORMAT_PREMULTIPLIED_ARGB32)
+	if (format == WL_SHM_FORMAT_ARGB8888)
 		touch->has_argb = 1;
 }
 
diff --git a/clients/window.c b/clients/window.c
index 86f084d..4dd9960 100644
--- a/clients/window.c
+++ b/clients/window.c
@@ -65,7 +65,7 @@
 	struct wl_data_device_manager *data_device_manager;
 	EGLDisplay dpy;
 	EGLConfig rgb_config;
-	EGLConfig premultiplied_argb_config;
+	EGLConfig argb_config;
 	EGLContext rgb_ctx;
 	EGLContext argb_ctx;
 	cairo_device_t *rgb_device;
@@ -271,14 +271,8 @@
 	cairo_surface_t *cairo_surface;
 	struct egl_window_surface_data *data;
 	EGLConfig config;
-	const EGLint *attribs;
 	cairo_device_t *device;
 
-	static const EGLint premul_attribs[] = {
-		EGL_ALPHA_FORMAT, EGL_ALPHA_FORMAT_PRE,
-		EGL_NONE
-	};
-	
 	data = malloc(sizeof *data);
 	if (data == NULL)
 		return NULL;
@@ -289,11 +283,9 @@
 	if (flags & SURFACE_OPAQUE) {
 		config = display->rgb_config;
 		device = display->rgb_device;
-		attribs = NULL;
 	} else {
-		config = display->premultiplied_argb_config;
+		config = display->argb_config;
 		device = display->argb_device;
-		attribs = premul_attribs;
 	}
 
 	data->window = wl_egl_window_create(surface,
@@ -301,7 +293,7 @@
 					    rectangle->height);
 
 	data->surf = eglCreateWindowSurface(display->dpy, config,
-					    data->window, attribs);
+					    data->window, NULL);
 
 	cairo_surface = cairo_gl_surface_create_for_egl(device,
 							data->surf,
@@ -549,9 +541,9 @@
 				     data, shm_surface_data_destroy);
 
 	if (flags & SURFACE_OPAQUE)
-		format = WL_SHM_FORMAT_XRGB32;
+		format = WL_SHM_FORMAT_XRGB8888;
 	else
-		format = WL_SHM_FORMAT_PREMULTIPLIED_ARGB32;
+		format = WL_SHM_FORMAT_ARGB8888;
 
 	data->data.buffer = wl_shm_create_buffer(display->shm,
 						 fd,
@@ -2729,10 +2721,8 @@
 	EGLint major, minor;
 	EGLint n;
 
-	static const EGLint premul_argb_cfg_attribs[] = {
-		EGL_SURFACE_TYPE,
-			EGL_WINDOW_BIT | EGL_PIXMAP_BIT |
-			EGL_VG_ALPHA_FORMAT_PRE_BIT,
+	static const EGLint argb_cfg_attribs[] = {
+		EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT,
 		EGL_RED_SIZE, 1,
 		EGL_GREEN_SIZE, 1,
 		EGL_BLUE_SIZE, 1,
@@ -2764,9 +2754,9 @@
 		return -1;
 	}
 
-	if (!eglChooseConfig(d->dpy, premul_argb_cfg_attribs,
-			     &d->premultiplied_argb_config, 1, &n) || n != 1) {
-		fprintf(stderr, "failed to choose premul argb config\n");
+	if (!eglChooseConfig(d->dpy, argb_cfg_attribs,
+			     &d->argb_config, 1, &n) || n != 1) {
+		fprintf(stderr, "failed to choose argb config\n");
 		return -1;
 	}
 
@@ -2781,7 +2771,7 @@
 		fprintf(stderr, "failed to create context\n");
 		return -1;
 	}
-	d->argb_ctx = eglCreateContext(d->dpy, d->premultiplied_argb_config,
+	d->argb_ctx = eglCreateContext(d->dpy, d->argb_config,
 				       EGL_NO_CONTEXT, NULL);
 	if (d->argb_ctx == NULL) {
 		fprintf(stderr, "failed to create context\n");
@@ -3027,7 +3017,7 @@
 EGLConfig
 display_get_argb_egl_config(struct display *d)
 {
-	return d->premultiplied_argb_config;
+	return d->argb_config;
 }
 
 struct wl_shell *
diff --git a/src/compositor.c b/src/compositor.c
index b33ed8a..200e26c 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -417,13 +417,10 @@
 			     wl_shm_buffer_get_data(buffer));
 
 		switch (wl_shm_buffer_get_format(buffer)) {
-		case WL_SHM_FORMAT_ARGB32:
+		case WL_SHM_FORMAT_ARGB8888:
 			es->visual = WESTON_ARGB_VISUAL;
 			break;
-		case WL_SHM_FORMAT_PREMULTIPLIED_ARGB32:
-			es->visual = WESTON_PREMUL_ARGB_VISUAL;
-			break;
-		case WL_SHM_FORMAT_XRGB32:
+		case WL_SHM_FORMAT_XRGB8888:
 			es->visual = WESTON_RGB_VISUAL;
 			break;
 		}
@@ -441,8 +438,7 @@
 		
 		ec->image_target_texture_2d(GL_TEXTURE_2D, es->image);
 
-		/* FIXME: we need to get the visual from the wl_buffer */
-		es->visual = WESTON_PREMUL_ARGB_VISUAL;
+		es->visual = WESTON_ARGB_VISUAL;
 		es->pitch = es->width;
 	}
 }
@@ -557,10 +553,6 @@
 
 	switch (es->visual) {
 	case WESTON_ARGB_VISUAL:
-		glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
-		glEnable(GL_BLEND);
-		break;
-	case WESTON_PREMUL_ARGB_VISUAL:
 		glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
 		glEnable(GL_BLEND);
 		break;
@@ -690,7 +682,7 @@
 	surface.alpha = compositor->current_alpha;
 
 	if (tint <= 1.0)
-		surface.visual = WESTON_PREMUL_ARGB_VISUAL;
+		surface.visual = WESTON_ARGB_VISUAL;
 	else
 		surface.visual = WESTON_RGB_VISUAL;
 
diff --git a/src/compositor.h b/src/compositor.h
index 031b7d4..d21e285 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -114,7 +114,6 @@
 enum weston_visual {
 	WESTON_NONE_VISUAL,
 	WESTON_ARGB_VISUAL,
-	WESTON_PREMUL_ARGB_VISUAL,
 	WESTON_RGB_VISUAL
 };