Package ch.bailu.gtk.gsk
Class RenderNode
java.lang.Object
ch.bailu.gtk.type.Type
ch.bailu.gtk.type.Pointer
ch.bailu.gtk.gsk.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
`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.
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.
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic RenderNode
deserialize
(Bytes bytes, RenderNode.OnParseErrorFunc error_func, Pointer user_data) Loads data previously created via [method@Gsk.RenderNode.serialize].void
Draw the contents of @node to the given cairo context.void
Retrieves the boundaries of the @node.static ClassHandler
static int
int
Returns the type of the @node.static long
static TypeSystem.TypeSize
static long
static TypeSystem.TypeSize
ref()
Acquires a reference on the given `GskRenderNode`.Serializes the @node for later deserialization via
gsk_render_node_deserialize().void
unref()
Releases a reference on the given `GskRenderNode`.boolean
writeToFile
(Str filename) This function is equivalent to calling [method@Gsk.RenderNode.serialize]
followed by [func@GLib.file_set_contents].boolean
writeToFile
(String filename) This function is equivalent to calling [method@Gsk.RenderNode.serialize]
followed by [func@GLib.file_set_contents].Methods inherited from class ch.bailu.gtk.type.Pointer
asCPointer, cast, connectSignal, disconnectSignals, disconnectSignals, equals, hashCode, throwIfNull, throwNullPointerException, toString, unregisterCallbacks, unregisterCallbacks
Methods inherited from class ch.bailu.gtk.type.Type
asCPointer, asCPointer, asCPointerNotNull, asJnaPointer, asJnaPointer, asPointer, asPointer, cast, cast, throwIfNull
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.bailu.gtk.type.PointerInterface
asCPointerNotNull, asJnaPointer, asPointer, isNotNull, isNull
-
Constructor Details
-
RenderNode
-
-
Method Details
-
getClassHandler
-
draw
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
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
Acquires a reference on the given `GskRenderNode`.- Returns:
- the `GskRenderNode` with an additional reference
-
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
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
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 dataerror_func
- Callback on parsing errorsuser_data
- user_data for @error_func- Returns:
- a new `GskRenderNode`
-
getTypeID
public static long getTypeID() -
getParentTypeID
public static long getParentTypeID() -
getTypeSize
-
getParentTypeSize
-
getInstanceSize
public static int getInstanceSize()
-