gl-renderer: Use DRM format codes instead of SHM

Since the buffer now has a pixel_format hook, just use that consistently
instead of the SHM code.

Signed-off-by: Daniel Stone <daniels@collabora.com>
dev
Daniel Stone 3 years ago committed by Pekka Paalanen
parent 2c40260397
commit d37d73a9a0
  1. 28
      libweston/renderer-gl/gl-renderer.c

@ -1919,46 +1919,46 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer)
gl_format[0] = buffer->pixel_format->gl_format; gl_format[0] = buffer->pixel_format->gl_format;
gl_pixel_type = buffer->pixel_format->gl_type; gl_pixel_type = buffer->pixel_format->gl_type;
switch (wl_shm_buffer_get_format(shm_buffer)) { switch (buffer->pixel_format->format) {
case WL_SHM_FORMAT_XRGB8888: case DRM_FORMAT_XRGB8888:
shader_variant = SHADER_VARIANT_RGBX; shader_variant = SHADER_VARIANT_RGBX;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 4; pitch = wl_shm_buffer_get_stride(shm_buffer) / 4;
break; break;
case WL_SHM_FORMAT_ARGB8888: case DRM_FORMAT_ARGB8888:
shader_variant = SHADER_VARIANT_RGBA; shader_variant = SHADER_VARIANT_RGBA;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 4; pitch = wl_shm_buffer_get_stride(shm_buffer) / 4;
break; break;
case WL_SHM_FORMAT_RGB565: case DRM_FORMAT_RGB565:
shader_variant = SHADER_VARIANT_RGBX; shader_variant = SHADER_VARIANT_RGBX;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 2; pitch = wl_shm_buffer_get_stride(shm_buffer) / 2;
break; break;
#if __BYTE_ORDER == __LITTLE_ENDIAN #if __BYTE_ORDER == __LITTLE_ENDIAN
case WL_SHM_FORMAT_ABGR2101010: case DRM_FORMAT_ABGR2101010:
shader_variant = SHADER_VARIANT_RGBA; shader_variant = SHADER_VARIANT_RGBA;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 4; pitch = wl_shm_buffer_get_stride(shm_buffer) / 4;
break; break;
case WL_SHM_FORMAT_XBGR2101010: case DRM_FORMAT_XBGR2101010:
shader_variant = SHADER_VARIANT_RGBX; shader_variant = SHADER_VARIANT_RGBX;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 4; pitch = wl_shm_buffer_get_stride(shm_buffer) / 4;
break; break;
case WL_SHM_FORMAT_ABGR16161616F: case DRM_FORMAT_ABGR16161616F:
shader_variant = SHADER_VARIANT_RGBA; shader_variant = SHADER_VARIANT_RGBA;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 8; pitch = wl_shm_buffer_get_stride(shm_buffer) / 8;
break; break;
case WL_SHM_FORMAT_XBGR16161616F: case DRM_FORMAT_XBGR16161616F:
shader_variant = SHADER_VARIANT_RGBX; shader_variant = SHADER_VARIANT_RGBX;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 8; pitch = wl_shm_buffer_get_stride(shm_buffer) / 8;
break; break;
case WL_SHM_FORMAT_ABGR16161616: case DRM_FORMAT_ABGR16161616:
shader_variant = SHADER_VARIANT_RGBA; shader_variant = SHADER_VARIANT_RGBA;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 8; pitch = wl_shm_buffer_get_stride(shm_buffer) / 8;
break; break;
case WL_SHM_FORMAT_XBGR16161616: case DRM_FORMAT_XBGR16161616:
shader_variant = SHADER_VARIANT_RGBX; shader_variant = SHADER_VARIANT_RGBX;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 8; pitch = wl_shm_buffer_get_stride(shm_buffer) / 8;
break; break;
#endif #endif
case WL_SHM_FORMAT_YUV420: case DRM_FORMAT_YUV420:
shader_variant = SHADER_VARIANT_Y_U_V; shader_variant = SHADER_VARIANT_Y_U_V;
pitch = wl_shm_buffer_get_stride(shm_buffer); pitch = wl_shm_buffer_get_stride(shm_buffer);
gl_pixel_type = GL_UNSIGNED_BYTE; gl_pixel_type = GL_UNSIGNED_BYTE;
@ -1975,7 +1975,7 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer)
gl_format[1] = GL_R8_EXT; gl_format[1] = GL_R8_EXT;
gl_format[2] = GL_R8_EXT; gl_format[2] = GL_R8_EXT;
break; break;
case WL_SHM_FORMAT_NV12: case DRM_FORMAT_NV12:
shader_variant = SHADER_VARIANT_Y_UV; shader_variant = SHADER_VARIANT_Y_UV;
pitch = wl_shm_buffer_get_stride(shm_buffer); pitch = wl_shm_buffer_get_stride(shm_buffer);
gl_pixel_type = GL_UNSIGNED_BYTE; gl_pixel_type = GL_UNSIGNED_BYTE;
@ -1987,7 +1987,7 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer)
gl_format[0] = GL_R8_EXT; gl_format[0] = GL_R8_EXT;
gl_format[1] = GL_RG8_EXT; gl_format[1] = GL_RG8_EXT;
break; break;
case WL_SHM_FORMAT_YUYV: case DRM_FORMAT_YUYV:
shader_variant = SHADER_VARIANT_Y_XUXV; shader_variant = SHADER_VARIANT_Y_XUXV;
pitch = wl_shm_buffer_get_stride(shm_buffer) / 2; pitch = wl_shm_buffer_get_stride(shm_buffer) / 2;
gl_pixel_type = GL_UNSIGNED_BYTE; gl_pixel_type = GL_UNSIGNED_BYTE;
@ -1998,7 +1998,7 @@ gl_renderer_attach_shm(struct weston_surface *es, struct weston_buffer *buffer)
gl_format[0] = GL_RG8_EXT; gl_format[0] = GL_RG8_EXT;
gl_format[1] = GL_BGRA_EXT; gl_format[1] = GL_BGRA_EXT;
break; break;
case WL_SHM_FORMAT_XYUV8888: case DRM_FORMAT_XYUV8888:
/* /*
* [31:0] X:Y:Cb:Cr 8:8:8:8 little endian * [31:0] X:Y:Cb:Cr 8:8:8:8 little endian
* a:b: g: r in SHADER_VARIANT_XYUV * a:b: g: r in SHADER_VARIANT_XYUV

Loading…
Cancel
Save