Creates a GskRenderNode
that will render the given shader
into the
area given by bounds
.
The args
is a block of data to use for uniform input, as per types and
offsets defined by the shader
. Normally this is generated by
[methodGsk
.GLShader.format_args] or [structGsk
.ShaderArgsBuilder].
See [classGsk
.GLShader] for details about how the shader should be written.
All the children will be rendered into textures (if they aren't already
GskTextureNodes
, which will be used directly). These textures will be
sent as input to the shader.
If the renderer doesn't support GL shaders, or if there is any problem
when compiling the shader, then the node will draw pink. You should use
[methodGsk
.GLShader.compile] to ensure the shader
will work for the
renderer before using it.
the GskGLShader
the rectangle to render the shader into
Arguments for the uniforms
array of child nodes, these will be rendered to textures and used as input.
Draw the contents of node
to the given cairo context.
Typically, you'll use this function to implement fallback rendering
of GskRenderNode
s on an intermediate Cairo context, instead of using
the drawing context associated to a [classGdk
.Surface]'s rendering buffer.
For advanced nodes that cannot be supported using Cairo, in particular for nodes doing 3D operations, this function may fail.
Gets args for the node.
Gets one of the children.
the position of the child to get
Returns the number of children
Returns the type of the node
.
Acquires a reference on the given GskRenderNode
.
Serializes the node
for later deserialization via
gsk_render_node_deserialize(). No guarantees are made about the format
used other than that the same version of GTK will be able to deserialize
the result of a call to gsk_render_node_serialize() and
gsk_render_node_deserialize() will correctly reject files it cannot open
that were created with previous versions of GTK.
The intended use of this functions is testing, benchmarking and debugging. The format is not meant as a permanent storage format.
Releases a reference on the given GskRenderNode
.
If the reference was the last, the resources associated to the node
are
freed.
This function is equivalent to calling [methodGsk
.RenderNode.serialize]
followed by [funcGLib
.file_set_contents].
See those two functions for details on the arguments.
It is mostly intended for use inside a debugger to quickly dump a render node to a file for later inspection.
the file to save it to.
Loads data previously created via [methodGsk
.RenderNode.serialize].
For a discussion of the supported format, see that function.
the bytes containing the data
Creates a GskRenderNode
that will render the given shader
into the
area given by bounds
.
The args
is a block of data to use for uniform input, as per types and
offsets defined by the shader
. Normally this is generated by
[methodGsk
.GLShader.format_args] or [structGsk
.ShaderArgsBuilder].
See [classGsk
.GLShader] for details about how the shader should be written.
All the children will be rendered into textures (if they aren't already
GskTextureNodes
, which will be used directly). These textures will be
sent as input to the shader.
If the renderer doesn't support GL shaders, or if there is any problem
when compiling the shader, then the node will draw pink. You should use
[methodGsk
.GLShader.compile] to ensure the shader
will work for the
renderer before using it.
the GskGLShader
the rectangle to render the shader into
Arguments for the uniforms
array of child nodes, these will be rendered to textures and used as input.
A render node using a GL shader when drawing its children nodes.