Struct gsk4::GLShaderNode

source ·
#[repr(transparent)]
pub struct GLShaderNode { /* private fields */ }
Expand description

A render node using a GL shader when drawing its children nodes.

Implementations§

Return the inner pointer to the underlying C value.

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

Gets args for the node.

Returns

A GBytes with the uniform arguments

Returns the number of children

Returns

The number of children

Gets shader code for the node.

Returns

the GLShader shader

Gets one of the children.

idx

the position of the child to get

Returns

the @idx’th child of @self

Methods from Deref<Target = RenderNode>§

Return the inner pointer to the underlying C value.

Draw the contents of @self to the given cairo context.

Typically, you’ll use this function to implement fallback rendering of RenderNodes 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

Retrieves the boundaries of the @self.

The node will not draw outside of its boundaries.

Returns
bounds

return location for the boundaries

Returns the type of the @self.

Returns

the type of the RenderNode

Serializes the @self 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.

Returns

a GBytes representing the node.

This function is equivalent to calling serialize() followed by 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§

Converts this type into a shared reference of the (usually inferred) input type.
Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
The resulting type after dereferencing.
Dereferences the value.
Formats the value using the given formatter. Read more
Value type checker.
Get the contained value from a Value. Read more
Returns the type identifier of Self.
Convert a value to a Value.
Returns the type identifer of self. Read more
Convert an Option to a Value.
Type to get the Type from. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Ensures that the type has been registered with the type system.
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.