diff --git a/gdk/gdkdmabuftexturebuilder.c b/gdk/gdkdmabuftexturebuilder.c index 87957f72fc..b895a32dc5 100644 --- a/gdk/gdkdmabuftexturebuilder.c +++ b/gdk/gdkdmabuftexturebuilder.c @@ -1005,3 +1005,19 @@ gdk_dmabuf_texture_builder_get_dmabuf (GdkDmabufTextureBuilder *self) { return &self->dmabuf; } + +void +gdk_dmabuf_texture_builder_set_dmabuf (GdkDmabufTextureBuilder *self, + const GdkDmabuf *dmabuf) +{ + gdk_dmabuf_texture_builder_set_fourcc (self, dmabuf->fourcc); + gdk_dmabuf_texture_builder_set_modifier (self, dmabuf->modifier); + gdk_dmabuf_texture_builder_set_n_planes (self, dmabuf->n_planes); + + for (unsigned int i = 0; i < dmabuf->n_planes; i++) + { + gdk_dmabuf_texture_builder_set_fd (self, i, dmabuf->planes[i].fd); + gdk_dmabuf_texture_builder_set_stride (self, i, dmabuf->planes[i].stride); + gdk_dmabuf_texture_builder_set_offset (self, i, dmabuf->planes[i].offset); + } +} diff --git a/gdk/gdkdmabuftexturebuilderprivate.h b/gdk/gdkdmabuftexturebuilderprivate.h index 543ae2f542..fe725051fc 100644 --- a/gdk/gdkdmabuftexturebuilderprivate.h +++ b/gdk/gdkdmabuftexturebuilderprivate.h @@ -7,5 +7,8 @@ G_BEGIN_DECLS const GdkDmabuf * gdk_dmabuf_texture_builder_get_dmabuf (GdkDmabufTextureBuilder *builder); +void gdk_dmabuf_texture_builder_set_dmabuf (GdkDmabufTextureBuilder *builder, + const GdkDmabuf *dmabuf); + G_END_DECLS