<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
<!ENTITY pi "&#960;">
<!ENTITY solidus "&#8260;">
]>
<refentry id="GtkSnapshot">
<refmeta>
<refentrytitle role="top_of_page" id="GtkSnapshot.top_of_page">GtkSnapshot</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkSnapshot</refname>
<refpurpose>Auxiliary object for snapshots</refpurpose>
</refnamediv>

<refsect1 id="GtkSnapshot.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="GtkSnapshot"><returnvalue>GtkSnapshot</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-new">gtk_snapshot_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GskRenderNode"><returnvalue>GskRenderNode</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-to-node">gtk_snapshot_to_node</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkPaintable"><returnvalue>GdkPaintable</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-to-paintable">gtk_snapshot_to_paintable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GskRenderNode"><returnvalue>GskRenderNode</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-free-to-node">gtk_snapshot_free_to_node</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GdkPaintable"><returnvalue>GdkPaintable</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-free-to-paintable">gtk_snapshot_free_to_paintable</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-opacity">gtk_snapshot_push_opacity</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-color-matrix">gtk_snapshot_push_color_matrix</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-repeat">gtk_snapshot_push_repeat</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-clip">gtk_snapshot_push_clip</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-rounded-clip">gtk_snapshot_push_rounded_clip</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-cross-fade">gtk_snapshot_push_cross_fade</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-blend">gtk_snapshot_push_blend</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-blur">gtk_snapshot_push_blur</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-shadow">gtk_snapshot_push_shadow</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-push-debug">gtk_snapshot_push_debug</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-pop">gtk_snapshot_pop</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-save">gtk_snapshot_save</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-restore">gtk_snapshot_restore</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-transform">gtk_snapshot_transform</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-transform-matrix">gtk_snapshot_transform_matrix</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-translate">gtk_snapshot_translate</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-translate-3d">gtk_snapshot_translate_3d</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-rotate">gtk_snapshot_rotate</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-rotate-3d">gtk_snapshot_rotate_3d</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-scale">gtk_snapshot_scale</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-scale-3d">gtk_snapshot_scale_3d</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-perspective">gtk_snapshot_perspective</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-node">gtk_snapshot_append_node</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-cairo">gtk_snapshot_append_cairo</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-texture">gtk_snapshot_append_texture</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-color">gtk_snapshot_append_color</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-layout">gtk_snapshot_append_layout</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-linear-gradient">gtk_snapshot_append_linear_gradient</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-repeating-linear-gradient">gtk_snapshot_append_repeating_linear_gradient</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-border">gtk_snapshot_append_border</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-inset-shadow">gtk_snapshot_append_inset_shadow</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-append-outset-shadow">gtk_snapshot_append_outset_shadow</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-render-background">gtk_snapshot_render_background</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-render-frame">gtk_snapshot_render_frame</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-render-focus">gtk_snapshot_render_focus</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-render-layout">gtk_snapshot_render_layout</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="gtk-snapshot-render-insertion-cursor">gtk_snapshot_render_insertion_cursor</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkSnapshot.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="typedef_keyword">typedef</entry><entry role="function_name"><link linkend="GtkSnapshot">GtkSnapshot</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkSnapshot.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GdkSnapshot">GdkSnapshot</link>
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GtkSnapshot
</screen>
</refsect1>

<refsect1 id="GtkSnapshot.includes"><title>Includes</title><synopsis>#include &lt;gtk/gtk.h&gt;
</synopsis></refsect1>

<refsect1 id="GtkSnapshot.description" role="desc">
<title role="desc.title">Description</title>
<para>GtkSnapshot is an auxiliary object that assists in creating <link linkend="GskRenderNodes"><type>GskRenderNodes</type></link>
in the <link linkend="GdkPaintableInterface.snapshot"><function>GdkPaintableInterface.snapshot()</function></link> vfunc. It functions in a similar way to
a cairo context, and maintains a stack of render nodes and their associated
transformations.</para>
<para>The node at the top of the stack is the the one that gtk_snapshot_append_…
functions operate on. Use the gtk_snapshot_push_… functions and <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>
to change the current node.</para>
<para>The typical way to obtain a GtkSnapshot object is as an argument to
the <link linkend="GtkWidgetClass.snapshot"><function>GtkWidgetClass.snapshot()</function></link> vfunc. If you need to create your own GtkSnapshot,
use <link linkend="gtk-snapshot-new"><function>gtk_snapshot_new()</function></link>.</para>

</refsect1>
<refsect1 id="GtkSnapshot.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-snapshot-new" role="function">
<title>gtk_snapshot_new&#160;()</title>
<indexterm zone="gtk-snapshot-new"><primary>gtk_snapshot_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkSnapshot"><returnvalue>GtkSnapshot</returnvalue></link>&#160;*
gtk_snapshot_new (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link>.</para>
<refsect3 id="gtk-snapshot-new.returns" role="returns">
<title>Returns</title>
<para> a newly-allocated <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-to-node" role="function">
<title>gtk_snapshot_to_node&#160;()</title>
<indexterm zone="gtk-snapshot-to-node"><primary>gtk_snapshot_to_node</primary></indexterm>
<programlisting language="C"><link linkend="GskRenderNode"><returnvalue>GskRenderNode</returnvalue></link>&#160;*
gtk_snapshot_to_node (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>);</programlisting>
<para>Returns the render node that was constructed
by <parameter>snapshot</parameter>
. After calling this function, it
is no longer possible to add more nodes to
<parameter>snapshot</parameter>
. The only function that should be
called after this is <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
<refsect3 id="gtk-snapshot-to-node.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-snapshot-to-node.returns" role="returns">
<title>Returns</title>
<para>the constructed <link linkend="GskRenderNode"><type>GskRenderNode</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-to-paintable" role="function">
<title>gtk_snapshot_to_paintable&#160;()</title>
<indexterm zone="gtk-snapshot-to-paintable"><primary>gtk_snapshot_to_paintable</primary></indexterm>
<programlisting language="C"><link linkend="GdkPaintable"><returnvalue>GdkPaintable</returnvalue></link>&#160;*
gtk_snapshot_to_paintable (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter>const <link linkend="graphene-size-t"><type>graphene_size_t</type></link> *size</parameter>);</programlisting>
<para>Returns a paintable encapsulating the render node
that was constructed by <parameter>snapshot</parameter>
. After calling
this function, it is no longer possible to add more
nodes to <parameter>snapshot</parameter>
. The only function that should be
called after this is <link linkend="g-object-unref"><function>g_object_unref()</function></link>.</para>
<refsect3 id="gtk-snapshot-to-paintable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>size</para></entry>
<entry role="parameter_description"><para>The size of the resulting paintable
or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to use the bounds of the snapshot. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-snapshot-to-paintable.returns" role="returns">
<title>Returns</title>
<para>a new <link linkend="GdkPaintable"><type>GdkPaintable</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-free-to-node" role="function">
<title>gtk_snapshot_free_to_node&#160;()</title>
<indexterm zone="gtk-snapshot-free-to-node"><primary>gtk_snapshot_free_to_node</primary></indexterm>
<programlisting language="C"><link linkend="GskRenderNode"><returnvalue>GskRenderNode</returnvalue></link>&#160;*
gtk_snapshot_free_to_node (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>);</programlisting>
<para>Returns the node that was constructed by <parameter>snapshot</parameter>

and frees <parameter>snapshot</parameter>
.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="gtk-snapshot-free-to-node.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-snapshot-free-to-node.returns" role="returns">
<title>Returns</title>
<para>a newly-created <link linkend="GskRenderNode"><type>GskRenderNode</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-free-to-paintable" role="function">
<title>gtk_snapshot_free_to_paintable&#160;()</title>
<indexterm zone="gtk-snapshot-free-to-paintable"><primary>gtk_snapshot_free_to_paintable</primary></indexterm>
<programlisting language="C"><link linkend="GdkPaintable"><returnvalue>GdkPaintable</returnvalue></link>&#160;*
gtk_snapshot_free_to_paintable (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                <parameter>const <link linkend="graphene-size-t"><type>graphene_size_t</type></link> *size</parameter>);</programlisting>
<para>Returns a paintable for the node that was
constructed by <parameter>snapshot</parameter>
 and frees <parameter>snapshot</parameter>
.</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="gtk-snapshot-free-to-paintable.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>size</para></entry>
<entry role="parameter_description"><para>The size of the resulting paintable
or <link linkend="NULL:CAPS"><literal>NULL</literal></link> to use the bounds of the snapshot. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-snapshot-free-to-paintable.returns" role="returns">
<title>Returns</title>
<para>a newly-created <link linkend="GdkPaintable"><type>GdkPaintable</type></link>. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-opacity" role="function">
<title>gtk_snapshot_push_opacity&#160;()</title>
<indexterm zone="gtk-snapshot-push-opacity"><primary>gtk_snapshot_push_opacity</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_opacity (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter><link linkend="double"><type>double</type></link> opacity</parameter>);</programlisting>
<para>Modifies the opacity of an image.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-opacity.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>opacity</para></entry>
<entry role="parameter_description"><para>the opacity to use</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-color-matrix" role="function">
<title>gtk_snapshot_push_color_matrix&#160;()</title>
<indexterm zone="gtk-snapshot-push-color-matrix"><primary>gtk_snapshot_push_color_matrix</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_color_matrix (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                <parameter>const <link linkend="graphene-matrix-t"><type>graphene_matrix_t</type></link> *color_matrix</parameter>,
                                <parameter>const <link linkend="graphene-vec4-t"><type>graphene_vec4_t</type></link> *color_offset</parameter>);</programlisting>
<para>Modifies the colors of an image by applying an affine transformation
in RGB space.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-color-matrix.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color_matrix</para></entry>
<entry role="parameter_description"><para>the color matrix to use</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color_offset</para></entry>
<entry role="parameter_description"><para>the color offset to use</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-repeat" role="function">
<title>gtk_snapshot_push_repeat&#160;()</title>
<indexterm zone="gtk-snapshot-push-repeat"><primary>gtk_snapshot_push_repeat</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_repeat (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                          <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>,
                          <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *child_bounds</parameter>);</programlisting>
<para>Creates a node that repeats the child node.</para>
<para>The child is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-repeat.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the bounds within which to repeat</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>child_bounds</para></entry>
<entry role="parameter_description"><para>the bounds of the child or <link linkend="NULL:CAPS"><literal>NULL</literal></link>
to use the full size of the collected child node. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>nullable</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-clip" role="function">
<title>gtk_snapshot_push_clip&#160;()</title>
<indexterm zone="gtk-snapshot-push-clip"><primary>gtk_snapshot_push_clip</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_clip (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                        <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>);</programlisting>
<para>Clips an image to a rectangle.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-clip.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the rectangle to clip to</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-rounded-clip" role="function">
<title>gtk_snapshot_push_rounded_clip&#160;()</title>
<indexterm zone="gtk-snapshot-push-rounded-clip"><primary>gtk_snapshot_push_rounded_clip</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_rounded_clip (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                <parameter>const <link linkend="GskRoundedRect"><type>GskRoundedRect</type></link> *bounds</parameter>);</programlisting>
<para>Clips an image to a rounded rectangle.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-rounded-clip.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the rounded rectangle to clip to</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-cross-fade" role="function">
<title>gtk_snapshot_push_cross_fade&#160;()</title>
<indexterm zone="gtk-snapshot-push-cross-fade"><primary>gtk_snapshot_push_cross_fade</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_cross_fade (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                              <parameter><link linkend="double"><type>double</type></link> progress</parameter>);</programlisting>
<para>Snapshots a cross-fade operation between two images with the
given <parameter>progress</parameter>
.</para>
<para>Until the first call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>, the start image
will be snapshot. After that call, the end image will be recorded
until the second call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<para>Calling this function requires 2 calls to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-cross-fade.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>progress</para></entry>
<entry role="parameter_description"><para>progress between 0.0 and 1.0</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-blend" role="function">
<title>gtk_snapshot_push_blend&#160;()</title>
<indexterm zone="gtk-snapshot-push-blend"><primary>gtk_snapshot_push_blend</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_blend (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                         <parameter><link linkend="GskBlendMode"><type>GskBlendMode</type></link> blend_mode</parameter>);</programlisting>
<para>Blends together 2 images with the given blend mode.</para>
<para>Until the first call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>, the bottom image for the
blend operation will be recorded. After that call, the top image to
be blended will be recorded until the second call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<para>Calling this function requires 2 subsequent calls to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-blend.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>blend_mode</para></entry>
<entry role="parameter_description"><para>blend mode to use</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-blur" role="function">
<title>gtk_snapshot_push_blur&#160;()</title>
<indexterm zone="gtk-snapshot-push-blur"><primary>gtk_snapshot_push_blur</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_blur (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                        <parameter><link linkend="double"><type>double</type></link> radius</parameter>);</programlisting>
<para>Blurs an image.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-blur.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>radius</para></entry>
<entry role="parameter_description"><para>the blur radius to use</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-shadow" role="function">
<title>gtk_snapshot_push_shadow&#160;()</title>
<indexterm zone="gtk-snapshot-push-shadow"><primary>gtk_snapshot_push_shadow</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_shadow (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                          <parameter>const <link linkend="GskShadow"><type>GskShadow</type></link> *shadow</parameter>,
                          <parameter><link linkend="gsize"><type>gsize</type></link> n_shadows</parameter>);</programlisting>
<para>Applies a shadow to an image.</para>
<para>The image is recorded until the next call to <link linkend="gtk-snapshot-pop"><function>gtk_snapshot_pop()</function></link>.</para>
<refsect3 id="gtk-snapshot-push-shadow.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>shadow</para></entry>
<entry role="parameter_description"><para>the first shadow specification</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>n_shadows</para></entry>
<entry role="parameter_description"><para>number of shadow specifications</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-push-debug" role="function">
<title>gtk_snapshot_push_debug&#160;()</title>
<indexterm zone="gtk-snapshot-push-debug"><primary>gtk_snapshot_push_debug</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_push_debug (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                         <parameter>const <link linkend="char"><type>char</type></link> *message</parameter>,
                         <parameter>...</parameter>);</programlisting>
<para>Inserts a debug node with a message. Debug nodes don't affect
the rendering at all, but can be helpful in identifying parts
of a render node tree dump, for example in the GTK inspector.</para>
<refsect3 id="gtk-snapshot-push-debug.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>message</para></entry>
<entry role="parameter_description"><para>a printf-style format string</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>...</para></entry>
<entry role="parameter_description"><para>arguments for <parameter>message</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-pop" role="function">
<title>gtk_snapshot_pop&#160;()</title>
<indexterm zone="gtk-snapshot-pop"><primary>gtk_snapshot_pop</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_pop (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>);</programlisting>
<para>Removes the top element from the stack of render nodes,
and appends it to the node underneath it.</para>
<refsect3 id="gtk-snapshot-pop.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-save" role="function">
<title>gtk_snapshot_save&#160;()</title>
<indexterm zone="gtk-snapshot-save"><primary>gtk_snapshot_save</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_save (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>);</programlisting>
<para>Makes a copy of the current state of <parameter>snapshot</parameter>
 and saves it
on an internal stack of saved states for <parameter>snapshot</parameter>
. When
<link linkend="gtk-snapshot-restore"><function>gtk_snapshot_restore()</function></link> is called, <parameter>snapshot</parameter>
 will be restored to
the saved state. Multiple calls to <link linkend="gtk-snapshot-save"><function>gtk_snapshot_save()</function></link> and
<link linkend="gtk-snapshot-restore"><function>gtk_snapshot_restore()</function></link> can be nested; each call to
<link linkend="gtk-snapshot-restore"><function>gtk_snapshot_restore()</function></link> restores the state from the matching paired
<link linkend="gtk-snapshot-save"><function>gtk_snapshot_save()</function></link>.</para>
<para>It is necessary to clear all saved states with corresponding calls
to <link linkend="gtk-snapshot-restore"><function>gtk_snapshot_restore()</function></link>.</para>
<refsect3 id="gtk-snapshot-save.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-restore" role="function">
<title>gtk_snapshot_restore&#160;()</title>
<indexterm zone="gtk-snapshot-restore"><primary>gtk_snapshot_restore</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_restore (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>);</programlisting>
<para>Restores <parameter>snapshot</parameter>
 to the state saved by a preceding call to
<link linkend="gtk-snapshot-save"><function>gtk_snapshot_save()</function></link> and removes that state from the stack of
saved states.</para>
<refsect3 id="gtk-snapshot-restore.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-transform" role="function">
<title>gtk_snapshot_transform&#160;()</title>
<indexterm zone="gtk-snapshot-transform"><primary>gtk_snapshot_transform</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_transform (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                        <parameter><link linkend="GskTransform"><type>GskTransform</type></link> *transform</parameter>);</programlisting>
<para>Transforms <parameter>snapshot</parameter>
's coordinate system with the given <parameter>transform</parameter>
.</para>
<refsect3 id="gtk-snapshot-transform.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>transform</para></entry>
<entry role="parameter_description"><para>the transform to apply. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>allow-none</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-transform-matrix" role="function">
<title>gtk_snapshot_transform_matrix&#160;()</title>
<indexterm zone="gtk-snapshot-transform-matrix"><primary>gtk_snapshot_transform_matrix</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_transform_matrix (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                               <parameter>const <link linkend="graphene-matrix-t"><type>graphene_matrix_t</type></link> *matrix</parameter>);</programlisting>
<para>Transforms <parameter>snapshot</parameter>
's coordinate system with the given <parameter>matrix</parameter>
.</para>
<refsect3 id="gtk-snapshot-transform-matrix.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>matrix</para></entry>
<entry role="parameter_description"><para>the matrix to multiply the transform with</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-translate" role="function">
<title>gtk_snapshot_translate&#160;()</title>
<indexterm zone="gtk-snapshot-translate"><primary>gtk_snapshot_translate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_translate (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                        <parameter>const <link linkend="graphene-point-t"><type>graphene_point_t</type></link> *point</parameter>);</programlisting>
<para>Translates <parameter>snapshot</parameter>
's coordinate system by <parameter>point</parameter>
 in 2-dimensional space.</para>
<refsect3 id="gtk-snapshot-translate.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>point</para></entry>
<entry role="parameter_description"><para>the point to translate the snapshot by</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-translate-3d" role="function">
<title>gtk_snapshot_translate_3d&#160;()</title>
<indexterm zone="gtk-snapshot-translate-3d"><primary>gtk_snapshot_translate_3d</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_translate_3d (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter>const <link linkend="graphene-point3d-t"><type>graphene_point3d_t</type></link> *point</parameter>);</programlisting>
<para>Translates <parameter>snapshot</parameter>
's coordinate system by <parameter>point</parameter>
.</para>
<refsect3 id="gtk-snapshot-translate-3d.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>point</para></entry>
<entry role="parameter_description"><para>the point to translate the snapshot by</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-rotate" role="function">
<title>gtk_snapshot_rotate&#160;()</title>
<indexterm zone="gtk-snapshot-rotate"><primary>gtk_snapshot_rotate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_rotate (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                     <parameter><link linkend="float"><type>float</type></link> angle</parameter>);</programlisting>
<para>Rotates @<parameter>snapshot</parameter>
's coordinate system by <parameter>angle</parameter>
 degrees in 2D space -
or in 3D speak, rotates around the z axis.</para>
<refsect3 id="gtk-snapshot-rotate.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>angle</para></entry>
<entry role="parameter_description"><para>the rotation angle, in degrees (clockwise)</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-rotate-3d" role="function">
<title>gtk_snapshot_rotate_3d&#160;()</title>
<indexterm zone="gtk-snapshot-rotate-3d"><primary>gtk_snapshot_rotate_3d</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_rotate_3d (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                        <parameter><link linkend="float"><type>float</type></link> angle</parameter>,
                        <parameter>const <link linkend="graphene-vec3-t"><type>graphene_vec3_t</type></link> *axis</parameter>);</programlisting>
<para>Rotates <parameter>snapshot</parameter>
's coordinate system by <parameter>angle</parameter>
 degrees around <parameter>axis</parameter>
.</para>
<para>For a rotation in 2D space, use <link linkend="gsk-transform-rotate"><function>gsk_transform_rotate()</function></link>.</para>
<refsect3 id="gtk-snapshot-rotate-3d.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>angle</para></entry>
<entry role="parameter_description"><para>the rotation angle, in degrees (clockwise)</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>axis</para></entry>
<entry role="parameter_description"><para>The rotation axis</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-scale" role="function">
<title>gtk_snapshot_scale&#160;()</title>
<indexterm zone="gtk-snapshot-scale"><primary>gtk_snapshot_scale</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_scale (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                    <parameter><link linkend="float"><type>float</type></link> factor_x</parameter>,
                    <parameter><link linkend="float"><type>float</type></link> factor_y</parameter>);</programlisting>
<para>Scales <parameter>snapshot</parameter>
's coordinate system in 2-dimensional space by
the given factors.</para>
<para>Use <link linkend="gtk-snapshot-scale-3d"><function>gtk_snapshot_scale_3d()</function></link> to scale in all 3 dimensions.</para>
<refsect3 id="gtk-snapshot-scale.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factor_x</para></entry>
<entry role="parameter_description"><para>scaling factor on the X axis</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factor_y</para></entry>
<entry role="parameter_description"><para>scaling factor on the Y axis</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-scale-3d" role="function">
<title>gtk_snapshot_scale_3d&#160;()</title>
<indexterm zone="gtk-snapshot-scale-3d"><primary>gtk_snapshot_scale_3d</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_scale_3d (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                       <parameter><link linkend="float"><type>float</type></link> factor_x</parameter>,
                       <parameter><link linkend="float"><type>float</type></link> factor_y</parameter>,
                       <parameter><link linkend="float"><type>float</type></link> factor_z</parameter>);</programlisting>
<para>Scales <parameter>snapshot</parameter>
's coordinate system by the given factors.</para>
<refsect3 id="gtk-snapshot-scale-3d.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factor_x</para></entry>
<entry role="parameter_description"><para>scaling factor on the X axis</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factor_y</para></entry>
<entry role="parameter_description"><para>scaling factor on the Y axis</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factor_z</para></entry>
<entry role="parameter_description"><para>scaling factor on the Z axis</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-perspective" role="function">
<title>gtk_snapshot_perspective&#160;()</title>
<indexterm zone="gtk-snapshot-perspective"><primary>gtk_snapshot_perspective</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_perspective (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                          <parameter><link linkend="float"><type>float</type></link> depth</parameter>);</programlisting>
<para>Applies a perspective projection transform.</para>
<para>See <link linkend="gsk-transform-perspective"><function>gsk_transform_perspective()</function></link> for a discussion on the details.</para>
<refsect3 id="gtk-snapshot-perspective.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>depth</para></entry>
<entry role="parameter_description"><para>distance of the z=0 plane</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-node" role="function">
<title>gtk_snapshot_append_node&#160;()</title>
<indexterm zone="gtk-snapshot-append-node"><primary>gtk_snapshot_append_node</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_node (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                          <parameter><link linkend="GskRenderNode"><type>GskRenderNode</type></link> *node</parameter>);</programlisting>
<para>Appends <parameter>node</parameter>
 to the current render node of <parameter>snapshot</parameter>
,
without changing the current node. If <parameter>snapshot</parameter>
 does
not have a current node yet, <parameter>node</parameter>
 will become the
initial node.</para>
<refsect3 id="gtk-snapshot-append-node.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>node</para></entry>
<entry role="parameter_description"><para>a <link linkend="GskRenderNode"><type>GskRenderNode</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-cairo" role="function">
<title>gtk_snapshot_append_cairo&#160;()</title>
<indexterm zone="gtk-snapshot-append-cairo"><primary>gtk_snapshot_append_cairo</primary></indexterm>
<programlisting language="C"><link linkend="cairo-t"><returnvalue>cairo_t</returnvalue></link>&#160;*
gtk_snapshot_append_cairo (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>);</programlisting>
<para>Creates a new render node and appends it to the current render
node of <parameter>snapshot</parameter>
, without changing the current node.</para>
<refsect3 id="gtk-snapshot-append-cairo.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the bounds for the new node</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="gtk-snapshot-append-cairo.returns" role="returns">
<title>Returns</title>
<para> a cairo_t suitable for drawing the contents of the newly
created render node</para>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-texture" role="function">
<title>gtk_snapshot_append_texture&#160;()</title>
<indexterm zone="gtk-snapshot-append-texture"><primary>gtk_snapshot_append_texture</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_texture (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                             <parameter><link linkend="GdkTexture"><type>GdkTexture</type></link> *texture</parameter>,
                             <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>);</programlisting>
<para>Creates a new render node drawing the <parameter>texture</parameter>
 into the given <parameter>bounds</parameter>
 and appends it
to the current render node of <parameter>snapshot</parameter>
.</para>
<refsect3 id="gtk-snapshot-append-texture.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>texture</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkTexture"><type>GdkTexture</type></link> to render</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the bounds for the new node</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-color" role="function">
<title>gtk_snapshot_append_color&#160;()</title>
<indexterm zone="gtk-snapshot-append-color"><primary>gtk_snapshot_append_color</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_color (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter>const <link linkend="GdkRGBA"><type>GdkRGBA</type></link> *color</parameter>,
                           <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>);</programlisting>
<para>Creates a new render node drawing the <parameter>color</parameter>
 into the given <parameter>bounds</parameter>
 and appends it
to the current render node of <parameter>snapshot</parameter>
.</para>
<para>You should try to avoid calling this function if <parameter>color</parameter>
 is transparent.</para>
<refsect3 id="gtk-snapshot-append-color.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color</para></entry>
<entry role="parameter_description"><para>the <link linkend="GdkRGBA"><type>GdkRGBA</type></link> to draw</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the bounds for the new node</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-layout" role="function">
<title>gtk_snapshot_append_layout&#160;()</title>
<indexterm zone="gtk-snapshot-append-layout"><primary>gtk_snapshot_append_layout</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_layout (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                            <parameter><link linkend="PangoLayout"><type>PangoLayout</type></link> *layout</parameter>,
                            <parameter>const <link linkend="GdkRGBA"><type>GdkRGBA</type></link> *color</parameter>);</programlisting>
<para>Creates render nodes for rendering <parameter>layout</parameter>
 in the given foregound <parameter>color</parameter>

and appends them to the current node of <parameter>snapshot</parameter>
 without changing the
current node.</para>
<refsect3 id="gtk-snapshot-append-layout.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>layout</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoLayout"><type>PangoLayout</type></link> to render</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color</para></entry>
<entry role="parameter_description"><para>the foreground color to render the layout in</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-linear-gradient" role="function">
<title>gtk_snapshot_append_linear_gradient&#160;()</title>
<indexterm zone="gtk-snapshot-append-linear-gradient"><primary>gtk_snapshot_append_linear_gradient</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_linear_gradient (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                     <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>,
                                     <parameter>const <link linkend="graphene-point-t"><type>graphene_point_t</type></link> *start_point</parameter>,
                                     <parameter>const <link linkend="graphene-point-t"><type>graphene_point_t</type></link> *end_point</parameter>,
                                     <parameter>const <link linkend="GskColorStop"><type>GskColorStop</type></link> *stops</parameter>,
                                     <parameter><link linkend="gsize"><type>gsize</type></link> n_stops</parameter>);</programlisting>
<para>Appends a linear gradient node with the given stops to <parameter>snapshot</parameter>
.</para>
<refsect3 id="gtk-snapshot-append-linear-gradient.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the rectangle to render the linear gradient into</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start_point</para></entry>
<entry role="parameter_description"><para>the point at which the linear gradient will begin</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>end_point</para></entry>
<entry role="parameter_description"><para>the point at which the linear gradient will finish</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>stops</para></entry>
<entry role="parameter_description"><para>a pointer to an array of <link linkend="GskColorStop"><type>GskColorStop</type></link> defining the gradient. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_stops]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_stops</para></entry>
<entry role="parameter_description"><para>the number of elements in <parameter>stops</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-repeating-linear-gradient" role="function">
<title>gtk_snapshot_append_repeating_linear_gradient&#160;()</title>
<indexterm zone="gtk-snapshot-append-repeating-linear-gradient"><primary>gtk_snapshot_append_repeating_linear_gradient</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_repeating_linear_gradient
                               (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                <parameter>const <link linkend="graphene-rect-t"><type>graphene_rect_t</type></link> *bounds</parameter>,
                                <parameter>const <link linkend="graphene-point-t"><type>graphene_point_t</type></link> *start_point</parameter>,
                                <parameter>const <link linkend="graphene-point-t"><type>graphene_point_t</type></link> *end_point</parameter>,
                                <parameter>const <link linkend="GskColorStop"><type>GskColorStop</type></link> *stops</parameter>,
                                <parameter><link linkend="gsize"><type>gsize</type></link> n_stops</parameter>);</programlisting>
<para>Appends a repeating linear gradient node with the given stops to <parameter>snapshot</parameter>
.</para>
<refsect3 id="gtk-snapshot-append-repeating-linear-gradient.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>bounds</para></entry>
<entry role="parameter_description"><para>the rectangle to render the linear gradient into</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>start_point</para></entry>
<entry role="parameter_description"><para>the point at which the linear gradient will begin</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>end_point</para></entry>
<entry role="parameter_description"><para>the point at which the linear gradient will finish</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>stops</para></entry>
<entry role="parameter_description"><para>a pointer to an array of <link linkend="GskColorStop"><type>GskColorStop</type></link> defining the gradient. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_stops]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_stops</para></entry>
<entry role="parameter_description"><para>the number of elements in <parameter>stops</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-border" role="function">
<title>gtk_snapshot_append_border&#160;()</title>
<indexterm zone="gtk-snapshot-append-border"><primary>gtk_snapshot_append_border</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_border (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                            <parameter>const <link linkend="GskRoundedRect"><type>GskRoundedRect</type></link> *outline</parameter>,
                            <parameter>const <link linkend="float"><type>float</type></link> border_width[4]</parameter>,
                            <parameter>const <link linkend="GdkRGBA"><type>GdkRGBA</type></link> border_color[4]</parameter>);</programlisting>
<para>Appends a stroked border rectangle inside the given <parameter>outline</parameter>
. The
4 sides of the border can have different widths and colors.</para>
<refsect3 id="gtk-snapshot-append-border.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>outline</para></entry>
<entry role="parameter_description"><para>a <link linkend="GskRoundedRect"><type>GskRoundedRect</type></link> describing the outline of the border</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>border_width</para></entry>
<entry role="parameter_description"><para>the stroke width of the border on
the top, right, bottom and left side respectively. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> fixed-size=4]</emphasis></entry></row>
<row><entry role="parameter_name"><para>border_color</para></entry>
<entry role="parameter_description"><para>the color used on the top, right,
bottom and left side. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> fixed-size=4]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-inset-shadow" role="function">
<title>gtk_snapshot_append_inset_shadow&#160;()</title>
<indexterm zone="gtk-snapshot-append-inset-shadow"><primary>gtk_snapshot_append_inset_shadow</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_inset_shadow (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                  <parameter>const <link linkend="GskRoundedRect"><type>GskRoundedRect</type></link> *outline</parameter>,
                                  <parameter>const <link linkend="GdkRGBA"><type>GdkRGBA</type></link> *color</parameter>,
                                  <parameter><link linkend="float"><type>float</type></link> dx</parameter>,
                                  <parameter><link linkend="float"><type>float</type></link> dy</parameter>,
                                  <parameter><link linkend="float"><type>float</type></link> spread</parameter>,
                                  <parameter><link linkend="float"><type>float</type></link> blur_radius</parameter>);</programlisting>
<para>Appends an inset shadow into the box given by <parameter>outline</parameter>
.</para>
<refsect3 id="gtk-snapshot-append-inset-shadow.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>outline</para></entry>
<entry role="parameter_description"><para>outline of the region surrounded by shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color</para></entry>
<entry role="parameter_description"><para>color of the shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>dx</para></entry>
<entry role="parameter_description"><para>horizontal offset of shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>dy</para></entry>
<entry role="parameter_description"><para>vertical offset of shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>spread</para></entry>
<entry role="parameter_description"><para>how far the shadow spreads towards the inside</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>blur_radius</para></entry>
<entry role="parameter_description"><para>how much blur to apply to the shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-append-outset-shadow" role="function">
<title>gtk_snapshot_append_outset_shadow&#160;()</title>
<indexterm zone="gtk-snapshot-append-outset-shadow"><primary>gtk_snapshot_append_outset_shadow</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_append_outset_shadow (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                   <parameter>const <link linkend="GskRoundedRect"><type>GskRoundedRect</type></link> *outline</parameter>,
                                   <parameter>const <link linkend="GdkRGBA"><type>GdkRGBA</type></link> *color</parameter>,
                                   <parameter><link linkend="float"><type>float</type></link> dx</parameter>,
                                   <parameter><link linkend="float"><type>float</type></link> dy</parameter>,
                                   <parameter><link linkend="float"><type>float</type></link> spread</parameter>,
                                   <parameter><link linkend="float"><type>float</type></link> blur_radius</parameter>);</programlisting>
<para>Appends an outset shadow node around the box given by <parameter>outline</parameter>
.</para>
<refsect3 id="gtk-snapshot-append-outset-shadow.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>outline</para></entry>
<entry role="parameter_description"><para>outline of the region surrounded by shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>color</para></entry>
<entry role="parameter_description"><para>color of the shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>dx</para></entry>
<entry role="parameter_description"><para>horizontal offset of shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>dy</para></entry>
<entry role="parameter_description"><para>vertical offset of shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>spread</para></entry>
<entry role="parameter_description"><para>how far the shadow spreads towards the outside</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>blur_radius</para></entry>
<entry role="parameter_description"><para>how much blur to apply to the shadow</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-render-background" role="function">
<title>gtk_snapshot_render_background&#160;()</title>
<indexterm zone="gtk-snapshot-render-background"><primary>gtk_snapshot_render_background</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_render_background (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                <parameter><link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> *context</parameter>,
                                <parameter><link linkend="gdouble"><type>gdouble</type></link> x</parameter>,
                                <parameter><link linkend="gdouble"><type>gdouble</type></link> y</parameter>,
                                <parameter><link linkend="gdouble"><type>gdouble</type></link> width</parameter>,
                                <parameter><link linkend="gdouble"><type>gdouble</type></link> height</parameter>);</programlisting>
<para>Creates a render node for the CSS background according to <parameter>context</parameter>
,
and appends it to the current node of <parameter>snapshot</parameter>
, without changing
the current node.</para>
<refsect3 id="gtk-snapshot-render-background.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>context</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> to use</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>X origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>Y origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>rectangle width</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>rectangle height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-render-frame" role="function">
<title>gtk_snapshot_render_frame&#160;()</title>
<indexterm zone="gtk-snapshot-render-frame"><primary>gtk_snapshot_render_frame</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_render_frame (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter><link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> *context</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> x</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> y</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> width</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> height</parameter>);</programlisting>
<para>Creates a render node for the CSS border according to <parameter>context</parameter>
,
and appends it to the current node of <parameter>snapshot</parameter>
, without changing
the current node.</para>
<refsect3 id="gtk-snapshot-render-frame.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>context</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> to use</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>X origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>Y origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>rectangle width</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>rectangle height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-render-focus" role="function">
<title>gtk_snapshot_render_focus&#160;()</title>
<indexterm zone="gtk-snapshot-render-focus"><primary>gtk_snapshot_render_focus</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_render_focus (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                           <parameter><link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> *context</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> x</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> y</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> width</parameter>,
                           <parameter><link linkend="gdouble"><type>gdouble</type></link> height</parameter>);</programlisting>
<para>Creates a render node for the focus outline according to <parameter>context</parameter>
,
and appends it to the current node of <parameter>snapshot</parameter>
, without changing
the current node.</para>
<refsect3 id="gtk-snapshot-render-focus.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>context</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> to use</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>X origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>Y origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>rectangle width</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>rectangle height</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-render-layout" role="function">
<title>gtk_snapshot_render_layout&#160;()</title>
<indexterm zone="gtk-snapshot-render-layout"><primary>gtk_snapshot_render_layout</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_render_layout (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                            <parameter><link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> *context</parameter>,
                            <parameter><link linkend="gdouble"><type>gdouble</type></link> x</parameter>,
                            <parameter><link linkend="gdouble"><type>gdouble</type></link> y</parameter>,
                            <parameter><link linkend="PangoLayout"><type>PangoLayout</type></link> *layout</parameter>);</programlisting>
<para>Creates a render node for rendering <parameter>layout</parameter>
 according to the style
information in <parameter>context</parameter>
, and appends it to the current node of <parameter>snapshot</parameter>
,
without changing the current node.</para>
<refsect3 id="gtk-snapshot-render-layout.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkSnapshot"><type>GtkSnapshot</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>context</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> to use</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>X origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>Y origin of the rectangle</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>layout</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoLayout"><type>PangoLayout</type></link> to render</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="gtk-snapshot-render-insertion-cursor" role="function">
<title>gtk_snapshot_render_insertion_cursor&#160;()</title>
<indexterm zone="gtk-snapshot-render-insertion-cursor"><primary>gtk_snapshot_render_insertion_cursor</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
gtk_snapshot_render_insertion_cursor (<parameter><link linkend="GtkSnapshot"><type>GtkSnapshot</type></link> *snapshot</parameter>,
                                      <parameter><link linkend="GtkStyleContext"><type>GtkStyleContext</type></link> *context</parameter>,
                                      <parameter><link linkend="gdouble"><type>gdouble</type></link> x</parameter>,
                                      <parameter><link linkend="gdouble"><type>gdouble</type></link> y</parameter>,
                                      <parameter><link linkend="PangoLayout"><type>PangoLayout</type></link> *layout</parameter>,
                                      <parameter><link linkend="int"><type>int</type></link> index</parameter>,
                                      <parameter><link linkend="PangoDirection"><type>PangoDirection</type></link> direction</parameter>);</programlisting>
<para>Draws a text caret using <parameter>snapshot</parameter>
 at the specified index of <parameter>layout</parameter>
.</para>
<refsect3 id="gtk-snapshot-render-insertion-cursor.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>snapshot</para></entry>
<entry role="parameter_description"><para>snapshot to render to</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>context</para></entry>
<entry role="parameter_description"><para>a <link linkend="GtkStyleContext"><type>GtkStyleContext</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>X origin</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>Y origin</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>layout</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoLayout"><type>PangoLayout</type></link> of the text</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>index</para></entry>
<entry role="parameter_description"><para>the index in the <link linkend="PangoLayout"><type>PangoLayout</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>direction</para></entry>
<entry role="parameter_description"><para>the <link linkend="PangoDirection"><type>PangoDirection</type></link> of the text</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkSnapshot.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkSnapshot" role="typedef">
<title>GtkSnapshot</title>
<indexterm zone="GtkSnapshot"><primary>GtkSnapshot</primary></indexterm>
<programlisting language="C">typedef GdkSnapshot                    GtkSnapshot;
</programlisting>
</refsect2>

</refsect1>

</refentry>
