构造函数
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
。
函数的调用者拥有数据,并负责释放它。 |