mirror of
https://github.com/brl/mutter.git
synced 2025-08-07 09:04:41 +00:00
wayland: Add single pixel buffer support
The "single pixel buffer" Wayland protocol extension provides a way for clients to create 1x1 buffers with a single color, specified by providing the color channels (red, green and blue) as well as the alpha channel as a 32 bit unsigned integer. For now, this is turned into a 1x1 texture. Future potential improvements is to hook things up to the scanout candidate logic and turn it into a scanout capable DMA buffer. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2246>
This commit is contained in:
41
src/wayland/meta-wayland-single-pixel-buffer.h
Normal file
41
src/wayland/meta-wayland-single-pixel-buffer.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (C) 2022 Red Hat Inc.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
* 02111-1307, USA.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef META_WAYLAND_SINGLE_PIXEL_BUFFER_H
|
||||
#define META_WAYLAND_SINGLE_PIXEL_BUFFER_H
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
#include "cogl/cogl.h"
|
||||
#include "wayland/meta-wayland-types.h"
|
||||
|
||||
typedef struct _MetaWaylandSinglePixelBuffer MetaWaylandSinglePixelBuffer;
|
||||
|
||||
gboolean meta_wayland_single_pixel_buffer_attach (MetaWaylandBuffer *buffer,
|
||||
CoglTexture **texture,
|
||||
GError **error);
|
||||
|
||||
MetaWaylandSinglePixelBuffer * meta_wayland_single_pixel_buffer_from_buffer (MetaWaylandBuffer *buffer);
|
||||
|
||||
void meta_wayland_init_single_pixel_buffer_manager (MetaWaylandCompositor *compositor);
|
||||
|
||||
void meta_wayland_single_pixel_buffer_free (MetaWaylandSinglePixelBuffer *single_pixel_buffer);
|
||||
|
||||
#endif /* META_WAYLAND_SINGLE_PIXEL_BUFFER_H */
|
Reference in New Issue
Block a user