### Namespace

# Gsk – 4.0

The GTK toolkit

Version | 4.3.1
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

GObject | The base type system library
| Browse documentation
Graphene | A thin layer of mathematical types for 3D libraries
| Browse documentation
Pango | Text shaping and rendering
| Browse documentation
GDK | The GTK windowing system abstraction
| Browse documentation

#### Additional documentation

- 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.
GLRenderer | A GSK renderer that is using OpenGL.
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.
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.
TextNode | A render node drawing a set of glyphs.
TextureNode | A render node for a `GdkTexture`.
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.
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.
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`.
GLUniformType | This defines the types of the uniforms that `GskGLShaders` declare.
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.

#### 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.

#### Function Macros

ROUNDED_RECT_INIT | Initializes a `GskRoundedRect` when declaring it. All corner sizes will be initialized to 0.