}
buffer = wl_shm_create_buffer(shm, fd, width, height, stride,
- WL_SHM_FORMAT_XRGB32);
+ WL_SHM_FORMAT_XRGB8888);
close(fd);
};
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,
{
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,
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);
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);
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);
}
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);
}
{
struct touch *touch = data;
- if (format == WL_SHM_FORMAT_PREMULTIPLIED_ARGB32)
+ if (format == WL_SHM_FORMAT_ARGB8888)
touch->has_argb = 1;
}
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;
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;
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,
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,
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,
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,
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;
}
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");
EGLConfig
display_get_argb_egl_config(struct display *d)
{
- return d->premultiplied_argb_config;
+ return d->argb_config;
}
struct wl_shell *
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;
}
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;
}
}
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;
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;
enum weston_visual {
WESTON_NONE_VISUAL,
WESTON_ARGB_VISUAL,
- WESTON_PREMUL_ARGB_VISUAL,
WESTON_RGB_VISUAL
};