### Namespace

# Gsk – 4.0

The GTK toolkit

Version | 4.15.0
Authors | GTK Development Team
License | LGPL-2.1-or-later
Website | https://www.gtk.org
Source | https://gitlab.gnome.org/GNOME/gtk/

#### Build

C headers | `gsk/gsk.h`
pkg-config files | `gtk4`

#### Dependencies

Gdk—4.0 | The GTK windowing system abstraction
| Browse documentation
Graphene—1.0 | A thin layer of mathematical types for 3D libraries
| Browse documentation

#### Additional documentation

- Paths
- Classes Hierarchy

#### Classes

BlendNode | A render node applying a blending function between its two child nodes.
BlurNode | A render node applying a blur effect to its single child.
BorderNode | A render node for a border.
CairoNode | A render node for a Cairo surface.
CairoRenderer | A GSK renderer that is using cairo.
ClipNode | A render node applying a rectangular clip to its single child node.
ColorMatrixNode | A render node controlling the color matrix of its single child node.
ColorNode | A render node for a solid color.
ConicGradientNode | A render node for a conic gradient.
ContainerNode | A render node that can contain other render nodes.
CrossFadeNode | A render node cross fading between two child nodes.
DebugNode | A render node that emits a debugging message when drawing its child node.
FillNode | A render node filling the area given by `GskPath` and `GskFillRule` with the child node. since: 4.14
GLRenderer |
GLShader | A `GskGLShader` is a snippet of GLSL that is meant to run in the fragment shader of the rendering pipeline.
GLShaderNode | A render node using a GL shader when drawing its children nodes.
InsetShadowNode | A render node for an inset shadow.
LinearGradientNode | A render node for a linear gradient.
MaskNode | A render node masking one child node with another. since: 4.10
NglRenderer |
OpacityNode | A render node controlling the opacity of its single child node.
OutsetShadowNode | A render node for an outset shadow.
RadialGradientNode | A render node for a radial gradient.
Renderer | `GskRenderer` is a class that renders a scene graph defined via a tree of `GskRenderNode` instances.
RenderNode | `GskRenderNode` is the basic block in a scene graph to be rendered using `GskRenderer`.
RepeatingLinearGradientNode | A render node for a repeating linear gradient.
RepeatingRadialGradientNode | A render node for a repeating radial gradient.
RepeatNode | A render node repeating its single child node.
RoundedClipNode | A render node applying a rounded rectangle clip to its single child.
ShadowNode | A render node drawing one or more shadows behind its single child node.
StrokeNode | A render node that will fill the area determined by stroking the the given `GskPath` using the `GskStroke` attributes. since: 4.14
SubsurfaceNode | A render node that potentially diverts a part of the scene graph to a subsurface. since: 4.14
TextNode | A render node drawing a set of glyphs.
TextureNode | A render node for a `GdkTexture`.
TextureScaleNode | A render node for a `GdkTexture`. since: 4.10
TransformNode | A render node applying a `GskTransform` to its single child node.
VulkanRenderer | A GSK renderer that is using Vulkan.

#### Structs

ColorStop | A color stop in a gradient node.
ParseLocation | A location in a parse buffer.
Path | A `GskPath` describes lines and curves that are more complex than simple rectangles. since: 4.14
PathBuilder | `GskPathBuilder` is an auxiliary object for constructing `GskPath` objects. since: 4.14
PathMeasure | `GskPathMeasure` is an object that allows measurements on `GskPath`s such as determining the length of the path. since: 4.14
PathPoint | `GskPathPoint` is an opaque type representing a point on a path. since: 4.14
RoundedRect | A rectangular region with rounded corners.
ShaderArgsBuilder | An object to build the uniforms data for a `GskGLShader`.
Shadow | The shadow parameters in a shadow node.
Stroke | A `GskStroke` struct collects the parameters that influence the operation of stroking a path. since: 4.14
Transform | `GskTransform` is an object to describe transform matrices.

#### Enumerations

BlendMode | The blend modes available for render nodes.
Corner | The corner indices used by `GskRoundedRect`.
FillRule | `GskFillRule` is used to select how paths are filled. since: 4.14
GLUniformType | This defines the types of the uniforms that `GskGLShaders` declare.
LineCap | Specifies how to render the start and end points of contours or dashes when stroking. since: 4.14
LineJoin | Specifies how to render the junction of two lines when stroking. since: 4.14
MaskMode | The mask modes available for mask nodes. since: 4.10
PathDirection | The values of the `GskPathDirection` enum are used to pick one of the four tangents at a given point on the path. since: 4.14
PathOperation | Path operations are used to describe the segments of a `GskPath`. since: 4.14
RenderNodeType | The type of a node determines what the node is rendering.
ScalingFilter | The filters used when scaling texture data.
TransformCategory | The categories of matrices relevant for GSK and GTK.

#### Bitfields

PathForeachFlags | Flags that can be passed to `gsk_path_foreach()` to influence what kinds of operations the path is decomposed into. since: 4.14

#### Error Domains

SerializationError | Errors that can happen during (de)serialization.

#### Callbacks

ParseErrorFunc | Type of callback that is called when an error occurs during node deserialization.
PathForeachFunc | Prototype of the callback to iterate through the operations of a path.

#### Functions

value_dup_render_node | Retrieves the `GskRenderNode` stored inside the given `value`, and acquires a reference to it. since: 4.6
value_get_render_node | Retrieves the `GskRenderNode` stored inside the given `value`. since: 4.6
value_set_render_node | Stores the given `GskRenderNode` inside `value`. since: 4.6
value_take_render_node | Stores the given `GskRenderNode` inside `value`. since: 4.6

#### Function Macros

INCLUDE_WARNING |
ROUNDED_RECT_INIT | Initializes a `GskRoundedRect` when declaring it. All corner sizes will be initialized to 0.
VALUE_HOLDS_RENDER_NODE | Evaluates to `TRUE` if `value` was initialized with `GSK_TYPE_RENDER_NODE`.