summaryrefslogtreecommitdiff
path: root/src/compositor/meta-shaped-texture-private.h
diff options
context:
space:
mode:
authorNiels De Graef <Niels.DeGraef@barco.com>2018-11-14 12:22:02 +0100
committerNiels De Graef <niels.degraef@barco.com>2019-06-03 16:06:23 +0200
commita3fb239344b9455e94c5489be40a98ac53de5468 (patch)
tree555d1f6ce305dd2442f5b03150109121698d16d1 /src/compositor/meta-shaped-texture-private.h
parentd3ed857ebc346727c2ce12c3fa2ecfa1bd10a37d (diff)
downloadmutter-a3fb239344b9455e94c5489be40a98ac53de5468.tar.gz
WIP: wayland: add basic support for non-RGBA textureswip/nielsdg/add-yuv-support-gnome-3-32
Up until now, we didn't support sending YUV textures to the Wayland server. This was for several reasons: * We draw onto an RGBA framebuffer, so any other color format needs to be converted to that color space. Since we don't want to lose a lot of performance, this is ideally done on the GPU (using shaders). * YUV formats can consist of several planes (for example NV12, a common format in decoded video frames consists of a Y-plane and a subsampled UV-plane). Mutter always assumed that any texture it got was representable by a `CoglTexture`, which does not have this kind of concept. To deal with this, we introduce a new "texture": a `CoglMultiPlaneTexture` which consists of multiple CoglTextures, each representing a plane in the texture we got. It also provides support for CoglSnippets which can convert the colorspace if necessary. What changes are in this commit: * Introduce a new CoglMultiPlaneTexture object. Right now it is not implemented as a CoglTexture to prevent any confusion (but it is somewhat related to CoglMetaTexture) * Added some extra values to the CoglPixelFormat enum that deal with YUV * Make the necessary changes in MetaWaylandBuffer, so that it knows how to deal with incoming buffers (for example EGLImages and shm buffers) * This also introduces some changes in MetaDmaBuf, as that is also a different kind of buffer we can receive from wayland. Acknowledgements * There was a lot of prior art already done by the authors of Weston, CoglGstVideoSink and ClutterGstSink * My employer Barco for allowing me to work on this
Diffstat (limited to 'src/compositor/meta-shaped-texture-private.h')
-rw-r--r--src/compositor/meta-shaped-texture-private.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/compositor/meta-shaped-texture-private.h b/src/compositor/meta-shaped-texture-private.h
index a86a2bff0..43be08127 100644
--- a/src/compositor/meta-shaped-texture-private.h
+++ b/src/compositor/meta-shaped-texture-private.h
@@ -32,7 +32,7 @@
ClutterActor *meta_shaped_texture_new (void);
void meta_shaped_texture_set_texture (MetaShapedTexture *stex,
- CoglTexture *texture);
+ CoglMultiPlaneTexture *texture);
void meta_shaped_texture_set_is_y_inverted (MetaShapedTexture *stex,
gboolean is_y_inverted);
void meta_shaped_texture_set_snippet (MetaShapedTexture *stex,