Class RenderNode

All Implemented Interfaces:
PointerInterface
Direct Known Subclasses:
BlendNode, BlurNode, BorderNode, CairoNode, ClipNode, ColorMatrixNode, ColorNode, ConicGradientNode, ContainerNode, CrossFadeNode, DebugNode, GLShaderNode, InsetShadowNode, LinearGradientNode, OpacityNode, OutsetShadowNode, RadialGradientNode, RepeatingLinearGradientNode, RepeatingRadialGradientNode, RepeatNode, RoundedClipNode, ShadowNode, TextNode, TextureNode, TransformNode

public class RenderNode extends Pointer
`GskRenderNode` is the basic block in a scene graph to be
rendered using [class@Gsk.Renderer].

Each node has a parent, except the top-level node; each node may have
children nodes.

Each node has an associated drawing surface, which has the size of
the rectangle set when creating it.

Render nodes are meant to be transient; once they have been associated
to a [class@Gsk.Renderer] it's safe to release any reference you have on
them. All [class@Gsk.RenderNode]s are immutable, you can only specify their
properties during construction.

https://docs.gtk.org/gsk4/class.RenderNode.html

  • Constructor Details

  • Method Details

    • getClassHandler

      public static ClassHandler getClassHandler()
    • draw

      public void draw(@Nonnull Context cr)
      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 [class@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.
      Parameters:
      cr - cairo context to draw to
    • getBounds

      public void getBounds(@Nonnull Rect bounds)
      Retrieves the boundaries of the @node.

      The node will not draw outside of its boundaries.
      Parameters:
      bounds - return location for the boundaries
    • getNodeType

      public int getNodeType()
      Returns the type of the @node.
      Returns:
      the type of the `GskRenderNode`
    • ref

      public RenderNode ref()
      Acquires a reference on the given `GskRenderNode`.
      Returns:
      the `GskRenderNode` with an additional reference
    • serialize

      public Bytes serialize()
      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.
      Returns:
      a `GBytes` representing the node.
    • unref

      public void unref()
      Releases a reference on the given `GskRenderNode`.

      If the reference was the last, the resources associated to the @node are
      freed.
    • writeToFile

      public boolean writeToFile(@Nonnull Str filename) throws AllocationError
      This function is equivalent to calling [method@Gsk.RenderNode.serialize]
      followed by [func@GLib.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.
      Parameters:
      filename - the file to save it to.
      Returns:
      %TRUE if saving was successful
      Throws:
      AllocationError
    • writeToFile

      public boolean writeToFile(String filename) throws AllocationError
      This function is equivalent to calling [method@Gsk.RenderNode.serialize]
      followed by [func@GLib.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.
      Parameters:
      filename - the file to save it to.
      Returns:
      %TRUE if saving was successful
      Throws:
      AllocationError
    • deserialize

      public static RenderNode deserialize(@Nonnull Bytes bytes, RenderNode.OnParseErrorFunc error_func, @Nullable Pointer user_data)
      Loads data previously created via [method@Gsk.RenderNode.serialize].

      For a discussion of the supported format, see that function.
      Parameters:
      bytes - the bytes containing the data
      error_func - Callback on parsing errors
      user_data - user_data for @error_func
      Returns:
      a new `GskRenderNode`
    • getTypeID

      public static long getTypeID()
    • getParentTypeID

      public static long getParentTypeID()
    • getTypeSize

      public static TypeSystem.TypeSize getTypeSize()
    • getParentTypeSize

      public static TypeSystem.TypeSize getParentTypeSize()
    • getInstanceSize

      public static int getInstanceSize()