构造函数

GskGLShaderNodenew

已废弃:4.16 

声明 [源]

GskRenderNode*
gsk_gl_shader_node_new (
  GskGLShader* shader,
  const graphene_rect_t* bounds,
  GBytes* args,
  GskRenderNode** children,
  guint n_children
)

描述 [源]

创建一个 GskRenderNode,在 bounds 给定的区域渲染给定的 shader

args 是用于统一输入的数据块,根据 shader 定义的类型和偏移量。通常由 gsk_gl_shader_format_args()GskShaderArgsBuilder 生成。

有关如何编写着色器的详细信息,请参阅 GskGLShader

所有子项都将渲染到纹理中(如果它们不是 GskTextureNodes,它们将被直接使用)。这些纹理将被发送作为着色器的输入。

如果渲染器不支持 GL 着色器,或者编译着色器时出现任何问题,则节点将以粉红色绘制。在用它之前应使用 gsk_gl_shader_compile() 确保 shader 可以为渲染器工作。

自 4.16 已废弃

GTK 的新以 Vulkan 为重点的渲染不支持此功能。使用 GtkGLArea 进行 OpenGL 渲染。

参数

shader

类型: GskGLShader

GskGLShader

数据由函数的调用者拥有。
bounds

类型: graphene_rect_t

渲染着色器到的矩形。

数据由函数的调用者拥有。
args

类型: GBytes

统一参数。

数据由函数的调用者拥有。
children

类型:一个 GskRenderNode* 数组

子节点数组,这些节点将被渲染到纹理中并用作输入。

参数可以是 NULL
数组的长度在 n_children 参数中指定。
数据由函数的调用者拥有。
n_children

类型: guint

children 的长度(目前 GL 后端支持最多 4 个子项)。

返回值

类型: GskGLShaderNode

一个新的 GskRenderNode

函数的调用者拥有数据,并负责释放它。