Struct gsk4::GLShaderNode [−][src]
pub struct GLShaderNode(_);
Expand description
A render node using a GL shader when drawing its children nodes.
Implementations
Creates a RenderNode
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
Gsk::
GLShader::format_args()`` or ShaderArgsBuilder
.
See 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
GLShader::compile()
to ensure the shader
will work for the
renderer before using it.
shader
the GLShader
bounds
the rectangle to render the shader into
args
Arguments for the uniforms
children
array of child nodes, these will be rendered to textures and used as input.
Returns
A new RenderNode
Methods from Deref<Target = RenderNode>
Draw the contents of self
to the given cairo context.
Typically, you’ll use this function to implement fallback rendering
of RenderNode
s on an intermediate Cairo context, instead of using
the drawing context associated to a gdk::Surface
’s rendering buffer.
For advanced nodes that cannot be supported using Cairo, in particular for nodes doing 3D operations, this function may fail.
cr
cairo context to draw to
Serializes the self
for later deserialization via
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 serialize()
and
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.
Returns
a GBytes
representing the node.
This function is equivalent to calling serialize()
followed by g_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.
filename
the file to save it to.
Returns
true
if saving was successful
Trait Implementations
Performs the conversion.
type Target = RenderNode
type Target = RenderNode
The resulting type after dereferencing.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for GLShaderNode
impl !Send for GLShaderNode
impl !Sync for GLShaderNode
impl Unpin for GLShaderNode
impl UnwindSafe for GLShaderNode
Blanket Implementations
Mutably borrows from an owned value. Read more