switch (surface->color_format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
- format = (surface->premultiplied_alpha) ?
- WL_DRM_FORMAT_PREMULTIPLIED_ARGB32 : WL_DRM_FORMAT_ARGB32;
+ /* assume premultiplied */
+ format = WL_DRM_FORMAT_PREMULTIPLIED_ARGB32;
break;
case PIPE_FORMAT_B8G8R8X8_UNORM:
format = WL_DRM_FORMAT_XRGB32;
if (!wayland_drm_display_add_configs(drmdpy))
return FALSE;
- /* check that premultiplied alpha is supported for all formats with alpha */
- if (!drmdpy->argb32 || drmdpy->argb32_pre)
- drmdpy->base.param_premultiplied_alpha = TRUE;
-
drmdpy->base.base.screen =
drmdpy->event_handler->new_drm_screen(&drmdpy->base.base,
NULL, drmdpy->fd);
switch (surface->color_format) {
case PIPE_FORMAT_B8G8R8A8_UNORM:
- format = (surface->premultiplied_alpha) ?
- WL_SHM_FORMAT_PREMULTIPLIED_ARGB32 : WL_SHM_FORMAT_ARGB32;
+ format = WL_SHM_FORMAT_PREMULTIPLIED_ARGB32;
break;
case PIPE_FORMAT_B8G8R8X8_UNORM:
format = WL_SHM_FORMAT_XRGB32;
if (!wayland_shm_display_add_configs(shmdpy))
return FALSE;
- /* assume all formats are supported */
- shmdpy->base.param_premultiplied_alpha = TRUE;
-
winsys = wayland_create_sw_winsys(shmdpy->base.dpy);
if (!winsys)
return FALSE;
wayland_display_get_param(struct native_display *ndpy,
enum native_param_type param)
{
- struct wayland_display *display = wayland_display(ndpy);
int val;
switch (param) {
- case NATIVE_PARAM_PREMULTIPLIED_ALPHA:
- val = display->param_premultiplied_alpha;
- break;
case NATIVE_PARAM_USE_NATIVE_BUFFER:
case NATIVE_PARAM_PRESERVE_BUFFER:
case NATIVE_PARAM_MAX_SWAP_INTERVAL:
if (ctrl->preserve || ctrl->swap_interval)
return FALSE;
- /* force buffers to be re-created if they will be presented differently */
- if (surface->premultiplied_alpha != ctrl->premultiplied_alpha) {
- enum wayland_buffer_type buffer;
-
- for (buffer = 0; buffer < WL_BUFFER_COUNT; ++buffer) {
- if (surface->buffer[buffer]) {
- wl_buffer_destroy(surface->buffer[buffer]);
- surface->buffer[buffer] = NULL;
- }
- }
-
- surface->premultiplied_alpha = ctrl->premultiplied_alpha;
- }
-
switch (ctrl->natt) {
case NATIVE_ATTACHMENT_FRONT_LEFT:
ret = TRUE;
struct wayland_config *configs;
int num_configs;
- /* true if all formats with alpha support premultiplied alpha */
- boolean param_premultiplied_alpha;
struct wl_buffer *(*create_buffer)(struct wayland_display *display,
struct wayland_surface *surface,
unsigned int attachment_mask;
boolean block_swap_buffers;
- boolean premultiplied_alpha;
};
struct wayland_config {