Use new format codes
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 11 Jan 2012 19:24:46 +0000 (14:24 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 11 Jan 2012 19:24:46 +0000 (14:24 -0500)
clients/screenshot.c
clients/simple-egl.c
clients/simple-shm.c
clients/simple-touch.c
clients/window.c
src/compositor.c
src/compositor.h

index bfe5ea0..51f3280 100644 (file)
@@ -117,7 +117,7 @@ create_shm_buffer(int width, int height, void **data_out)
        }
 
        buffer = wl_shm_create_buffer(shm, fd, width, height, stride,
-                                     WL_SHM_FORMAT_XRGB32);
+                                     WL_SHM_FORMAT_XRGB8888);
 
        close(fd);
 
index cb36b62..78fa0a5 100644 (file)
@@ -95,7 +95,7 @@ init_egl(struct display *display)
        };
 
        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 @@ create_surface(struct window *window)
 {
        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 @@ create_surface(struct window *window)
        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);
 
index 61771c9..8eca298 100644 (file)
@@ -108,7 +108,7 @@ create_window(struct display *display, int width, int height)
                                                           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 @@ create_display(void)
        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);
        }
index e80a00e..c1a0899 100644 (file)
@@ -79,7 +79,7 @@ create_shm_buffer(struct touch *touch)
        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 @@ shm_format(void *data, struct wl_shm *wl_shm, uint32_t format)
 {
        struct touch *touch = data;
 
-       if (format == WL_SHM_FORMAT_PREMULTIPLIED_ARGB32)
+       if (format == WL_SHM_FORMAT_ARGB8888)
                touch->has_argb = 1;
 }
 
index 86f084d..4dd9960 100644 (file)
@@ -65,7 +65,7 @@ struct display {
        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 @@ display_create_egl_window_surface(struct display *display,
        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 @@ display_create_egl_window_surface(struct display *display,
        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 @@ display_create_egl_window_surface(struct display *display,
                                            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 @@ display_create_shm_surface(struct display *display,
                                     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 @@ init_egl(struct display *d)
        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 @@ init_egl(struct display *d)
                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 @@ init_egl(struct display *d)
                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 @@ display_get_rgb_egl_config(struct display *d)
 EGLConfig
 display_get_argb_egl_config(struct display *d)
 {
-       return d->premultiplied_argb_config;
+       return d->argb_config;
 }
 
 struct wl_shell *
index b33ed8a..200e26c 100644 (file)
@@ -417,13 +417,10 @@ weston_buffer_attach(struct wl_buffer *buffer, struct wl_surface *surface)
                             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 @@ weston_buffer_attach(struct wl_buffer *buffer, struct wl_surface *surface)
                
                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 @@ weston_surface_draw(struct weston_surface *es,
 
        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 @@ fade_output(struct weston_output *output,
        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;
 
index 031b7d4..d21e285 100644 (file)
@@ -114,7 +114,6 @@ struct weston_input_device {
 enum weston_visual {
        WESTON_NONE_VISUAL,
        WESTON_ARGB_VISUAL,
-       WESTON_PREMUL_ARGB_VISUAL,
        WESTON_RGB_VISUAL
 };