From b1852096c52103cefd39bddc0a97071dae28c3f8 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Thu, 15 Mar 2018 11:22:08 +0100 Subject: linux-dmabuf: Support multi plane formats like NV12 --- render/gles2/texture.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'render/gles2') diff --git a/render/gles2/texture.c b/render/gles2/texture.c index 766c0b15..46193c78 100644 --- a/render/gles2/texture.c +++ b/render/gles2/texture.c @@ -275,9 +275,15 @@ static bool gles2_texture_upload_dmabuf(struct wlr_texture *wlr_texture, wlr_texture->inverted_y = true; } - GLenum target = GL_TEXTURE_2D; - const struct gles2_pixel_format *pf = - gles2_format_from_wl(WL_SHM_FORMAT_ARGB8888); + GLenum target; + const struct gles2_pixel_format *pf; + if (dmabuf->attributes.n_planes > 1) { + target = GL_TEXTURE_EXTERNAL_OES; + pf = &external_pixel_format; + } else { + target = GL_TEXTURE_2D; + pf = gles2_format_from_wl(WL_SHM_FORMAT_ARGB8888); + } GLES2_DEBUG_PUSH; gles2_texture_ensure(tex, target); glBindTexture(target, tex->tex_id); -- cgit v1.2.3