mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-01 00:11:29 +00:00
32625381fa
The new renderers don't support them due to the required complexity of integrating them with Vulkan and the assumptions those nodes make about the renderer (the GL renderer exports its internal APIs into the GLShader). There haven't been any complaints that I'm aware of since 4.14 was released where the default renderer does not support the nodes, so usage in public seems to be close to nonexistant. The 2 uses I know of were workarounds about missing features in GTK that have stopped since GTK now supports them: 1. GStreamer used in to do premultiplication when the old GL renderer did not do so in hardware but on the CPU. 2. Adwaita used it for masking before the mask node wa added in 4.10.
48 lines
2.0 KiB
C
48 lines
2.0 KiB
C
/*
|
|
* Copyright © 2020 Red Hat, Inc.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library 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
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
*
|
|
* Authors: Matthias Clasen <mclasen@redhat.com>
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <gdk/gdk.h>
|
|
#include <gsk/gsk.h>
|
|
|
|
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define GSK_TYPE_SHADER_PAINTABLE (gsk_shader_paintable_get_type ())
|
|
|
|
G_DECLARE_FINAL_TYPE (GskShaderPaintable, gsk_shader_paintable, GSK, SHADER_PAINTABLE, GObject)
|
|
|
|
GdkPaintable * gsk_shader_paintable_new (GskGLShader *shader,
|
|
GBytes *data);
|
|
|
|
GskGLShader * gsk_shader_paintable_get_shader (GskShaderPaintable *self);
|
|
void gsk_shader_paintable_set_shader (GskShaderPaintable *self,
|
|
GskGLShader *shader);
|
|
GBytes * gsk_shader_paintable_get_args (GskShaderPaintable *self);
|
|
void gsk_shader_paintable_set_args (GskShaderPaintable *self,
|
|
GBytes *data);
|
|
void gsk_shader_paintable_update_time (GskShaderPaintable *self,
|
|
int time_idx,
|
|
gint64 frame_time);
|
|
G_END_DECLS
|
|
|
|
G_GNUC_END_IGNORE_DEPRECATIONS
|