docs/reference/gsk/0000775000175000017500000000000013635542602014366 5ustar mclasenmclasendocs/reference/gsk/version.xml0000664000175000017500000000000713635542573016601 0ustar mclasenmclasen3.98.1 docs/reference/gsk/gsk4-docs.xml0000664000175000017500000000214213635542600016703 0ustar mclasenmclasen ]> GSK 4 Reference Manual This document is for the GSK 4 library, version &version; The latest versions can be found online at https://developer.gnome.org/gsk4/. API Reference Index of all symbols docs/reference/gsk/gsk4-sections.txt0000664000175000017500000001065413635542600017630 0ustar mclasenmclasen
GskRenderer gsk_renderer_get_surface gsk_renderer_realize gsk_renderer_unrealize gsk_renderer_is_realized gsk_renderer_render gsk_renderer_render_texture gsk_renderer_new_for_surface gsk_gl_renderer_new gsk_cairo_renderer_new gsk_vulkan_renderer_new gsk_broadway_renderer_new GSK_IS_RENDERER GSK_RENDERER GSK_TYPE_RENDERER GskRenderer GskRendererClass gsk_renderer_get_type GSK_TYPE_SCALING_FILTER
GskRenderNode gsk_render_node_ref gsk_render_node_unref GskRenderNodeType gsk_render_node_get_node_type gsk_render_node_draw GskSerializationError GskParseErrorFunc gsk_render_node_serialize gsk_render_node_deserialize gsk_render_node_write_to_file GskScalingFilter gsk_render_node_get_bounds gsk_color_node_new gsk_color_node_peek_color gsk_texture_node_new gsk_texture_node_get_texture gsk_linear_gradient_node_new gsk_linear_gradient_node_peek_start gsk_linear_gradient_node_peek_end gsk_linear_gradient_node_get_n_color_stops gsk_linear_gradient_node_peek_color_stops gsk_repeating_linear_gradient_node_new gsk_border_node_new gsk_border_node_peek_outline gsk_border_node_peek_widths gsk_border_node_peek_colors gsk_inset_shadow_node_new gsk_inset_shadow_node_peek_outline gsk_inset_shadow_node_peek_color gsk_inset_shadow_node_get_dx gsk_inset_shadow_node_get_dy gsk_inset_shadow_node_get_spread gsk_inset_shadow_node_get_blur_radius gsk_outset_shadow_node_new gsk_outset_shadow_node_peek_outline gsk_outset_shadow_node_peek_color gsk_outset_shadow_node_get_dx gsk_outset_shadow_node_get_dy gsk_outset_shadow_node_get_spread gsk_outset_shadow_node_get_blur_radius gsk_cairo_node_new gsk_cairo_node_get_draw_context gsk_cairo_node_peek_surface gsk_container_node_new gsk_container_node_get_n_children gsk_container_node_get_child gsk_transform_node_new gsk_transform_node_get_child gsk_transform_node_get_transform gsk_opacity_node_new gsk_opacity_node_get_child gsk_opacity_node_get_opacity gsk_color_matrix_node_new gsk_color_matrix_node_get_child gsk_color_matrix_node_peek_color_matrix gsk_color_matrix_node_peek_color_offset gsk_repeat_node_new gsk_repeat_node_get_child gsk_repeat_node_peek_child_bounds gsk_clip_node_new gsk_clip_node_get_child gsk_clip_node_peek_clip gsk_rounded_clip_node_new gsk_rounded_clip_node_get_child gsk_rounded_clip_node_peek_clip GskShadow gsk_shadow_node_new gsk_shadow_node_peek_shadow gsk_shadow_node_get_n_shadows gsk_shadow_node_get_child GskBlendMode gsk_blend_node_new gsk_blend_node_get_bottom_child gsk_blend_node_get_top_child gsk_blend_node_get_blend_mode gsk_cross_fade_node_new gsk_cross_fade_node_get_start_child gsk_cross_fade_node_get_end_child gsk_cross_fade_node_get_progress gsk_text_node_new gsk_text_node_peek_font gsk_text_node_peek_glyphs gsk_text_node_peek_color gsk_text_node_get_num_glyphs gsk_text_node_get_offset gsk_blur_node_new gsk_blur_node_get_child gsk_blur_node_get_radius gsk_debug_node_new gsk_debug_node_get_child gsk_debug_node_get_message GSK_IS_RENDER_NODE GSK_RENDER_NODE GSK_TYPE_RENDER_NODE GSK_VALUE_HOLDS_RENDER_NODE GskRenderNode GskRenderNodeClass gsk_render_node_get_type GSK_TYPE_BLEND_MODE gsk_serialization_error_quark GSK_SERIALIZATION_ERROR GSK_TYPE_SERIALIZATION_ERROR
GskRoundedRect GskCorner GskRoundedRect GSK_ROUNDED_RECT_INIT gsk_rounded_rect_init gsk_rounded_rect_init_copy gsk_rounded_rect_init_from_rect gsk_rounded_rect_normalize gsk_rounded_rect_offset gsk_rounded_rect_shrink gsk_rounded_rect_is_rectilinear gsk_rounded_rect_contains_point gsk_rounded_rect_contains_rect gsk_rounded_rect_intersects_rect
GskTransform GskTransform gsk_transform_ref gsk_transform_unref GskTransformCategory gsk_transform_get_category gsk_transform_print gsk_transform_to_string gsk_transform_parse gsk_transform_to_matrix gsk_transform_to_2d gsk_transform_to_affine gsk_transform_to_translate gsk_transform_transform gsk_transform_invert gsk_transform_matrix gsk_transform_matrix_with_category gsk_transform_translate gsk_transform_translate_3d gsk_transform_rotate gsk_transform_rotate_3d gsk_transform_scale gsk_transform_scale_3d gsk_transform_perspective gsk_transform_equal gsk_transform_transform_bounds gsk_transform_transform_point GSK_TYPE_TRANSFORM gsk_transform_get_type gsk_transform_new
docs/reference/gsk/html/0000775000175000017500000000000013635542603015333 5ustar mclasenmclasendocs/reference/gsk/html/gsk4.devhelp20000664000175000017500000004137313635542602017645 0ustar mclasenmclasen docs/reference/gsk/html/up-insensitive.png0000644000175000017500000000056613635542602021027 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+![/]_i03IENDB`docs/reference/gsk/html/left-insensitive.png0000644000175000017500000000061313635542602021326 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIMEƫqIDAT8͒NQ@pds`*4@W@ A!Ԇ@6^ 5hxIH R`sQp̙339B|sKEQTK@۝΁i^~Wʆ`0TJ6TcYn6A ƀ~߱>}ǭs; lYkwr 5U= /" "uU=ɲlArDzp5I4^E+P3Ɯq_p ̥iUYp=#IENDB`docs/reference/gsk/html/up.png0000644000175000017500000000040413635542602016460 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME IDAT81 @D{xa;$]r =JR1, Sd-}0̟oL:m-QO[ k TzMޠL,:ךu!tK; Pp Ot@l/̵*l}IENDB`docs/reference/gsk/html/home.png0000644000175000017500000000040013635542602016760 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME &IDAT8ҽ Aߞf`n v`6`/`Yܡ`f&k$,} 0b+ԸaQW~b O e{y N[L}.piBzmm o.I]7^[;%:VIENDB`docs/reference/gsk/html/right-insensitive.png0000644000175000017500000000056513635542602021517 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME ^IDAT8͒J` /S_$AqrW(>m"]\(49.Nd39{eM#MSIιEiHz|3{̲l3,KkV'@EEQlwyiq]Kh4:mĦ,;ts\aR5/7'Wps׭I,K1=0j0Wg> PU𻤝0 ]?qCҫιg~kA_IENDB`docs/reference/gsk/html/right.png0000644000175000017500000000040513635542602017152 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`docs/reference/gsk/html/style.css0000644000175000017500000002652613635542603017216 0ustar mclasenmclasenbody { font-family: cantarell, sans-serif; } .synopsis, .classsynopsis { /* tango:aluminium 1/2 */ background: #eeeeec; background: rgba(238, 238, 236, 0.5); border: solid 1px rgb(238, 238, 236); padding: 0.5em; } .programlisting { /* tango:sky blue 0/1 */ /* fallback for no rgba support */ background: #e6f3ff; border: solid 1px #729fcf; background: rgba(114, 159, 207, 0.1); border: solid 1px rgba(114, 159, 207, 0.2); padding: 0.5em; } .variablelist { padding: 4px; margin-left: 3em; } .variablelist td:first-child { vertical-align: top; } span.nowrap { white-space: nowrap; } div.gallery-float { float: left; padding: 10px; } div.gallery-float img { border-style: none; } div.gallery-spacer { clear: both; } a, a:visited { text-decoration: none; /* tango:sky blue 2 */ color: #3465a4; } a:hover { text-decoration: underline; /* tango:sky blue 1 */ color: #729fcf; } div.informaltable table { border-collapse: separate; border-spacing: 1em 0.3em; border: none; } div.informaltable table td, div.informaltable table th { vertical-align: top; } .function_type, .variable_type, .property_type, .signal_type, .parameter_name, .struct_member_name, .union_member_name, .define_keyword, .datatype_keyword, .typedef_keyword { text-align: right; } /* dim non-primary columns */ .c_punctuation, .function_type, .variable_type, .property_type, .signal_type, .define_keyword, .datatype_keyword, .typedef_keyword, .property_flags, .signal_flags, .parameter_annotations, .enum_member_annotations, .struct_member_annotations, .union_member_annotations { color: #888a85; } .function_type a, .function_type a:visited, .function_type a:hover, .property_type a, .property_type a:visited, .property_type a:hover, .signal_type a, .signal_type a:visited, .signal_type a:hover, .signal_flags a, .signal_flags a:visited, .signal_flags a:hover { color: #729fcf; } td p { margin: 0.25em; } div.table table { border-collapse: collapse; border-spacing: 0px; /* tango:aluminium 3 */ border: solid 1px #babdb6; } div.table table td, div.table table th { /* tango:aluminium 3 */ border: solid 1px #babdb6; padding: 3px; vertical-align: top; } div.table table th { /* tango:aluminium 2 */ background-color: #d3d7cf; } h4 { color: #555753; margin-top: 1em; margin-bottom: 1em; } hr { /* tango:aluminium 1 */ color: #d3d7cf; background: #d3d7cf; border: none 0px; height: 1px; clear: both; margin: 2.0em 0em 2.0em 0em; } dl.toc dt { padding-bottom: 0.25em; } dl.toc > dt { padding-top: 0.25em; padding-bottom: 0.25em; font-weight: bold; } dl.toc > dl { padding-bottom: 0.5em; } .parameter { font-style: normal; } .footer { padding-top: 3.5em; /* tango:aluminium 3 */ color: #babdb6; text-align: center; font-size: 80%; } .informalfigure, .figure { margin: 1em; } .informalexample, .example { margin-top: 1em; margin-bottom: 1em; } .warning { /* tango:orange 0/1 */ background: #ffeed9; background: rgba(252, 175, 62, 0.1); border-color: #ffb04f; border-color: rgba(252, 175, 62, 0.2); } .note { /* tango:chameleon 0/0.5 */ background: #d8ffb2; background: rgba(138, 226, 52, 0.1); border-color: #abf562; border-color: rgba(138, 226, 52, 0.2); } div.blockquote { border-color: #eeeeec; } .note, .warning, div.blockquote { padding: 0.5em; border-width: 1px; border-style: solid; margin: 2em; } .note p, .warning p { margin: 0; } div.warning h3.title, div.note h3.title { display: none; } p + div.section { margin-top: 1em; } div.refnamediv, div.refsynopsisdiv, div.refsect1, div.refsect2, div.toc, div.section { margin-bottom: 1em; } /* blob links */ h2 .extralinks, h3 .extralinks { float: right; /* tango:aluminium 3 */ color: #babdb6; font-size: 80%; font-weight: normal; } .lineart { color: #d3d7cf; font-weight: normal; } .annotation { /* tango:aluminium 5 */ color: #555753; font-weight: normal; } .structfield { font-style: normal; font-weight: normal; } acronym,abbr { border-bottom: 1px dotted gray; } .listing_frame { /* tango:sky blue 1 */ border: solid 1px #729fcf; border: solid 1px rgba(114, 159, 207, 0.2); padding: 0px; } .listing_lines, .listing_code { margin-top: 0px; margin-bottom: 0px; padding: 0.5em; } .listing_lines { /* tango:sky blue 0.5 */ background: #a6c5e3; background: rgba(114, 159, 207, 0.2); /* tango:aluminium 6 */ color: #2e3436; } .listing_code { /* tango:sky blue 0 */ background: #e6f3ff; background: rgba(114, 159, 207, 0.1); } .listing_code .programlisting { /* override from previous */ border: none 0px; padding: 0px; background: none; } .listing_lines pre, .listing_code pre { margin: 0px; } @media screen { /* these have a as a first child, but since there are no parent selectors * we can't use that. */ a.footnote { position: relative; top: 0em ! important; } /* this is needed so that the local anchors are displayed below the naviagtion */ div.footnote a[name], div.refnamediv a[name], div.refsect1 a[name], div.refsect2 a[name], div.index a[name], div.glossary a[name], div.sect1 a[name] { display: inline-block; position: relative; top:-5em; } /* this seems to be a bug in the xsl style sheets when generating indexes */ div.index div.index { top: 0em; } /* make space for the fixed navigation bar and add space at the bottom so that * link targets appear somewhat close to top */ body { padding-top: 2.5em; padding-bottom: 500px; max-width: 60em; } p { max-width: 60em; } /* style and size the navigation bar */ table.navigation#top { position: fixed; background: #e2e2e2; border-bottom: solid 1px #babdb6; border-spacing: 5px; margin-top: 0; margin-bottom: 0; top: 0; left: 0; z-index: 10; } table.navigation#top td { padding-left: 6px; padding-right: 6px; } .navigation a, .navigation a:visited { /* tango:sky blue 3 */ color: #204a87; } .navigation a:hover { /* tango:sky blue 2 */ color: #3465a4; } td.shortcuts { /* tango:sky blue 2 */ color: #3465a4; font-size: 80%; white-space: nowrap; } td.shortcuts .dim { color: #babdb6; } .navigation .title { font-size: 80%; max-width: none; margin: 0px; font-weight: normal; } } @media screen and (min-width: 60em) { /* screen larger than 60em */ body { margin: auto; } } @media screen and (max-width: 60em) { /* screen less than 60em */ #nav_hierarchy { display: none; } #nav_interfaces { display: none; } #nav_prerequisites { display: none; } #nav_derived_interfaces { display: none; } #nav_implementations { display: none; } #nav_child_properties { display: none; } #nav_style_properties { display: none; } #nav_index { display: none; } #nav_glossary { display: none; } .gallery_image { display: none; } .property_flags { display: none; } .signal_flags { display: none; } .parameter_annotations { display: none; } .enum_member_annotations { display: none; } .struct_member_annotations { display: none; } .union_member_annotations { display: none; } /* now that a column is hidden, optimize space */ col.parameters_name { width: auto; } col.parameters_description { width: auto; } col.struct_members_name { width: auto; } col.struct_members_description { width: auto; } col.enum_members_name { width: auto; } col.enum_members_description { width: auto; } col.union_members_name { width: auto; } col.union_members_description { width: auto; } .listing_lines { display: none; } } @media print { table.navigation { visibility: collapse; display: none; } div.titlepage table.navigation { visibility: visible; display: table; background: #e2e2e2; border: solid 1px #babdb6; margin-top: 0; margin-bottom: 0; top: 0; left: 0; height: 3em; } } .hll { background-color: #ffffcc } .c { color: #408080; font-style: italic } /* Comment */ .err { border: 1px solid #FF0000 } /* Error */ .k { color: #008000; font-weight: bold } /* Keyword */ .o { color: #666666 } /* Operator */ .ch { color: #408080; font-style: italic } /* Comment.Hashbang */ .cm { color: #408080; font-style: italic } /* Comment.Multiline */ .cp { color: #BC7A00 } /* Comment.Preproc */ .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */ .c1 { color: #408080; font-style: italic } /* Comment.Single */ .cs { color: #408080; font-style: italic } /* Comment.Special */ .gd { color: #A00000 } /* Generic.Deleted */ .ge { font-style: italic } /* Generic.Emph */ .gr { color: #FF0000 } /* Generic.Error */ .gh { color: #000080; font-weight: bold } /* Generic.Heading */ .gi { color: #00A000 } /* Generic.Inserted */ .go { color: #888888 } /* Generic.Output */ .gp { color: #000080; font-weight: bold } /* Generic.Prompt */ .gs { font-weight: bold } /* Generic.Strong */ .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ .gt { color: #0044DD } /* Generic.Traceback */ .kc { color: #008000; font-weight: bold } /* Keyword.Constant */ .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */ .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */ .kp { color: #008000 } /* Keyword.Pseudo */ .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */ .kt { color: #B00040 } /* Keyword.Type */ .m { color: #666666 } /* Literal.Number */ .s { color: #BA2121 } /* Literal.String */ .na { color: #7D9029 } /* Name.Attribute */ .nb { color: #008000 } /* Name.Builtin */ .nc { color: #0000FF; font-weight: bold } /* Name.Class */ .no { color: #880000 } /* Name.Constant */ .nd { color: #AA22FF } /* Name.Decorator */ .ni { color: #999999; font-weight: bold } /* Name.Entity */ .ne { color: #D2413A; font-weight: bold } /* Name.Exception */ .nf { color: #0000FF } /* Name.Function */ .nl { color: #A0A000 } /* Name.Label */ .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */ .nt { color: #008000; font-weight: bold } /* Name.Tag */ .nv { color: #19177C } /* Name.Variable */ .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */ .w { color: #bbbbbb } /* Text.Whitespace */ .mb { color: #666666 } /* Literal.Number.Bin */ .mf { color: #666666 } /* Literal.Number.Float */ .mh { color: #666666 } /* Literal.Number.Hex */ .mi { color: #666666 } /* Literal.Number.Integer */ .mo { color: #666666 } /* Literal.Number.Oct */ .sa { color: #BA2121 } /* Literal.String.Affix */ .sb { color: #BA2121 } /* Literal.String.Backtick */ .sc { color: #BA2121 } /* Literal.String.Char */ .dl { color: #BA2121 } /* Literal.String.Delimiter */ .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */ .s2 { color: #BA2121 } /* Literal.String.Double */ .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */ .sh { color: #BA2121 } /* Literal.String.Heredoc */ .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */ .sx { color: #008000 } /* Literal.String.Other */ .sr { color: #BB6688 } /* Literal.String.Regex */ .s1 { color: #BA2121 } /* Literal.String.Single */ .ss { color: #19177C } /* Literal.String.Symbol */ .bp { color: #008000 } /* Name.Builtin.Pseudo */ .fm { color: #0000FF } /* Name.Function.Magic */ .vc { color: #19177C } /* Name.Variable.Class */ .vg { color: #19177C } /* Name.Variable.Global */ .vi { color: #19177C } /* Name.Variable.Instance */ .vm { color: #19177C } /* Name.Variable.Magic */ .il { color: #666666 } /* Literal.Number.Integer.Long */docs/reference/gsk/html/GskRenderNode.html0000664000175000017500000037765213635542603020737 0ustar mclasenmclasen GskRenderNode: GSK 4 Reference Manual

GskRenderNode

GskRenderNode — Simple scene graph element

Functions

GskRenderNode * gsk_render_node_ref ()
void gsk_render_node_unref ()
GskRenderNodeType gsk_render_node_get_node_type ()
void gsk_render_node_draw ()
void (*GskParseErrorFunc) ()
GBytes * gsk_render_node_serialize ()
GskRenderNode * gsk_render_node_deserialize ()
gboolean gsk_render_node_write_to_file ()
void gsk_render_node_get_bounds ()
GskRenderNode * gsk_color_node_new ()
const GdkRGBA * gsk_color_node_peek_color ()
GskRenderNode * gsk_texture_node_new ()
GdkTexture * gsk_texture_node_get_texture ()
GskRenderNode * gsk_linear_gradient_node_new ()
const graphene_point_t * gsk_linear_gradient_node_peek_start ()
const graphene_point_t * gsk_linear_gradient_node_peek_end ()
gsize gsk_linear_gradient_node_get_n_color_stops ()
const GskColorStop * gsk_linear_gradient_node_peek_color_stops ()
GskRenderNode * gsk_repeating_linear_gradient_node_new ()
GskRenderNode * gsk_border_node_new ()
const GskRoundedRect * gsk_border_node_peek_outline ()
const float * gsk_border_node_peek_widths ()
const GdkRGBA * gsk_border_node_peek_colors ()
GskRenderNode * gsk_inset_shadow_node_new ()
const GskRoundedRect * gsk_inset_shadow_node_peek_outline ()
const GdkRGBA * gsk_inset_shadow_node_peek_color ()
float gsk_inset_shadow_node_get_dx ()
float gsk_inset_shadow_node_get_dy ()
float gsk_inset_shadow_node_get_spread ()
float gsk_inset_shadow_node_get_blur_radius ()
GskRenderNode * gsk_outset_shadow_node_new ()
const GskRoundedRect * gsk_outset_shadow_node_peek_outline ()
const GdkRGBA * gsk_outset_shadow_node_peek_color ()
float gsk_outset_shadow_node_get_dx ()
float gsk_outset_shadow_node_get_dy ()
float gsk_outset_shadow_node_get_spread ()
float gsk_outset_shadow_node_get_blur_radius ()
GskRenderNode * gsk_cairo_node_new ()
cairo_t * gsk_cairo_node_get_draw_context ()
cairo_surface_t * gsk_cairo_node_peek_surface ()
GskRenderNode * gsk_container_node_new ()
guint gsk_container_node_get_n_children ()
GskRenderNode * gsk_container_node_get_child ()
GskRenderNode * gsk_transform_node_new ()
GskRenderNode * gsk_transform_node_get_child ()
GskTransform * gsk_transform_node_get_transform ()
GskRenderNode * gsk_opacity_node_new ()
GskRenderNode * gsk_opacity_node_get_child ()
float gsk_opacity_node_get_opacity ()
GskRenderNode * gsk_color_matrix_node_new ()
GskRenderNode * gsk_color_matrix_node_get_child ()
const graphene_matrix_t * gsk_color_matrix_node_peek_color_matrix ()
const graphene_vec4_t * gsk_color_matrix_node_peek_color_offset ()
GskRenderNode * gsk_repeat_node_new ()
GskRenderNode * gsk_repeat_node_get_child ()
const graphene_rect_t * gsk_repeat_node_peek_child_bounds ()
GskRenderNode * gsk_clip_node_new ()
GskRenderNode * gsk_clip_node_get_child ()
const graphene_rect_t * gsk_clip_node_peek_clip ()
GskRenderNode * gsk_rounded_clip_node_new ()
GskRenderNode * gsk_rounded_clip_node_get_child ()
const GskRoundedRect * gsk_rounded_clip_node_peek_clip ()
GskRenderNode * gsk_shadow_node_new ()
const GskShadow * gsk_shadow_node_peek_shadow ()
gsize gsk_shadow_node_get_n_shadows ()
GskRenderNode * gsk_shadow_node_get_child ()
GskRenderNode * gsk_blend_node_new ()
GskRenderNode * gsk_blend_node_get_bottom_child ()
GskRenderNode * gsk_blend_node_get_top_child ()
GskBlendMode gsk_blend_node_get_blend_mode ()
GskRenderNode * gsk_cross_fade_node_new ()
GskRenderNode * gsk_cross_fade_node_get_start_child ()
GskRenderNode * gsk_cross_fade_node_get_end_child ()
float gsk_cross_fade_node_get_progress ()
GskRenderNode * gsk_text_node_new ()
PangoFont * gsk_text_node_peek_font ()
const PangoGlyphInfo * gsk_text_node_peek_glyphs ()
const GdkRGBA * gsk_text_node_peek_color ()
guint gsk_text_node_get_num_glyphs ()
const graphene_point_t * gsk_text_node_get_offset ()
GskRenderNode * gsk_blur_node_new ()
GskRenderNode * gsk_blur_node_get_child ()
float gsk_blur_node_get_radius ()
GskRenderNode * gsk_debug_node_new ()
GskRenderNode * gsk_debug_node_get_child ()
const char * gsk_debug_node_get_message ()

Types and Values

enum GskRenderNodeType
enum GskSerializationError
enum GskScalingFilter
struct GskShadow
enum GskBlendMode

Object Hierarchy

    GBoxed
    ╰── GskRenderNode

Description

GskRenderNode is the basic block in a scene graph to be rendered using GskRenderer.

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

Each node has an associated drawing surface, which has the size of the rectangle set using gsk_render_node_set_bounds().

Render nodes are meant to be transient; once they have been associated to a GskRenderer it's safe to release any reference you have on them. All GskRenderNodes are immutable, you can only specify their properties during construction.

Functions

gsk_render_node_ref ()

GskRenderNode *
gsk_render_node_ref (GskRenderNode *node);

Acquires a reference on the given GskRenderNode.

Parameters

node

a GskRenderNode

 

Returns

the GskRenderNode with an additional reference.

[transfer full]


gsk_render_node_unref ()

void
gsk_render_node_unref (GskRenderNode *node);

Releases a reference on the given GskRenderNode.

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

Parameters


gsk_render_node_get_node_type ()

GskRenderNodeType
gsk_render_node_get_node_type (GskRenderNode *node);

Returns the type of the node .

Parameters

node

a GskRenderNode

 

Returns

the type of the GskRenderNode


gsk_render_node_draw ()

void
gsk_render_node_draw (GskRenderNode *node,
                      cairo_t *cr);

Draw the contents of node to the given cairo context.

Typically, you'll use this function to implement fallback rendering of GskRenderNodes on an intermediate Cairo context, instead of using the drawing context associated to a GdkSurface's rendering buffer.

For advanced nodes that cannot be supported using Cairo, in particular for nodes doing 3D operations, this function may fail.

Parameters

node

a GskRenderNode

 

cr

cairo context to draw to

 

GskParseErrorFunc ()

void
(*GskParseErrorFunc) (const GtkCssSection *section,
                      const GError *error,
                      gpointer user_data);

The type of callback that is called when a parse error occurs during deserialization of node data.

Parameters

section

the GtkCssSection where the error occurred

 

error

the error

 

user_data

user data

 

gsk_render_node_serialize ()

GBytes *
gsk_render_node_serialize (GskRenderNode *node);

Serializes the node for later deserialization via gsk_render_node_deserialize(). No guarantees are made about the format used other than that the same version of GTK+ will be able to deserialize the result of a call to gsk_render_node_serialize() and gsk_render_node_deserialize() will correctly reject files it cannot open that were created with previous versions of GTK+.

The intended use of this functions is testing, benchmarking and debugging. The format is not meant as a permanent storage format.

Parameters

node

a GskRenderNode

 

Returns

a GBytes representing the node.


gsk_render_node_deserialize ()

GskRenderNode *
gsk_render_node_deserialize (GBytes *bytes,
                             GskParseErrorFunc error_func,
                             gpointer user_data);

Loads data previously created via gsk_render_node_serialize(). For a discussion of the supported format, see that function.

Parameters

bytes

the bytes containing the data

 

error_func

Callback on parsing errors or NULL.

[nullable][scope call]

user_data

user_data for error_func .

[closure error_func]

Returns

a new GskRenderNode or NULL on error.

[nullable][transfer full]


gsk_render_node_write_to_file ()

gboolean
gsk_render_node_write_to_file (GskRenderNode *node,
                               const char *filename,
                               GError **error);

This function is equivalent to calling gsk_render_node_serialize() followed by g_file_set_contents(). See those two functions for details on the arguments.

It is mostly intended for use inside a debugger to quickly dump a render node to a file for later inspection.

Parameters

node

a GskRenderNode

 

filename

the file to save it to.

 

error

Return location for a potential error

 

Returns

TRUE if saving was successful


gsk_render_node_get_bounds ()

void
gsk_render_node_get_bounds (GskRenderNode *node,
                            graphene_rect_t *bounds);

Retrieves the boundaries of the node . The node will not draw outside of its boundaries.

Parameters

node

a GskRenderNode

 

bounds

return location for the boundaries.

[out caller-allocates]

gsk_color_node_new ()

GskRenderNode *
gsk_color_node_new (const GdkRGBA *rgba,
                    const graphene_rect_t *bounds);

Creates a GskRenderNode that will render the color specified by rgba into the area given by bounds .

Parameters

rgba

a GdkRGBA specifying a color

 

bounds

the rectangle to render the color into

 

Returns

A new GskRenderNode


gsk_color_node_peek_color ()

const GdkRGBA *
gsk_color_node_peek_color (GskRenderNode *node);

gsk_texture_node_new ()

GskRenderNode *
gsk_texture_node_new (GdkTexture *texture,
                      const graphene_rect_t *bounds);

Creates a GskRenderNode that will render the given texture into the area given by bounds .

Parameters

texture

the GdkTexture

 

bounds

the rectangle to render the texture into

 

Returns

A new GskRenderNode


gsk_texture_node_get_texture ()

GdkTexture *
gsk_texture_node_get_texture (GskRenderNode *node);

Parameters

node

a GskRenderNode

 

Returns

the GdkTexture.

[transfer none]


gsk_linear_gradient_node_new ()

GskRenderNode *
gsk_linear_gradient_node_new (const graphene_rect_t *bounds,
                              const graphene_point_t *start,
                              const graphene_point_t *end,
                              const GskColorStop *color_stops,
                              gsize n_color_stops);

Creates a GskRenderNode that will create a linear gradient from the given points and color stops, and render that into the area given by bounds .

Parameters

bounds

the rectangle to render the linear gradient into

 

start

the point at which the linear gradient will begin

 

end

the point at which the linear gradient will finish

 

color_stops

a pointer to an array of GskColorStop defining the gradient.

[array length=n_color_stops]

n_color_stops

the number of elements in color_stops

 

Returns

A new GskRenderNode


gsk_linear_gradient_node_peek_start ()

const graphene_point_t *
gsk_linear_gradient_node_peek_start (GskRenderNode *node);

gsk_linear_gradient_node_peek_end ()

const graphene_point_t *
gsk_linear_gradient_node_peek_end (GskRenderNode *node);

gsk_linear_gradient_node_get_n_color_stops ()

gsize
gsk_linear_gradient_node_get_n_color_stops
                               (GskRenderNode *node);

gsk_linear_gradient_node_peek_color_stops ()

const GskColorStop *
gsk_linear_gradient_node_peek_color_stops
                               (GskRenderNode *node);

gsk_repeating_linear_gradient_node_new ()

GskRenderNode *
gsk_repeating_linear_gradient_node_new
                               (const graphene_rect_t *bounds,
                                const graphene_point_t *start,
                                const graphene_point_t *end,
                                const GskColorStop *color_stops,
                                gsize n_color_stops);

Creates a GskRenderNode that will create a repeating linear gradient from the given points and color stops, and render that into the area given by bounds .

Parameters

bounds

the rectangle to render the linear gradient into

 

start

the point at which the linear gradient will begin

 

end

the point at which the linear gradient will finish

 

color_stops

a pointer to an array of GskColorStop defining the gradient.

[array length=n_color_stops]

n_color_stops

the number of elements in color_stops

 

Returns

A new GskRenderNode


gsk_border_node_new ()

GskRenderNode *
gsk_border_node_new (const GskRoundedRect *outline,
                     const float border_width[4],
                     const GdkRGBA border_color[4]);

Creates a GskRenderNode that will stroke a border rectangle inside the given outline . The 4 sides of the border can have different widths and colors.

Parameters

outline

a GskRoundedRect describing the outline of the border

 

border_width

the stroke width of the border on the top, right, bottom and left side respectively.

[array fixed-size=4]

border_color

the color used on the top, right, bottom and left side.

[array fixed-size=4]

Returns

A new GskRenderNode


gsk_border_node_peek_outline ()

const GskRoundedRect *
gsk_border_node_peek_outline (GskRenderNode *node);

gsk_border_node_peek_widths ()

const float *
gsk_border_node_peek_widths (GskRenderNode *node);

gsk_border_node_peek_colors ()

const GdkRGBA *
gsk_border_node_peek_colors (GskRenderNode *node);

gsk_inset_shadow_node_new ()

GskRenderNode *
gsk_inset_shadow_node_new (const GskRoundedRect *outline,
                           const GdkRGBA *color,
                           float dx,
                           float dy,
                           float spread,
                           float blur_radius);

Creates a GskRenderNode that will render an inset shadow into the box given by outline .

Parameters

outline

outline of the region containing the shadow

 

color

color of the shadow

 

dx

horizontal offset of shadow

 

dy

vertical offset of shadow

 

spread

how far the shadow spreads towards the inside

 

blur_radius

how much blur to apply to the shadow

 

Returns

A new GskRenderNode


gsk_inset_shadow_node_peek_outline ()

const GskRoundedRect *
gsk_inset_shadow_node_peek_outline (GskRenderNode *node);

gsk_inset_shadow_node_peek_color ()

const GdkRGBA *
gsk_inset_shadow_node_peek_color (GskRenderNode *node);

gsk_inset_shadow_node_get_dx ()

float
gsk_inset_shadow_node_get_dx (GskRenderNode *node);

gsk_inset_shadow_node_get_dy ()

float
gsk_inset_shadow_node_get_dy (GskRenderNode *node);

gsk_inset_shadow_node_get_spread ()

float
gsk_inset_shadow_node_get_spread (GskRenderNode *node);

gsk_inset_shadow_node_get_blur_radius ()

float
gsk_inset_shadow_node_get_blur_radius (GskRenderNode *node);

gsk_outset_shadow_node_new ()

GskRenderNode *
gsk_outset_shadow_node_new (const GskRoundedRect *outline,
                            const GdkRGBA *color,
                            float dx,
                            float dy,
                            float spread,
                            float blur_radius);

Creates a GskRenderNode that will render an outset shadow around the box given by outline .

Parameters

outline

outline of the region surrounded by shadow

 

color

color of the shadow

 

dx

horizontal offset of shadow

 

dy

vertical offset of shadow

 

spread

how far the shadow spreads towards the inside

 

blur_radius

how much blur to apply to the shadow

 

Returns

A new GskRenderNode


gsk_outset_shadow_node_peek_outline ()

const GskRoundedRect *
gsk_outset_shadow_node_peek_outline (GskRenderNode *node);

gsk_outset_shadow_node_peek_color ()

const GdkRGBA *
gsk_outset_shadow_node_peek_color (GskRenderNode *node);

gsk_outset_shadow_node_get_dx ()

float
gsk_outset_shadow_node_get_dx (GskRenderNode *node);

gsk_outset_shadow_node_get_dy ()

float
gsk_outset_shadow_node_get_dy (GskRenderNode *node);

gsk_outset_shadow_node_get_spread ()

float
gsk_outset_shadow_node_get_spread (GskRenderNode *node);

gsk_outset_shadow_node_get_blur_radius ()

float
gsk_outset_shadow_node_get_blur_radius
                               (GskRenderNode *node);

gsk_cairo_node_new ()

GskRenderNode *
gsk_cairo_node_new (const graphene_rect_t *bounds);

Creates a GskRenderNode that will render a cairo surface into the area given by bounds . You can draw to the cairo surface using gsk_cairo_node_get_draw_context()

Parameters

bounds

the rectangle to render to

 

Returns

A new GskRenderNode


gsk_cairo_node_get_draw_context ()

cairo_t *
gsk_cairo_node_get_draw_context (GskRenderNode *node);

Creates a Cairo context for drawing using the surface associated to the render node. If no surface exists yet, a surface will be created optimized for rendering to renderer .

Parameters

node

a cairo GskRenderNode

 

Returns

a Cairo context used for drawing; use cairo_destroy() when done drawing.

[transfer full]


gsk_cairo_node_peek_surface ()

cairo_surface_t *
gsk_cairo_node_peek_surface (GskRenderNode *node);

gsk_container_node_new ()

GskRenderNode *
gsk_container_node_new (GskRenderNode **children,
                        guint n_children);

Creates a new GskRenderNode instance for holding the given children . The new node will acquire a reference to each of the children.

Parameters

children

The children of the node.

[array length=n_children][transfer none]

n_children

Number of children in the children array

 

Returns

the new GskRenderNode.

[transfer full]


gsk_container_node_get_n_children ()

guint
gsk_container_node_get_n_children (GskRenderNode *node);

Retrieves the number of direct children of node .

Parameters

node

a container GskRenderNode

 

Returns

the number of children of the GskRenderNode


gsk_container_node_get_child ()

GskRenderNode *
gsk_container_node_get_child (GskRenderNode *node,
                              guint idx);

Gets one of the children of container .

Parameters

node

a container GskRenderNode

 

idx

the position of the child to get

 

Returns

the idx 'th child of container


gsk_transform_node_new ()

GskRenderNode *
gsk_transform_node_new (GskRenderNode *child,
                        GskTransform *transform);

Creates a GskRenderNode that will transform the given child with the given transform .

Parameters

child

The node to transform

 

transform

The transform to apply.

[transfer none]

Returns

A new GskRenderNode


gsk_transform_node_get_child ()

GskRenderNode *
gsk_transform_node_get_child (GskRenderNode *node);

Gets the child node that is getting transformed by the given node .

Parameters

node

a transform GskRenderNode

 

Returns

The child that is getting transformed.

[transfer none]


gsk_transform_node_get_transform ()

GskTransform *
gsk_transform_node_get_transform (GskRenderNode *node);

gsk_opacity_node_new ()

GskRenderNode *
gsk_opacity_node_new (GskRenderNode *child,
                      float opacity);

Creates a GskRenderNode that will drawn the child with reduced opacity .

Parameters

child

The node to draw

 

opacity

The opacity to apply

 

Returns

A new GskRenderNode


gsk_opacity_node_get_child ()

GskRenderNode *
gsk_opacity_node_get_child (GskRenderNode *node);

Gets the child node that is getting opacityed by the given node .

Parameters

node

an opacity GskRenderNode

 

Returns

The child that is getting opacityed.

[transfer none]


gsk_opacity_node_get_opacity ()

float
gsk_opacity_node_get_opacity (GskRenderNode *node);

gsk_color_matrix_node_new ()

GskRenderNode *
gsk_color_matrix_node_new (GskRenderNode *child,
                           const graphene_matrix_t *color_matrix,
                           const graphene_vec4_t *color_offset);

Creates a GskRenderNode that will drawn the child with reduced color_matrix .

In particular, the node will transform the operation pixel = color_matrix * pixel + color_offset for every pixel.

Parameters

child

The node to draw

 

color_matrix

The matrix to apply

 

color_offset

Values to add to the color

 

Returns

A new GskRenderNode


gsk_color_matrix_node_get_child ()

GskRenderNode *
gsk_color_matrix_node_get_child (GskRenderNode *node);

Gets the child node that is getting its colors modified by the given node .

Parameters

node

a color matrix GskRenderNode

 

Returns

The child that is getting its colors modified.

[transfer none]


gsk_color_matrix_node_peek_color_matrix ()

const graphene_matrix_t *
gsk_color_matrix_node_peek_color_matrix
                               (GskRenderNode *node);

gsk_color_matrix_node_peek_color_offset ()

const graphene_vec4_t *
gsk_color_matrix_node_peek_color_offset
                               (GskRenderNode *node);

gsk_repeat_node_new ()

GskRenderNode *
gsk_repeat_node_new (const graphene_rect_t *bounds,
                     GskRenderNode *child,
                     const graphene_rect_t *child_bounds);

Creates a GskRenderNode that will repeat the drawing of child across the given bounds .

Parameters

bounds

The bounds of the area to be painted

 

child

The child to repeat

 

child_bounds

The area of the child to repeat or NULL to use the child's bounds.

[allow-none]

Returns

A new GskRenderNode


gsk_repeat_node_get_child ()

GskRenderNode *
gsk_repeat_node_get_child (GskRenderNode *node);

gsk_repeat_node_peek_child_bounds ()

const graphene_rect_t *
gsk_repeat_node_peek_child_bounds (GskRenderNode *node);

gsk_clip_node_new ()

GskRenderNode *
gsk_clip_node_new (GskRenderNode *child,
                   const graphene_rect_t *clip);

Creates a GskRenderNode that will clip the child to the area given by clip .

Parameters

child

The node to draw

 

clip

The clip to apply

 

Returns

A new GskRenderNode


gsk_clip_node_get_child ()

GskRenderNode *
gsk_clip_node_get_child (GskRenderNode *node);

Gets the child node that is getting clipped by the given node .

Parameters

node

a clip GskRenderNode

 

Returns

The child that is getting clipped.

[transfer none]


gsk_clip_node_peek_clip ()

const graphene_rect_t *
gsk_clip_node_peek_clip (GskRenderNode *node);

gsk_rounded_clip_node_new ()

GskRenderNode *
gsk_rounded_clip_node_new (GskRenderNode *child,
                           const GskRoundedRect *clip);

Creates a GskRenderNode that will clip the child to the area given by clip .

Parameters

child

The node to draw

 

clip

The clip to apply

 

Returns

A new GskRenderNode


gsk_rounded_clip_node_get_child ()

GskRenderNode *
gsk_rounded_clip_node_get_child (GskRenderNode *node);

Gets the child node that is getting clipped by the given node .

Parameters

node

a clip GskRenderNode

 

Returns

The child that is getting clipped.

[transfer none]


gsk_rounded_clip_node_peek_clip ()

const GskRoundedRect *
gsk_rounded_clip_node_peek_clip (GskRenderNode *node);

gsk_shadow_node_new ()

GskRenderNode *
gsk_shadow_node_new (GskRenderNode *child,
                     const GskShadow *shadows,
                     gsize n_shadows);

Creates a GskRenderNode that will draw a child with the given shadows below it.

Parameters

child

The node to draw

 

shadows

The shadows to apply.

[array length=n_shadows]

n_shadows

number of entries in the shadows array

 

Returns

A new GskRenderNode


gsk_shadow_node_peek_shadow ()

const GskShadow *
gsk_shadow_node_peek_shadow (GskRenderNode *node,
                             gsize i);

gsk_shadow_node_get_n_shadows ()

gsize
gsk_shadow_node_get_n_shadows (GskRenderNode *node);

gsk_shadow_node_get_child ()

GskRenderNode *
gsk_shadow_node_get_child (GskRenderNode *node);

gsk_blend_node_new ()

GskRenderNode *
gsk_blend_node_new (GskRenderNode *bottom,
                    GskRenderNode *top,
                    GskBlendMode blend_mode);

Creates a GskRenderNode that will use blend_mode to blend the top node onto the bottom node.

Parameters

bottom

The bottom node to be drawn

 

top

The node to be blended onto the bottom node

 

blend_mode

The blend mode to use

 

Returns

A new GskRenderNode


gsk_blend_node_get_bottom_child ()

GskRenderNode *
gsk_blend_node_get_bottom_child (GskRenderNode *node);

gsk_blend_node_get_top_child ()

GskRenderNode *
gsk_blend_node_get_top_child (GskRenderNode *node);

gsk_blend_node_get_blend_mode ()

GskBlendMode
gsk_blend_node_get_blend_mode (GskRenderNode *node);

gsk_cross_fade_node_new ()

GskRenderNode *
gsk_cross_fade_node_new (GskRenderNode *start,
                         GskRenderNode *end,
                         float progress);

Creates a GskRenderNode that will do a cross-fade between start and end .

Parameters

start

The start node to be drawn

 

end

The node to be cross_fadeed onto the start node

 

progress

How far the fade has progressed from start to end. The value will be clamped to the range [0 ... 1]

 

Returns

A new GskRenderNode


gsk_cross_fade_node_get_start_child ()

GskRenderNode *
gsk_cross_fade_node_get_start_child (GskRenderNode *node);

gsk_cross_fade_node_get_end_child ()

GskRenderNode *
gsk_cross_fade_node_get_end_child (GskRenderNode *node);

gsk_cross_fade_node_get_progress ()

float
gsk_cross_fade_node_get_progress (GskRenderNode *node);

gsk_text_node_new ()

GskRenderNode *
gsk_text_node_new (PangoFont *font,
                   PangoGlyphString *glyphs,
                   const GdkRGBA *color,
                   const graphene_point_t *offset);

Creates a render node that renders the given glyphs, Note that color may not be used if the font contains color glyphs.

Parameters

font

the PangoFont containing the glyphs

 

glyphs

the PangoGlyphString to render

 

color

the foreground color to render with

 

offset

offset of the baseline

 

Returns

a new text node, or NULL.

[nullable]


gsk_text_node_peek_font ()

PangoFont *
gsk_text_node_peek_font (GskRenderNode *node);

Returns the font used by the text node.

Parameters

node

The GskRenderNode

 

Returns

The used PangoFont.

[transfer none]


gsk_text_node_peek_glyphs ()

const PangoGlyphInfo *
gsk_text_node_peek_glyphs (GskRenderNode *node);

gsk_text_node_peek_color ()

const GdkRGBA *
gsk_text_node_peek_color (GskRenderNode *node);

gsk_text_node_get_num_glyphs ()

guint
gsk_text_node_get_num_glyphs (GskRenderNode *node);

gsk_text_node_get_offset ()

const graphene_point_t *
gsk_text_node_get_offset (GskRenderNode *node);

gsk_blur_node_new ()

GskRenderNode *
gsk_blur_node_new (GskRenderNode *child,
                   float radius);

Creates a render node that blurs the child.

Parameters

child

the child node to blur

 

radius

the blur radius

 

gsk_blur_node_get_child ()

GskRenderNode *
gsk_blur_node_get_child (GskRenderNode *node);

gsk_blur_node_get_radius ()

float
gsk_blur_node_get_radius (GskRenderNode *node);

gsk_debug_node_new ()

GskRenderNode *
gsk_debug_node_new (GskRenderNode *child,
                    char *message);

Creates a GskRenderNode that will add debug information about the given child .

Adding this node has no visual effect.

Parameters

child

The child to add debug info for

 

message

The debug message.

[transfer full]

Returns

A new GskRenderNode


gsk_debug_node_get_child ()

GskRenderNode *
gsk_debug_node_get_child (GskRenderNode *node);

Gets the child node that is getting debug by the given node .

Parameters

node

a debug GskRenderNode

 

Returns

The child that is getting debug.

[transfer none]


gsk_debug_node_get_message ()

const char *
gsk_debug_node_get_message (GskRenderNode *node);

Gets the debug message that was set on this node

Parameters

node

a debug GskRenderNode

 

Returns

The debug message.

[transfer none]

docs/reference/gsk/html/GskRenderer.html0000664000175000017500000006210113635542603020434 0ustar mclasenmclasen GskRenderer: GSK 4 Reference Manual

GskRenderer

GskRenderer — Renders a scene

Properties

gboolean realized Read
GdkSurface * surface Read

Object Hierarchy

    GObject
    ╰── GskRenderer

Description

GskRenderer is a class that renders a scene graph defined via a tree of GskRenderNode instances.

Typically you will use a GskRenderer instance to repeatedly call gsk_renderer_render() to update the contents of its associated GdkSurface.

It is necessary to realize a GskRenderer instance using gsk_renderer_realize() before calling gsk_renderer_render(), in order to create the appropriate windowing system resources needed to render the scene.

Functions

gsk_renderer_get_surface ()

GdkSurface *
gsk_renderer_get_surface (GskRenderer *renderer);

Retrieves the GdkSurface set using gsk_renderer_realize(). If the renderer has not been realized yet, NULL will be returned.

Parameters

renderer

a GskRenderer

 

Returns

a GdkSurface.

[transfer none][nullable]


gsk_renderer_realize ()

gboolean
gsk_renderer_realize (GskRenderer *renderer,
                      GdkSurface *surface,
                      GError **error);

Creates the resources needed by the renderer to render the scene graph.

Parameters

renderer

a GskRenderer

 

surface

the GdkSurface renderer will be used on

 

error

return location for an error

 

gsk_renderer_unrealize ()

void
gsk_renderer_unrealize (GskRenderer *renderer);

Releases all the resources created by gsk_renderer_realize().

Parameters

renderer

a GskRenderer

 

gsk_renderer_is_realized ()

gboolean
gsk_renderer_is_realized (GskRenderer *renderer);

Checks whether the renderer is realized or not.

Parameters

renderer

a GskRenderer

 

Returns

TRUE if the GskRenderer was realized, and FALSE otherwise


gsk_renderer_render ()

void
gsk_renderer_render (GskRenderer *renderer,
                     GskRenderNode *root,
                     const cairo_region_t *region);

Renders the scene graph, described by a tree of GskRenderNode instances, ensuring that the given region gets redrawn.

Renderers must ensure that changes of the contents given by the root node as well as the area given by region are redrawn. They are however free to not redraw any pixel outside of region if they can guarantee that it didn't change.

The renderer will acquire a reference on the GskRenderNode tree while the rendering is in progress.

Parameters

renderer

a GskRenderer

 

root

a GskRenderNode

 

region

the cairo_region_t that must be redrawn or NULL for the whole window.

[nullable]

gsk_renderer_render_texture ()

GdkTexture *
gsk_renderer_render_texture (GskRenderer *renderer,
                             GskRenderNode *root,
                             const graphene_rect_t *viewport);

Renders the scene graph, described by a tree of GskRenderNode instances, to a GdkTexture.

The renderer will acquire a reference on the GskRenderNode tree while the rendering is in progress.

If you want to apply any transformations to root , you should put it into a transform node and pass that node instead.

Parameters

renderer

a realized GdkRenderer

 

root

a GskRenderNode

 

viewport

the section to draw or NULL to use root 's bounds.

[allow-none]

Returns

a GdkTexture with the rendered contents of root .

[transfer full]


gsk_renderer_new_for_surface ()

GskRenderer *
gsk_renderer_new_for_surface (GdkSurface *surface);

Creates an appropriate GskRenderer instance for the given surface .

The renderer will be realized when it is returned.

Parameters

surface

a GdkSurface

 

gsk_gl_renderer_new ()

GskRenderer *
gsk_gl_renderer_new (void);

Creates a new GskRenderer using OpenGL. This is the default renderer used by GTK.

Returns

a new GL renderer


gsk_cairo_renderer_new ()

GskRenderer *
gsk_cairo_renderer_new (void);

Creates a new Cairo renderer.

The Cairo renderer is the fallback renderer drawing in ways similar to how GTK 3 drew its content. Its primary use is as comparison tool.

The Cairo renderer is incomplete. It cannot render 3D transformed content and will instead render an error marker. Its usage should be avoided.

Returns

a new Cairo renderer.


gsk_vulkan_renderer_new ()

GskRenderer *
gsk_vulkan_renderer_new (void);

Creates a new Vulkan renderer.

The Vulkan renderer is a renderer that uses the Vulkan library for rendering.

This function is only available when GTK was compiled with Vulkan support.

Returns

a new Vulkan renderer


gsk_broadway_renderer_new ()

GskRenderer *
gsk_broadway_renderer_new (void);

Creates a new Broadway renderer.

The Broadway renderer is the default renderer for the broadway backend. It will only work with broadway surfaces, otherwise it will fail the call to gdk_renderer_realize().

This function is only available when GTK was compiled with Broadway support.

Returns

a new Broadway renderer.

Property Details

The “realized” property

  “realized”                 gboolean

The renderer has been associated with a surface.

Owner: GskRenderer

Flags: Read

Default value: FALSE


The “surface” property

  “surface”                  GdkSurface *

The surface associated to the renderer.

Owner: GskRenderer

Flags: Read

docs/reference/gsk/html/api-index-full.html0000664000175000017500000011365613635542603021053 0ustar mclasenmclasen Index of all symbols: GSK 4 Reference Manual

Index of all symbols

B

GskBlendMode, enum in GskRenderNode
gsk_blend_node_get_blend_mode, function in GskRenderNode
gsk_blend_node_get_bottom_child, function in GskRenderNode
gsk_blend_node_get_top_child, function in GskRenderNode
gsk_blend_node_new, function in GskRenderNode
gsk_blur_node_get_child, function in GskRenderNode
gsk_blur_node_get_radius, function in GskRenderNode
gsk_blur_node_new, function in GskRenderNode
gsk_border_node_new, function in GskRenderNode
gsk_border_node_peek_colors, function in GskRenderNode
gsk_border_node_peek_outline, function in GskRenderNode
gsk_border_node_peek_widths, function in GskRenderNode
gsk_broadway_renderer_new, function in GskRenderer

C

gsk_cairo_node_get_draw_context, function in GskRenderNode
gsk_cairo_node_new, function in GskRenderNode
gsk_cairo_node_peek_surface, function in GskRenderNode
gsk_cairo_renderer_new, function in GskRenderer
gsk_clip_node_get_child, function in GskRenderNode
gsk_clip_node_new, function in GskRenderNode
gsk_clip_node_peek_clip, function in GskRenderNode
gsk_color_matrix_node_get_child, function in GskRenderNode
gsk_color_matrix_node_new, function in GskRenderNode
gsk_color_matrix_node_peek_color_matrix, function in GskRenderNode
gsk_color_matrix_node_peek_color_offset, function in GskRenderNode
gsk_color_node_new, function in GskRenderNode
gsk_color_node_peek_color, function in GskRenderNode
gsk_container_node_get_child, function in GskRenderNode
gsk_container_node_get_n_children, function in GskRenderNode
gsk_container_node_new, function in GskRenderNode
GskCorner, enum in GskRoundedRect
gsk_cross_fade_node_get_end_child, function in GskRenderNode
gsk_cross_fade_node_get_progress, function in GskRenderNode
gsk_cross_fade_node_get_start_child, function in GskRenderNode
gsk_cross_fade_node_new, function in GskRenderNode

D

gsk_debug_node_get_child, function in GskRenderNode
gsk_debug_node_get_message, function in GskRenderNode
gsk_debug_node_new, function in GskRenderNode

G

gsk_gl_renderer_new, function in GskRenderer

I

gsk_inset_shadow_node_get_blur_radius, function in GskRenderNode
gsk_inset_shadow_node_get_dx, function in GskRenderNode
gsk_inset_shadow_node_get_dy, function in GskRenderNode
gsk_inset_shadow_node_get_spread, function in GskRenderNode
gsk_inset_shadow_node_new, function in GskRenderNode
gsk_inset_shadow_node_peek_color, function in GskRenderNode
gsk_inset_shadow_node_peek_outline, function in GskRenderNode

L

gsk_linear_gradient_node_get_n_color_stops, function in GskRenderNode
gsk_linear_gradient_node_new, function in GskRenderNode
gsk_linear_gradient_node_peek_color_stops, function in GskRenderNode
gsk_linear_gradient_node_peek_end, function in GskRenderNode
gsk_linear_gradient_node_peek_start, function in GskRenderNode

O

gsk_opacity_node_get_child, function in GskRenderNode
gsk_opacity_node_get_opacity, function in GskRenderNode
gsk_opacity_node_new, function in GskRenderNode
gsk_outset_shadow_node_get_blur_radius, function in GskRenderNode
gsk_outset_shadow_node_get_dx, function in GskRenderNode
gsk_outset_shadow_node_get_dy, function in GskRenderNode
gsk_outset_shadow_node_get_spread, function in GskRenderNode
gsk_outset_shadow_node_new, function in GskRenderNode
gsk_outset_shadow_node_peek_color, function in GskRenderNode
gsk_outset_shadow_node_peek_outline, function in GskRenderNode

P

GskParseErrorFunc, user_function in GskRenderNode

R

GskRenderer:realized, object property in GskRenderer
GskRenderer:surface, object property in GskRenderer
gsk_renderer_get_surface, function in GskRenderer
gsk_renderer_is_realized, function in GskRenderer
gsk_renderer_new_for_surface, function in GskRenderer
gsk_renderer_realize, function in GskRenderer
gsk_renderer_render, function in GskRenderer
gsk_renderer_render_texture, function in GskRenderer
gsk_renderer_unrealize, function in GskRenderer
GskRenderNodeType, enum in GskRenderNode
gsk_render_node_deserialize, function in GskRenderNode
gsk_render_node_draw, function in GskRenderNode
gsk_render_node_get_bounds, function in GskRenderNode
gsk_render_node_get_node_type, function in GskRenderNode
gsk_render_node_ref, function in GskRenderNode
gsk_render_node_serialize, function in GskRenderNode
gsk_render_node_unref, function in GskRenderNode
gsk_render_node_write_to_file, function in GskRenderNode
gsk_repeating_linear_gradient_node_new, function in GskRenderNode
gsk_repeat_node_get_child, function in GskRenderNode
gsk_repeat_node_new, function in GskRenderNode
gsk_repeat_node_peek_child_bounds, function in GskRenderNode
GskRoundedRect, struct in GskRoundedRect
gsk_rounded_clip_node_get_child, function in GskRenderNode
gsk_rounded_clip_node_new, function in GskRenderNode
gsk_rounded_clip_node_peek_clip, function in GskRenderNode
gsk_rounded_rect_contains_point, function in GskRoundedRect
gsk_rounded_rect_contains_rect, function in GskRoundedRect
GSK_ROUNDED_RECT_INIT, macro in GskRoundedRect
gsk_rounded_rect_init, function in GskRoundedRect
gsk_rounded_rect_init_copy, function in GskRoundedRect
gsk_rounded_rect_init_from_rect, function in GskRoundedRect
gsk_rounded_rect_intersects_rect, function in GskRoundedRect
gsk_rounded_rect_is_rectilinear, function in GskRoundedRect
gsk_rounded_rect_normalize, function in GskRoundedRect
gsk_rounded_rect_offset, function in GskRoundedRect
gsk_rounded_rect_shrink, function in GskRoundedRect

S

GskScalingFilter, enum in GskRenderNode
GskSerializationError, enum in GskRenderNode
GskShadow, struct in GskRenderNode
gsk_shadow_node_get_child, function in GskRenderNode
gsk_shadow_node_get_n_shadows, function in GskRenderNode
gsk_shadow_node_new, function in GskRenderNode
gsk_shadow_node_peek_shadow, function in GskRenderNode

T

gsk_texture_node_get_texture, function in GskRenderNode
gsk_texture_node_new, function in GskRenderNode
gsk_text_node_get_num_glyphs, function in GskRenderNode
gsk_text_node_get_offset, function in GskRenderNode
gsk_text_node_new, function in GskRenderNode
gsk_text_node_peek_color, function in GskRenderNode
gsk_text_node_peek_font, function in GskRenderNode
gsk_text_node_peek_glyphs, function in GskRenderNode
GskTransform, struct in GskTransform
GskTransformCategory, enum in GskTransform
gsk_transform_equal, function in GskTransform
gsk_transform_get_category, function in GskTransform
gsk_transform_invert, function in GskTransform
gsk_transform_matrix, function in GskTransform
gsk_transform_matrix_with_category, function in GskTransform
gsk_transform_node_get_child, function in GskRenderNode
gsk_transform_node_get_transform, function in GskRenderNode
gsk_transform_node_new, function in GskRenderNode
gsk_transform_parse, function in GskTransform
gsk_transform_perspective, function in GskTransform
gsk_transform_print, function in GskTransform
gsk_transform_ref, function in GskTransform
gsk_transform_rotate, function in GskTransform
gsk_transform_rotate_3d, function in GskTransform
gsk_transform_scale, function in GskTransform
gsk_transform_scale_3d, function in GskTransform
gsk_transform_to_2d, function in GskTransform
gsk_transform_to_affine, function in GskTransform
gsk_transform_to_matrix, function in GskTransform
gsk_transform_to_string, function in GskTransform
gsk_transform_to_translate, function in GskTransform
gsk_transform_transform, function in GskTransform
gsk_transform_transform_bounds, function in GskTransform
gsk_transform_transform_point, function in GskTransform
gsk_transform_translate, function in GskTransform
gsk_transform_translate_3d, function in GskTransform
gsk_transform_unref, function in GskTransform

V

gsk_vulkan_renderer_new, function in GskRenderer
docs/reference/gsk/html/gsk4-GskRoundedRect.html0000664000175000017500000006567313635542603021773 0ustar mclasenmclasen GskRoundedRect: GSK 4 Reference Manual

GskRoundedRect

GskRoundedRect — A rounded rectangle

Functions

#define GSK_ROUNDED_RECT_INIT()
GskRoundedRect * gsk_rounded_rect_init ()
GskRoundedRect * gsk_rounded_rect_init_copy ()
GskRoundedRect * gsk_rounded_rect_init_from_rect ()
GskRoundedRect * gsk_rounded_rect_normalize ()
GskRoundedRect * gsk_rounded_rect_offset ()
GskRoundedRect * gsk_rounded_rect_shrink ()
gboolean gsk_rounded_rect_is_rectilinear ()
gboolean gsk_rounded_rect_contains_point ()
gboolean gsk_rounded_rect_contains_rect ()
gboolean gsk_rounded_rect_intersects_rect ()

Types and Values

enum GskCorner
struct GskRoundedRect

Description

GskRoundedRect defines a rectangle with rounded corners, as is commonly used in drawing.

Operations on a GskRoundedRect will normalize the rectangle, to ensure that the bounds are normalized and that the corner sizes don't exceed the size of the rectangle. The algorithm used for normalizing corner sizes is described in the CSS specification.

Functions

GSK_ROUNDED_RECT_INIT()

#define             GSK_ROUNDED_RECT_INIT(_x,_y,_w,_h)

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

Parameters

_x

the X coordinate of the origin

 

_y

the Y coordinate of the origin

 

_w

the width

 

_h

the height

 

gsk_rounded_rect_init ()

GskRoundedRect *
gsk_rounded_rect_init (GskRoundedRect *self,
                       const graphene_rect_t *bounds,
                       const graphene_size_t *top_left,
                       const graphene_size_t *top_right,
                       const graphene_size_t *bottom_right,
                       const graphene_size_t *bottom_left);

Initializes the given GskRoundedRect with the given values.

This function will implicitly normalize the GskRoundedRect before returning.

Parameters

self

The GskRoundedRect to initialize

 

bounds

a graphene_rect_t describing the bounds

 

top_left

the rounding radius of the top left corner

 

top_right

the rounding radius of the top right corner

 

bottom_right

the rounding radius of the bottom right corner

 

bottom_left

the rounding radius of the bottom left corner

 

Returns

the initialized rectangle.

[transfer none]


gsk_rounded_rect_init_copy ()

GskRoundedRect *
gsk_rounded_rect_init_copy (GskRoundedRect *self,
                            const GskRoundedRect *src);

Initializes self using the given src rectangle.

This function will not normalize the GskRoundedRect, so make sure the source is normalized.

Parameters

self

a GskRoundedRect

 

src

a GskRoundedRect

 

Returns

the initialized rectangle.

[transfer none]


gsk_rounded_rect_init_from_rect ()

GskRoundedRect *
gsk_rounded_rect_init_from_rect (GskRoundedRect *self,
                                 const graphene_rect_t *bounds,
                                 float radius);

Initializes self to the given bounds and sets the radius of all four corners to radius .

Parameters

self

a GskRoundedRect

 

bounds

a graphene_rect_t

 

radius

the border radius

 

Returns

the initialized rectangle.

[transfer none]


gsk_rounded_rect_normalize ()

GskRoundedRect *
gsk_rounded_rect_normalize (GskRoundedRect *self);

Normalizes the passed rectangle.

this function will ensure that the bounds of the rectanlge are normalized and ensure that the corner values are positive and the corners do not overlap.

Parameters

self

a GskRoundedRect

 

Returns

the normalized rectangle.

[transfer none]


gsk_rounded_rect_offset ()

GskRoundedRect *
gsk_rounded_rect_offset (GskRoundedRect *self,
                         float dx,
                         float dy);

Offsets the bound's origin by dx and dy .

The size and corners of the rectangle are unchanged.

Parameters

self

a GskRoundedRect

 

dx

the horizontal offset

 

dy

the vertical offset

 

Returns

the offset rectangle.

[transfer none]


gsk_rounded_rect_shrink ()

GskRoundedRect *
gsk_rounded_rect_shrink (GskRoundedRect *self,
                         float top,
                         float right,
                         float bottom,
                         float left);

Shrinks (or grows) the given rectangle by moving the 4 sides according to the offsets given. The corner radii will be changed in a way that tries to keep the center of the corner circle intact. This emulates CSS behavior.

This function also works for growing rectangles if you pass negative values for the top , right , bottom or left .

Parameters

self

The GskRoundedRect to shrink or grow

 

top

How far to move the top side downwards

 

right

How far to move the right side to the left

 

bottom

How far to move the bottom side upwards

 

left

How far to move the left side to the right

 

Returns

the resized GskRoundedRect.

[transfer none]


gsk_rounded_rect_is_rectilinear ()

gboolean
gsk_rounded_rect_is_rectilinear (const GskRoundedRect *self);

Checks if all corners of self are right angles and the rectangle covers all of its bounds.

This information can be used to decide if gsk_clip_node_new() or gsk_rounded_clip_node_new() should be called.

Parameters

self

the GskRoundedRect to check

 

Returns

TRUE if the rectangle is rectilinear


gsk_rounded_rect_contains_point ()

gboolean
gsk_rounded_rect_contains_point (const GskRoundedRect *self,
                                 const graphene_point_t *point);

Checks if the given point is inside the rounded rectangle. This function returns FALSE if the point is in the rounded corner areas.

Parameters

self

a GskRoundedRect

 

point

the point to check

 

Returns

TRUE if the point is inside the rounded rectangle


gsk_rounded_rect_contains_rect ()

gboolean
gsk_rounded_rect_contains_rect (const GskRoundedRect *self,
                                const graphene_rect_t *rect);

Checks if the given rect is contained inside the rounded rectangle. This function returns FALSE if rect extends into one of the rounded corner areas.

Parameters

self

a GskRoundedRect

 

rect

the rectangle to check

 

Returns

TRUE if the rect is fully contained inside the rounded rectangle


gsk_rounded_rect_intersects_rect ()

gboolean
gsk_rounded_rect_intersects_rect (const GskRoundedRect *self,
                                  const graphene_rect_t *rect);

Checks if part of the given rect is contained inside the rounded rectangle. This function returns FALSE if rect only extends into one of the rounded corner areas but not into the rounded rectangle itself.

Parameters

self

a GskRoundedRect

 

rect

the rectangle to check

 

Returns

TRUE if the rect intersects with the rounded rectangle

docs/reference/gsk/html/gsk4-GskTransform.html0000664000175000017500000015275213635542603021523 0ustar mclasenmclasen GskTransform: GSK 4 Reference Manual

GskTransform

GskTransform — A description for transform operations

Functions

GskTransform * gsk_transform_ref ()
void gsk_transform_unref ()
GskTransformCategory gsk_transform_get_category ()
void gsk_transform_print ()
char * gsk_transform_to_string ()
gboolean gsk_transform_parse ()
void gsk_transform_to_matrix ()
void gsk_transform_to_2d ()
void gsk_transform_to_affine ()
void gsk_transform_to_translate ()
GskTransform * gsk_transform_transform ()
GskTransform * gsk_transform_invert ()
GskTransform * gsk_transform_matrix ()
GskTransform * gsk_transform_matrix_with_category ()
GskTransform * gsk_transform_translate ()
GskTransform * gsk_transform_translate_3d ()
GskTransform * gsk_transform_rotate ()
GskTransform * gsk_transform_rotate_3d ()
GskTransform * gsk_transform_scale ()
GskTransform * gsk_transform_scale_3d ()
GskTransform * gsk_transform_perspective ()
gboolean gsk_transform_equal ()
void gsk_transform_transform_bounds ()
void gsk_transform_transform_point ()

Types and Values

  GskTransform
enum GskTransformCategory

Description

GskTransform is an object to describe transform matrices. Unlike graphene_matrix_t, GskTransform retains the steps in how a transform was constructed, and allows inspecting them. It is modeled after the way CSS describes transforms.

GskTransform objects are immutable and cannot be changed after creation. This means code can safely expose them as properties of objects without having to worry about others changing them.

Functions

gsk_transform_ref ()

GskTransform *
gsk_transform_ref (GskTransform *self);

Acquires a reference on the given GskTransform.

Parameters

self

a GskTransform.

[allow-none]

Returns

the GskTransform with an additional reference.

[transfer none]


gsk_transform_unref ()

void
gsk_transform_unref (GskTransform *self);

Releases a reference on the given GskTransform.

If the reference was the last, the resources associated to the self are freed.

Parameters

self

a GskTransform.

[allow-none]

gsk_transform_get_category ()

GskTransformCategory
gsk_transform_get_category (GskTransform *self);

Returns the category this transform belongs to.

Parameters

self

A GskTransform.

[allow-none]

Returns

The category of the transform


gsk_transform_print ()

void
gsk_transform_print (GskTransform *self,
                     GString *string);

Converts self into a human-readable string representation suitable for printing that can later be parsed with gsk_transform_parse().

Parameters

self

a GskTransform.

[allow-none]

string

The string to print into

 

gsk_transform_to_string ()

char *
gsk_transform_to_string (GskTransform *self);

Converts a matrix into a string that is suitable for printing and can later be parsed with gsk_transform_parse().

This is a wrapper around gsk_transform_print(), see that function for details.

Parameters

self

a GskTransform.

[allow-none]

Returns

A new string for self


gsk_transform_parse ()

gboolean
gsk_transform_parse (const char *string,
                     GskTransform **out_transform);

Parses the given string into a transform and puts it in out_transform . Strings printed via gsk_transform_to_string() can be read in again successfully using this function.

If string does not describe a valid transform, FALSE is returned and NULL is put in out_transform .

Parameters

string

the string to parse

 

out_transform

The location to put the transform in.

[out]

Returns

TRUE if string described a valid transform.


gsk_transform_to_matrix ()

void
gsk_transform_to_matrix (GskTransform *self,
                         graphene_matrix_t *out_matrix);

Computes the actual value of self and stores it in out_matrix . The previous value of out_matrix will be ignored.

Parameters

self

a GskTransform.

[allow-none]

out_matrix

The matrix to set.

[out caller-allocates]

gsk_transform_to_2d ()

void
gsk_transform_to_2d (GskTransform *self,
                     float *out_xx,
                     float *out_yx,
                     float *out_xy,
                     float *out_yy,
                     float *out_dx,
                     float *out_dy);

Converts a GskTransform to a 2D transformation matrix. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D to check.

The returned values have the following layout:

1
2
3
| xx yx |   |  a  b  0 |
| xy yy | = |  c  d  0 |
| dx dy |   | tx ty  1 |

This function can be used to convert between a GskTransform and a matrix type from other 2D drawing libraries, in particular Cairo.

Parameters

self

a 2D GskTransform

 

out_xx

return location for the xx member.

[out]

out_yx

return location for the yx member.

[out]

out_xy

return location for the xy member.

[out]

out_yy

return location for the yy member.

[out]

out_dx

return location for the x0 member.

[out]

out_dy

return location for the y0 member.

[out]

gsk_transform_to_affine ()

void
gsk_transform_to_affine (GskTransform *self,
                         float *out_scale_x,
                         float *out_scale_y,
                         float *out_dx,
                         float *out_dy);

Converts a GskTransform to 2D affine transformation factors. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D_AFFINE to check.

Parameters

self

a GskTransform

 

out_scale_x

return location for the scale factor in the x direction.

[out]

out_scale_y

return location for the scale factor in the y direction.

[out]

out_dx

return location for the translation in the x direction.

[out]

out_dy

return location for the translation in the y direction.

[out]

gsk_transform_to_translate ()

void
gsk_transform_to_translate (GskTransform *self,
                            float *out_dx,
                            float *out_dy);

Converts a GskTransform to a translation operation. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D_TRANSLATE to check.

Parameters

self

a GskTransform

 

out_dx

return location for the translation in the x direction.

[out]

out_dy

return location for the translation in the y direction.

[out]

gsk_transform_transform ()

GskTransform *
gsk_transform_transform (GskTransform *next,
                         GskTransform *other);

Applies all the operations from other to next .

Parameters

next

Transform to apply other to.

[allow-none][transfer full]

other

Transform to apply.

[allow-none]

Returns

The new matrix


gsk_transform_invert ()

GskTransform *
gsk_transform_invert (GskTransform *self);

Inverts the given transform.

If self is not invertible, NULL is returned. Note that inverting NULL also returns NULL, which is the correct inverse of NULL. If you need to differentiate between those cases, you should check self is not NULL before calling this function.

Parameters

self

Transform to invert.

[allow-none][transfer full]

Returns

The inverted transform or NULL if the transform cannot be inverted.


gsk_transform_matrix ()

GskTransform *
gsk_transform_matrix (GskTransform *next,
                      const graphene_matrix_t *matrix);

Multiplies next with the given matrix .

Parameters

next

the next transform.

[allow-none][transfer full]

matrix

the matrix to multiply next with

 

Returns

The new matrix


gsk_transform_matrix_with_category ()

GskTransform *
gsk_transform_matrix_with_category (GskTransform *next,
                                    const graphene_matrix_t *matrix,
                                    GskTransformCategory category);

gsk_transform_translate ()

GskTransform *
gsk_transform_translate (GskTransform *next,
                         const graphene_point_t *point);

Translates next in 2dimensional space by point .

Parameters

next

the next transform.

[allow-none][transfer full]

point

the point to translate the matrix by

 

Returns

The new matrix


gsk_transform_translate_3d ()

GskTransform *
gsk_transform_translate_3d (GskTransform *next,
                            const graphene_point3d_t *point);

Translates next by point .

Parameters

next

the next transform.

[allow-none][transfer full]

point

the point to translate the matrix by

 

Returns

The new matrix


gsk_transform_rotate ()

GskTransform *
gsk_transform_rotate (GskTransform *next,
                      float angle);

Rotates next angle degrees in 2D - or in 3Dspeak, around the z axis.

Parameters

next

the next transform.

[allow-none][transfer full]

angle

the rotation angle, in degrees (clockwise)

 

Returns

The new matrix


gsk_transform_rotate_3d ()

GskTransform *
gsk_transform_rotate_3d (GskTransform *next,
                         float angle,
                         const graphene_vec3_t *axis);

Rotates next angle degrees around axis .

For a rotation in 2D space, use gsk_transform_rotate().

Parameters

next

the next transform.

[allow-none][transfer full]

angle

the rotation angle, in degrees (clockwise)

 

axis

The rotation axis

 

Returns

The new matrix


gsk_transform_scale ()

GskTransform *
gsk_transform_scale (GskTransform *next,
                     float factor_x,
                     float factor_y);

Scales next in 2-dimensional space by the given factors. Use gsk_transform_scale_3d() to scale in all 3 dimensions.

Parameters

next

the next transform.

[allow-none][transfer full]

factor_x

scaling factor on the X axis

 

factor_y

scaling factor on the Y axis

 

Returns

The new matrix


gsk_transform_scale_3d ()

GskTransform *
gsk_transform_scale_3d (GskTransform *next,
                        float factor_x,
                        float factor_y,
                        float factor_z);

Scales next by the given factors.

Parameters

next

the next transform.

[allow-none][transfer full]

factor_x

scaling factor on the X axis

 

factor_y

scaling factor on the Y axis

 

factor_z

scaling factor on the Z axis

 

Returns

The new matrix


gsk_transform_perspective ()

GskTransform *
gsk_transform_perspective (GskTransform *next,
                           float depth);

Applies a perspective projection transform. This transform scales points in X and Y based on their Z value, scaling points with positive Z values away from the origin, and those with negative Z values towards the origin. Points on the z=0 plane are unchanged.

Parameters

next

the next transform.

[allow-none][transfer full]

depth

distance of the z=0 plane. Lower values give a more flattened pyramid and therefore a more pronounced perspective effect.

 

Returns

The new matrix


gsk_transform_equal ()

gboolean
gsk_transform_equal (GskTransform *first,
                     GskTransform *second);

Checks two matrices for equality. Note that matrices need to be literally identical in their operations, it is not enough that they return the same result in gsk_transform_to_matrix().

Parameters

first

the first matrix

 

second

the second matrix

 

Returns

TRUE if the two matrices can be proven to be equal


gsk_transform_transform_bounds ()

void
gsk_transform_transform_bounds (GskTransform *self,
                                const graphene_rect_t *rect,
                                graphene_rect_t *out_rect);

Transforms a graphene_rect_t using the given transform self . The result is the bounding box containing the coplanar quad.

Parameters

self

a GskTransform

 

rect

a graphene_rect_t

 

out_rect

return location for the bounds of the transformed rectangle.

[out caller-allocates]

gsk_transform_transform_point ()

void
gsk_transform_transform_point (GskTransform *self,
                               const graphene_point_t *point,
                               graphene_point_t *out_point);

Transforms a graphene_point_t using the given transform self .

Parameters

self

a GskTransform

 

point

a graphene_point_t

 

out_point

return location for the transformed point.

[out caller-allocates]
docs/reference/gsk/html/index.html0000664000175000017500000000404013635542603017326 0ustar mclasenmclasen GSK 4 Reference Manual: GSK 4 Reference Manual

This document is for the GSK 4 library, version 3.98.1 The latest versions can be found online at https://developer.gnome.org/gsk4/.


I. API Reference
GskRenderer — Renders a scene
GskRenderNode — Simple scene graph element
GskRoundedRect — A rounded rectangle
GskTransform — A description for transform operations
Index of all symbols
docs/reference/gsk/html/reference.html0000664000175000017500000000435713635542603020170 0ustar mclasenmclasen API Reference: GSK 4 Reference Manual

API Reference


Table of Contents

GskRenderer — Renders a scene
GskRenderNode — Simple scene graph element
GskRoundedRect — A rounded rectangle
GskTransform — A description for transform operations
docs/reference/gsk/gsk4-decl-list.txt0000664000175000017500000002561613635542600017665 0ustar mclasenmclasen
gsk
gsk-autocleanup
gskbroadwayrenderer GskBroadwayRenderer gsk_broadway_renderer_new GSK_BROADWAY_RENDERER GSK_BROADWAY_RENDERER_CLASS GSK_BROADWAY_RENDERER_GET_CLASS GSK_IS_BROADWAY_RENDERER GSK_IS_BROADWAY_RENDERER_CLASS GSK_TYPE_BROADWAY_RENDERER GskBroadwayRenderer GskBroadwayRendererClass gsk_broadway_renderer_get_type
gskcairorenderer GskCairoRenderer gsk_cairo_renderer_new GSK_CAIRO_RENDERER GSK_CAIRO_RENDERER_CLASS GSK_CAIRO_RENDERER_GET_CLASS GSK_IS_CAIRO_RENDERER GSK_IS_CAIRO_RENDERER_CLASS GSK_TYPE_CAIRO_RENDERER GskCairoRenderer GskCairoRendererClass gsk_cairo_renderer_get_type
gskdiffprivate GskDiffResult GskKeepFunc GskDeleteFunc GskInsertFunc gsk_diff_settings_new gsk_diff_settings_free gsk_diff_settings_set_allow_abort gsk_diff GskDiffSettings
gskenums GskRenderNodeType GskScalingFilter GskBlendMode GskCorner GskSerializationError GskTransformCategory
gskenumtypes GSK_TYPE_RENDER_NODE_TYPE GSK_TYPE_SCALING_FILTER GSK_TYPE_BLEND_MODE GSK_TYPE_CORNER GSK_TYPE_SERIALIZATION_ERROR GSK_TYPE_TRANSFORM_CATEGORY
gskglglyphcacheprivate CacheKeyData GlyphCacheKey PHASE glyph_cache_key_set_glyph_and_shift GskGLCachedGlyph gsk_gl_glyph_cache_new gsk_gl_glyph_cache_ref gsk_gl_glyph_cache_unref gsk_gl_glyph_cache_begin_frame gsk_gl_glyph_cache_lookup_or_add
gskgliconcacheprivate gsk_gl_icon_cache_new gsk_gl_icon_cache_ref gsk_gl_icon_cache_unref gsk_gl_icon_cache_begin_frame gsk_gl_icon_cache_lookup_or_add
gskglimageprivate gsk_gl_image_create gsk_gl_image_destroy gsk_gl_image_write_to_png gsk_gl_image_upload_region
gskglnodesampleprivate N_NODE_TYPES node_sample_init node_sample_reset node_sample_add node_sample_print
gskglrenderer GskGLRenderer gsk_gl_renderer_new GSK_GL_RENDERER GSK_GL_RENDERER_CLASS GSK_GL_RENDERER_GET_CLASS GSK_IS_GL_RENDERER GSK_IS_GL_RENDERER_CLASS GSK_TYPE_GL_RENDERER GskGLRenderer GskGLRendererClass gsk_gl_renderer_get_type
gskglrenderopsprivate GL_N_VERTICES GL_N_PROGRAMS Program GskGLRendererPrograms ops_dump_framebuffer ops_init ops_free ops_reset ops_push_debug_group ops_pop_debug_group ops_finish ops_push_modelview ops_set_modelview ops_pop_modelview ops_get_scale ops_set_program ops_push_clip ops_pop_clip ops_has_clip ops_transform_bounds_modelview ops_set_projection ops_set_viewport ops_set_texture ops_set_render_target ops_set_opacity ops_set_color ops_set_color_matrix ops_set_border ops_set_border_width ops_set_border_color ops_draw ops_offset ops_begin ops_get_buffer
gskglshaderbuilderprivate gsk_gl_shader_builder_init gsk_gl_shader_builder_finish gsk_gl_shader_builder_set_glsl_version gsk_gl_shader_builder_create_program
gskglshadowcacheprivate gsk_gl_shadow_cache_init gsk_gl_shadow_cache_free gsk_gl_shadow_cache_begin_frame gsk_gl_shadow_cache_get_texture_id gsk_gl_shadow_cache_commit
gskgltextureatlasprivate GskGLTextureAtlas GskGLTextureAtlases gsk_gl_texture_atlases_new gsk_gl_texture_atlases_ref gsk_gl_texture_atlases_unref gsk_gl_texture_atlases_begin_frame gsk_gl_texture_atlases_pack gsk_gl_texture_atlas_init gsk_gl_texture_atlas_free gsk_gl_texture_atlas_realize gsk_gl_texture_atlas_mark_unused gsk_gl_texture_atlas_mark_used gsk_gl_texture_atlas_pack gsk_gl_texture_atlas_get_unused_ratio
gskrenderer GskRenderer gsk_renderer_new_for_surface gsk_renderer_get_surface gsk_renderer_realize gsk_renderer_unrealize gsk_renderer_is_realized gsk_renderer_render_texture gsk_renderer_render GSK_IS_RENDERER GSK_RENDERER GSK_TYPE_RENDERER GskRendererClass gsk_renderer_get_type
gskrendernode GSK_SERIALIZATION_ERROR GskColorStop GskShadow GskParseErrorFunc gsk_serialization_error_quark gsk_render_node_ref gsk_render_node_unref gsk_render_node_get_node_type gsk_render_node_get_bounds gsk_render_node_draw gsk_render_node_serialize gsk_render_node_write_to_file gsk_render_node_deserialize gsk_debug_node_new gsk_debug_node_get_child gsk_debug_node_get_message gsk_color_node_new gsk_color_node_peek_color gsk_texture_node_new gsk_texture_node_get_texture gsk_linear_gradient_node_new gsk_linear_gradient_node_peek_start gsk_linear_gradient_node_peek_end gsk_linear_gradient_node_get_n_color_stops gsk_linear_gradient_node_peek_color_stops gsk_repeating_linear_gradient_node_new gsk_border_node_new gsk_border_node_peek_outline gsk_border_node_peek_widths gsk_border_node_peek_colors gsk_inset_shadow_node_new gsk_inset_shadow_node_peek_outline gsk_inset_shadow_node_peek_color gsk_inset_shadow_node_get_dx gsk_inset_shadow_node_get_dy gsk_inset_shadow_node_get_spread gsk_inset_shadow_node_get_blur_radius gsk_outset_shadow_node_new gsk_outset_shadow_node_peek_outline gsk_outset_shadow_node_peek_color gsk_outset_shadow_node_get_dx gsk_outset_shadow_node_get_dy gsk_outset_shadow_node_get_spread gsk_outset_shadow_node_get_blur_radius gsk_cairo_node_new gsk_cairo_node_get_draw_context gsk_cairo_node_peek_surface gsk_container_node_new gsk_container_node_get_n_children gsk_container_node_get_child gsk_transform_node_new gsk_transform_node_get_child gsk_transform_node_get_transform gsk_opacity_node_new gsk_opacity_node_get_child gsk_opacity_node_get_opacity gsk_color_matrix_node_new gsk_color_matrix_node_get_child gsk_color_matrix_node_peek_color_matrix gsk_color_matrix_node_peek_color_offset gsk_repeat_node_new gsk_repeat_node_get_child gsk_repeat_node_peek_child_bounds gsk_clip_node_new gsk_clip_node_get_child gsk_clip_node_peek_clip gsk_rounded_clip_node_new gsk_rounded_clip_node_get_child gsk_rounded_clip_node_peek_clip gsk_shadow_node_new gsk_shadow_node_get_child gsk_shadow_node_peek_shadow gsk_shadow_node_get_n_shadows gsk_blend_node_new gsk_blend_node_get_bottom_child gsk_blend_node_get_top_child gsk_blend_node_get_blend_mode gsk_cross_fade_node_new gsk_cross_fade_node_get_start_child gsk_cross_fade_node_get_end_child gsk_cross_fade_node_get_progress gsk_text_node_new gsk_text_node_peek_font gsk_text_node_has_color_glyphs gsk_text_node_get_num_glyphs gsk_text_node_peek_glyphs gsk_text_node_peek_color gsk_text_node_get_offset gsk_blur_node_new gsk_blur_node_get_child gsk_blur_node_get_radius GSK_IS_RENDER_NODE GSK_TYPE_RENDER_NODE GskRenderNode gsk_render_node_get_type
gskrendernodeparserprivate gsk_render_node_deserialize_from_bytes
gskresources
gskroundedrect GSK_ROUNDED_RECT_INIT GskRoundedRect gsk_rounded_rect_init gsk_rounded_rect_init_copy gsk_rounded_rect_init_from_rect gsk_rounded_rect_normalize gsk_rounded_rect_offset gsk_rounded_rect_shrink gsk_rounded_rect_is_rectilinear gsk_rounded_rect_contains_point gsk_rounded_rect_contains_rect gsk_rounded_rect_intersects_rect
gsktransform gsk_transform_ref gsk_transform_unref gsk_transform_print gsk_transform_to_string gsk_transform_parse gsk_transform_to_matrix gsk_transform_to_2d gsk_transform_to_affine gsk_transform_to_translate gsk_transform_get_category gsk_transform_equal gsk_transform_new gsk_transform_transform gsk_transform_invert gsk_transform_matrix gsk_transform_translate gsk_transform_translate_3d gsk_transform_rotate gsk_transform_rotate_3d gsk_transform_scale gsk_transform_scale_3d gsk_transform_perspective gsk_transform_transform_bounds gsk_transform_transform_point GSK_TYPE_TRANSFORM gsk_transform_get_type
gsktransformprivate gsk_transform_matrix_with_category gsk_transform_parser_parse
gsktypes GskRenderer GskTransform
gskvulkanblendmodepipelineprivate GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE gsk_vulkan_blend_mode_pipeline_new gsk_vulkan_blend_mode_pipeline_count_vertex_data gsk_vulkan_blend_mode_pipeline_collect_vertex_data gsk_vulkan_blend_mode_pipeline_draw GskVulkanBlendModePipeline GskVulkanBlendModePipelineLayout
gskvulkanblurpipelineprivate GSK_TYPE_VULKAN_BLUR_PIPELINE gsk_vulkan_blur_pipeline_new gsk_vulkan_blur_pipeline_count_vertex_data gsk_vulkan_blur_pipeline_collect_vertex_data gsk_vulkan_blur_pipeline_draw GskVulkanBlurPipeline GskVulkanBlurPipelineLayout
gskvulkancolortextpipelineprivate GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE gsk_vulkan_color_text_pipeline_new gsk_vulkan_color_text_pipeline_count_vertex_data gsk_vulkan_color_text_pipeline_collect_vertex_data gsk_vulkan_color_text_pipeline_draw GskVulkanColorTextPipeline GskVulkanColorTextPipelineLayout
gskvulkancrossfadepipelineprivate GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE gsk_vulkan_cross_fade_pipeline_new gsk_vulkan_cross_fade_pipeline_count_vertex_data gsk_vulkan_cross_fade_pipeline_collect_vertex_data gsk_vulkan_cross_fade_pipeline_draw GskVulkanCrossFadePipeline GskVulkanCrossFadePipelineLayout
gskvulkanglyphcacheprivate GSK_TYPE_VULKAN_GLYPH_CACHE gsk_vulkan_glyph_cache_new gsk_vulkan_glyph_cache_get_glyph_image gsk_vulkan_glyph_cache_lookup gsk_vulkan_glyph_cache_begin_frame GskVulkanGlyphCache
gskvulkanrenderer GskVulkanRenderer gsk_vulkan_renderer_new GSK_IS_VULKAN_RENDERER GSK_IS_VULKAN_RENDERER_CLASS GSK_TYPE_VULKAN_RENDERER GSK_VULKAN_RENDERER GSK_VULKAN_RENDERER_CLASS GSK_VULKAN_RENDERER_GET_CLASS GskVulkanRenderer GskVulkanRendererClass gsk_vulkan_renderer_get_type
gskvulkantextpipelineprivate GSK_TYPE_VULKAN_TEXT_PIPELINE gsk_vulkan_text_pipeline_new gsk_vulkan_text_pipeline_count_vertex_data gsk_vulkan_text_pipeline_collect_vertex_data gsk_vulkan_text_pipeline_draw GskVulkanTextPipeline GskVulkanTextPipelineLayout
gskvulkantexturepipelineprivate GSK_TYPE_VULKAN_TEXTURE_PIPELINE gsk_vulkan_texture_pipeline_new gsk_vulkan_texture_pipeline_count_vertex_data gsk_vulkan_texture_pipeline_collect_vertex_data gsk_vulkan_texture_pipeline_draw GskVulkanTexturePipeline GskVulkanTexturePipelineLayout
opbuffer OpKind op_buffer_init op_buffer_destroy op_buffer_clear op_buffer_add op_buffer_iter_init op_buffer_iter_next op_buffer_pop_tail op_buffer_peek_tail op_buffer_peek_tail_checked op_buffer_n_ops Program
stb_rect_pack STB_RECT_PACK_VERSION STBRP_DEF stbrp_context stbrp_node stbrp_rect stbrp_coord
docs/reference/gsk/gsk4-decl.txt0000664000175000017500000016256013635542600016714 0ustar mclasenmclasen GSK_TYPE_CAIRO_RENDERER #define GSK_TYPE_CAIRO_RENDERER (gsk_cairo_renderer_get_type ()) GSK_CAIRO_RENDERER #define GSK_CAIRO_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_CAIRO_RENDERER, GskCairoRenderer)) GSK_IS_CAIRO_RENDERER #define GSK_IS_CAIRO_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_CAIRO_RENDERER)) GSK_CAIRO_RENDERER_CLASS #define GSK_CAIRO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_CAIRO_RENDERER, GskCairoRendererClass)) GSK_IS_CAIRO_RENDERER_CLASS #define GSK_IS_CAIRO_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_CAIRO_RENDERER)) GSK_CAIRO_RENDERER_GET_CLASS #define GSK_CAIRO_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_CAIRO_RENDERER, GskCairoRendererClass)) gsk_cairo_renderer_get_type GType void gsk_cairo_renderer_new GskRenderer * void GskCairoRenderer GskCairoRendererClass GskDiffResult typedef enum { GSK_DIFF_OK = 0, GSK_DIFF_ABORTED, } GskDiffResult; GskKeepFunc void gconstpointer elem1, gconstpointer elem2, gpointer data GskDeleteFunc void gconstpointer elem, gsize idx, gpointer data GskInsertFunc void gconstpointer elem, gsize idx, gpointer data gsk_diff_settings_new GskDiffSettings * GCompareDataFunc compare_func, GskKeepFunc keep_func, GskDeleteFunc delete_func, GskInsertFunc insert_func gsk_diff_settings_free void GskDiffSettings *settings gsk_diff_settings_set_allow_abort void GskDiffSettings *settings, gboolean allow_abort gsk_diff GskDiffResult gconstpointer *elem1, gsize n1, gconstpointer *elem2, gsize n2, const GskDiffSettings *settings, gpointer data GskDiffSettings GskRenderNodeType typedef enum { GSK_NOT_A_RENDER_NODE = 0, GSK_CONTAINER_NODE, GSK_CAIRO_NODE, GSK_COLOR_NODE, GSK_LINEAR_GRADIENT_NODE, GSK_REPEATING_LINEAR_GRADIENT_NODE, GSK_BORDER_NODE, GSK_TEXTURE_NODE, GSK_INSET_SHADOW_NODE, GSK_OUTSET_SHADOW_NODE, GSK_TRANSFORM_NODE, GSK_OPACITY_NODE, GSK_COLOR_MATRIX_NODE, GSK_REPEAT_NODE, GSK_CLIP_NODE, GSK_ROUNDED_CLIP_NODE, GSK_SHADOW_NODE, GSK_BLEND_NODE, GSK_CROSS_FADE_NODE, GSK_TEXT_NODE, GSK_BLUR_NODE, GSK_DEBUG_NODE } GskRenderNodeType; GskScalingFilter typedef enum { GSK_SCALING_FILTER_LINEAR, GSK_SCALING_FILTER_NEAREST, GSK_SCALING_FILTER_TRILINEAR } GskScalingFilter; GskBlendMode typedef enum { GSK_BLEND_MODE_DEFAULT = 0, GSK_BLEND_MODE_MULTIPLY, GSK_BLEND_MODE_SCREEN, GSK_BLEND_MODE_OVERLAY, GSK_BLEND_MODE_DARKEN, GSK_BLEND_MODE_LIGHTEN, GSK_BLEND_MODE_COLOR_DODGE, GSK_BLEND_MODE_COLOR_BURN, GSK_BLEND_MODE_HARD_LIGHT, GSK_BLEND_MODE_SOFT_LIGHT, GSK_BLEND_MODE_DIFFERENCE, GSK_BLEND_MODE_EXCLUSION, GSK_BLEND_MODE_COLOR, GSK_BLEND_MODE_HUE, GSK_BLEND_MODE_SATURATION, GSK_BLEND_MODE_LUMINOSITY } GskBlendMode; GskCorner typedef enum { GSK_CORNER_TOP_LEFT, GSK_CORNER_TOP_RIGHT, GSK_CORNER_BOTTOM_RIGHT, GSK_CORNER_BOTTOM_LEFT } GskCorner; GskSerializationError typedef enum { GSK_SERIALIZATION_UNSUPPORTED_FORMAT, GSK_SERIALIZATION_UNSUPPORTED_VERSION, GSK_SERIALIZATION_INVALID_DATA } GskSerializationError; GskTransformCategory typedef enum { GSK_TRANSFORM_CATEGORY_UNKNOWN, GSK_TRANSFORM_CATEGORY_ANY, GSK_TRANSFORM_CATEGORY_3D, GSK_TRANSFORM_CATEGORY_2D, GSK_TRANSFORM_CATEGORY_2D_AFFINE, GSK_TRANSFORM_CATEGORY_2D_TRANSLATE, GSK_TRANSFORM_CATEGORY_IDENTITY } GskTransformCategory; GSK_TYPE_RENDERER #define GSK_TYPE_RENDERER (gsk_renderer_get_type ()) GSK_RENDERER #define GSK_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_RENDERER, GskRenderer)) GSK_IS_RENDERER #define GSK_IS_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_RENDERER)) gsk_renderer_get_type GType void gsk_renderer_new_for_surface GskRenderer * GdkSurface *surface gsk_renderer_get_surface GdkSurface * GskRenderer *renderer gsk_renderer_realize gboolean GskRenderer *renderer, GdkSurface *surface, GError **error gsk_renderer_unrealize void GskRenderer *renderer gsk_renderer_is_realized gboolean GskRenderer *renderer gsk_renderer_render_texture GdkTexture * GskRenderer *renderer, GskRenderNode *root, const graphene_rect_t *viewport gsk_renderer_render void GskRenderer *renderer, GskRenderNode *root, const cairo_region_t *region GskRendererClass GSK_TYPE_RENDER_NODE #define GSK_TYPE_RENDER_NODE (gsk_render_node_get_type ()) GSK_IS_RENDER_NODE #define GSK_IS_RENDER_NODE(obj) ((obj) != NULL) GSK_SERIALIZATION_ERROR #define GSK_SERIALIZATION_ERROR (gsk_serialization_error_quark ()) GskColorStop struct _GskColorStop { float offset; GdkRGBA color; }; GskShadow struct _GskShadow { GdkRGBA color; float dx; float dy; float radius; }; GskParseErrorFunc void const GtkCssSection *section, const GError *error, gpointer user_data gsk_render_node_get_type GType void gsk_serialization_error_quark GQuark void gsk_render_node_ref GskRenderNode * GskRenderNode *node gsk_render_node_unref void GskRenderNode *node gsk_render_node_get_node_type GskRenderNodeType GskRenderNode *node gsk_render_node_get_bounds void GskRenderNode *node, graphene_rect_t *bounds gsk_render_node_draw void GskRenderNode *node, cairo_t *cr gsk_render_node_serialize GBytes * GskRenderNode *node gsk_render_node_write_to_file gboolean GskRenderNode *node, const char *filename, GError **error gsk_render_node_deserialize GskRenderNode * GBytes *bytes, GskParseErrorFunc error_func, gpointer user_data gsk_debug_node_new GskRenderNode * GskRenderNode *child, char *message gsk_debug_node_get_child GskRenderNode * GskRenderNode *node gsk_debug_node_get_message const char * GskRenderNode *node gsk_color_node_new GskRenderNode * const GdkRGBA *rgba, const graphene_rect_t *bounds gsk_color_node_peek_color const GdkRGBA * GskRenderNode *node gsk_texture_node_new GskRenderNode * GdkTexture *texture, const graphene_rect_t *bounds gsk_texture_node_get_texture GdkTexture * GskRenderNode *node gsk_linear_gradient_node_new GskRenderNode * const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops, gsize n_color_stops gsk_linear_gradient_node_peek_start const graphene_point_t * GskRenderNode *node gsk_linear_gradient_node_peek_end const graphene_point_t * GskRenderNode *node gsk_linear_gradient_node_get_n_color_stops gsize GskRenderNode *node gsk_linear_gradient_node_peek_color_stops const GskColorStop * GskRenderNode *node gsk_repeating_linear_gradient_node_new GskRenderNode * const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops, gsize n_color_stops gsk_border_node_new GskRenderNode * const GskRoundedRect *outline, const float border_width[4], const GdkRGBA border_color[4] gsk_border_node_peek_outline const GskRoundedRect * GskRenderNode *node gsk_border_node_peek_widths const float * GskRenderNode *node gsk_border_node_peek_colors const GdkRGBA * GskRenderNode *node gsk_inset_shadow_node_new GskRenderNode * const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius gsk_inset_shadow_node_peek_outline const GskRoundedRect * GskRenderNode *node gsk_inset_shadow_node_peek_color const GdkRGBA * GskRenderNode *node gsk_inset_shadow_node_get_dx float GskRenderNode *node gsk_inset_shadow_node_get_dy float GskRenderNode *node gsk_inset_shadow_node_get_spread float GskRenderNode *node gsk_inset_shadow_node_get_blur_radius float GskRenderNode *node gsk_outset_shadow_node_new GskRenderNode * const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius gsk_outset_shadow_node_peek_outline const GskRoundedRect * GskRenderNode *node gsk_outset_shadow_node_peek_color const GdkRGBA * GskRenderNode *node gsk_outset_shadow_node_get_dx float GskRenderNode *node gsk_outset_shadow_node_get_dy float GskRenderNode *node gsk_outset_shadow_node_get_spread float GskRenderNode *node gsk_outset_shadow_node_get_blur_radius float GskRenderNode *node gsk_cairo_node_new GskRenderNode * const graphene_rect_t *bounds gsk_cairo_node_get_draw_context cairo_t * GskRenderNode *node gsk_cairo_node_peek_surface cairo_surface_t * GskRenderNode *node gsk_container_node_new GskRenderNode * GskRenderNode **children, guint n_children gsk_container_node_get_n_children guint GskRenderNode *node gsk_container_node_get_child GskRenderNode * GskRenderNode *node, guint idx gsk_transform_node_new GskRenderNode * GskRenderNode *child, GskTransform *transform gsk_transform_node_get_child GskRenderNode * GskRenderNode *node gsk_transform_node_get_transform GskTransform * GskRenderNode *node gsk_opacity_node_new GskRenderNode * GskRenderNode *child, float opacity gsk_opacity_node_get_child GskRenderNode * GskRenderNode *node gsk_opacity_node_get_opacity float GskRenderNode *node gsk_color_matrix_node_new GskRenderNode * GskRenderNode *child, const graphene_matrix_t *color_matrix, const graphene_vec4_t *color_offset gsk_color_matrix_node_get_child GskRenderNode * GskRenderNode *node gsk_color_matrix_node_peek_color_matrix const graphene_matrix_t * GskRenderNode *node gsk_color_matrix_node_peek_color_offset const graphene_vec4_t * GskRenderNode *node gsk_repeat_node_new GskRenderNode * const graphene_rect_t *bounds, GskRenderNode *child, const graphene_rect_t *child_bounds gsk_repeat_node_get_child GskRenderNode * GskRenderNode *node gsk_repeat_node_peek_child_bounds const graphene_rect_t * GskRenderNode *node gsk_clip_node_new GskRenderNode * GskRenderNode *child, const graphene_rect_t *clip gsk_clip_node_get_child GskRenderNode * GskRenderNode *node gsk_clip_node_peek_clip const graphene_rect_t * GskRenderNode *node gsk_rounded_clip_node_new GskRenderNode * GskRenderNode *child, const GskRoundedRect *clip gsk_rounded_clip_node_get_child GskRenderNode * GskRenderNode *node gsk_rounded_clip_node_peek_clip const GskRoundedRect * GskRenderNode *node gsk_shadow_node_new GskRenderNode * GskRenderNode *child, const GskShadow *shadows, gsize n_shadows gsk_shadow_node_get_child GskRenderNode * GskRenderNode *node gsk_shadow_node_peek_shadow const GskShadow * GskRenderNode *node, gsize i gsk_shadow_node_get_n_shadows gsize GskRenderNode *node gsk_blend_node_new GskRenderNode * GskRenderNode *bottom, GskRenderNode *top, GskBlendMode blend_mode gsk_blend_node_get_bottom_child GskRenderNode * GskRenderNode *node gsk_blend_node_get_top_child GskRenderNode * GskRenderNode *node gsk_blend_node_get_blend_mode GskBlendMode GskRenderNode *node gsk_cross_fade_node_new GskRenderNode * GskRenderNode *start, GskRenderNode *end, float progress gsk_cross_fade_node_get_start_child GskRenderNode * GskRenderNode *node gsk_cross_fade_node_get_end_child GskRenderNode * GskRenderNode *node gsk_cross_fade_node_get_progress float GskRenderNode *node gsk_text_node_new GskRenderNode * PangoFont *font, PangoGlyphString *glyphs, const GdkRGBA *color, const graphene_point_t *offset gsk_text_node_peek_font PangoFont * GskRenderNode *node gsk_text_node_has_color_glyphs gboolean GskRenderNode *node gsk_text_node_get_num_glyphs guint GskRenderNode *node gsk_text_node_peek_glyphs const PangoGlyphInfo * GskRenderNode *node gsk_text_node_peek_color const GdkRGBA * GskRenderNode *node gsk_text_node_get_offset const graphene_point_t * GskRenderNode *node gsk_blur_node_new GskRenderNode * GskRenderNode *child, float radius gsk_blur_node_get_child GskRenderNode * GskRenderNode *node gsk_blur_node_get_radius float GskRenderNode *node GskRenderNode gsk_render_node_deserialize_from_bytes GskRenderNode * GBytes *bytes, GskParseErrorFunc error_func, gpointer user_data GSK_ROUNDED_RECT_INIT #define GSK_ROUNDED_RECT_INIT(_x,_y,_w,_h) (GskRoundedRect) { .bounds = GRAPHENE_RECT_INIT(_x,_y,_w,_h), \ .corner = { \ GRAPHENE_SIZE_INIT(0, 0),\ GRAPHENE_SIZE_INIT(0, 0),\ GRAPHENE_SIZE_INIT(0, 0),\ GRAPHENE_SIZE_INIT(0, 0),\ }} GskRoundedRect struct _GskRoundedRect { graphene_rect_t bounds; graphene_size_t corner[4]; }; gsk_rounded_rect_init GskRoundedRect * GskRoundedRect *self, const graphene_rect_t *bounds, const graphene_size_t *top_left, const graphene_size_t *top_right, const graphene_size_t *bottom_right, const graphene_size_t *bottom_left gsk_rounded_rect_init_copy GskRoundedRect * GskRoundedRect *self, const GskRoundedRect *src gsk_rounded_rect_init_from_rect GskRoundedRect * GskRoundedRect *self, const graphene_rect_t *bounds, float radius gsk_rounded_rect_normalize GskRoundedRect * GskRoundedRect *self gsk_rounded_rect_offset GskRoundedRect * GskRoundedRect *self, float dx, float dy gsk_rounded_rect_shrink GskRoundedRect * GskRoundedRect *self, float top, float right, float bottom, float left gsk_rounded_rect_is_rectilinear gboolean const GskRoundedRect *self gsk_rounded_rect_contains_point gboolean const GskRoundedRect *self, const graphene_point_t *point gsk_rounded_rect_contains_rect gboolean const GskRoundedRect *self, const graphene_rect_t *rect gsk_rounded_rect_intersects_rect gboolean const GskRoundedRect *self, const graphene_rect_t *rect GSK_TYPE_TRANSFORM #define GSK_TYPE_TRANSFORM (gsk_transform_get_type ()) gsk_transform_get_type GType void gsk_transform_ref GskTransform * GskTransform *self gsk_transform_unref void GskTransform *self gsk_transform_print void GskTransform *self, GString *string gsk_transform_to_string char * GskTransform *self gsk_transform_parse gboolean const char *string, GskTransform **out_transform gsk_transform_to_matrix void GskTransform *self, graphene_matrix_t *out_matrix gsk_transform_to_2d void GskTransform *self, float *out_xx, float *out_yx, float *out_xy, float *out_yy, float *out_dx, float *out_dy gsk_transform_to_affine void GskTransform *self, float *out_scale_x, float *out_scale_y, float *out_dx, float *out_dy gsk_transform_to_translate void GskTransform *self, float *out_dx, float *out_dy gsk_transform_get_category GskTransformCategory GskTransform *self gsk_transform_equal gboolean GskTransform *first, GskTransform *second gsk_transform_new GskTransform * void gsk_transform_transform GskTransform * GskTransform *next, GskTransform *other gsk_transform_invert GskTransform * GskTransform *self gsk_transform_matrix GskTransform * GskTransform *next, const graphene_matrix_t *matrix gsk_transform_translate GskTransform * GskTransform *next, const graphene_point_t *point gsk_transform_translate_3d GskTransform * GskTransform *next, const graphene_point3d_t *point gsk_transform_rotate GskTransform * GskTransform *next, float angle gsk_transform_rotate_3d GskTransform * GskTransform *next, float angle, const graphene_vec3_t *axis gsk_transform_scale GskTransform * GskTransform *next, float factor_x, float factor_y gsk_transform_scale_3d GskTransform * GskTransform *next, float factor_x, float factor_y, float factor_z gsk_transform_perspective GskTransform * GskTransform *next, float depth gsk_transform_transform_bounds void GskTransform *self, const graphene_rect_t *rect, graphene_rect_t *out_rect gsk_transform_transform_point void GskTransform *self, const graphene_point_t *point, graphene_point_t *out_point gsk_transform_matrix_with_category GskTransform * GskTransform *next, const graphene_matrix_t*matrix, GskTransformCategory category gsk_transform_parser_parse gboolean GtkCssParser *parser, GskTransform **out_transform GskRenderer GskTransform GSK_TYPE_BROADWAY_RENDERER #define GSK_TYPE_BROADWAY_RENDERER (gsk_broadway_renderer_get_type ()) GSK_BROADWAY_RENDERER #define GSK_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRenderer)) GSK_IS_BROADWAY_RENDERER #define GSK_IS_BROADWAY_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_BROADWAY_RENDERER)) GSK_BROADWAY_RENDERER_CLASS #define GSK_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) GSK_IS_BROADWAY_RENDERER_CLASS #define GSK_IS_BROADWAY_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_BROADWAY_RENDERER)) GSK_BROADWAY_RENDERER_GET_CLASS #define GSK_BROADWAY_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_BROADWAY_RENDERER, GskBroadwayRendererClass)) gsk_broadway_renderer_get_type GType void gsk_broadway_renderer_new GskRenderer * void GskBroadwayRenderer GskBroadwayRendererClass CacheKeyData struct _CacheKeyData { PangoFont *font; PangoGlyph glyph; guint xshift : 3; guint yshift : 3; guint scale : 26; /* times 1024 */ }; GlyphCacheKey struct _GlyphCacheKey { CacheKeyData data; guint hash; }; PHASE #define PHASE(x) ((int)(floor (4 * (x + 0.125)) - 4 * floor (x + 0.125))) glyph_cache_key_set_glyph_and_shift void GlyphCacheKey *key, PangoGlyph glyph, float x, float y GskGLCachedGlyph struct _GskGLCachedGlyph { GskGLTextureAtlas *atlas; guint texture_id; float tx; float ty; float tw; float th; int draw_x; int draw_y; int draw_width; int draw_height; guint accessed : 1; /* accessed since last check */ guint used : 1; /* accounted as used in the atlas */ }; gsk_gl_glyph_cache_new GskGLGlyphCache * GdkDisplay *display, GskGLTextureAtlases *atlases gsk_gl_glyph_cache_ref GskGLGlyphCache * GskGLGlyphCache *self gsk_gl_glyph_cache_unref void GskGLGlyphCache *self gsk_gl_glyph_cache_begin_frame void GskGLGlyphCache *self, GskGLDriver *driver, GPtrArray *removed_atlases gsk_gl_glyph_cache_lookup_or_add void GskGLGlyphCache *self, GlyphCacheKey *lookup, GskGLDriver *driver, const GskGLCachedGlyph **cached_glyph_out CacheKeyData GlyphCacheKey gsk_gl_icon_cache_new GskGLIconCache * GdkDisplay *display, GskGLTextureAtlases *atlases gsk_gl_icon_cache_ref GskGLIconCache * GskGLIconCache *self gsk_gl_icon_cache_unref void GskGLIconCache *self gsk_gl_icon_cache_begin_frame void GskGLIconCache *self, GPtrArray *removed_atlases gsk_gl_icon_cache_lookup_or_add void GskGLIconCache *self, GdkTexture *texture, const IconData **out_icon_data gsk_gl_image_create void GskGLImage *self, GskGLDriver *gl_driver, int width, int height, int min_filter, int mag_filter gsk_gl_image_destroy void GskGLImage *self, GskGLDriver *gl_driver gsk_gl_image_write_to_png void const GskGLImage *self, GskGLDriver *gl_driver, const char *filename gsk_gl_image_upload_region void GskGLImage *self, GskGLDriver *gl_driver, const GskImageRegion *region N_NODE_TYPES #define N_NODE_TYPES (GSK_DEBUG_NODE + 1) node_sample_init void NodeSample *self node_sample_reset void NodeSample *self node_sample_add void NodeSample *self, GskRenderNode *node node_sample_print void const NodeSample *self, const char *prefix GSK_TYPE_GL_RENDERER #define GSK_TYPE_GL_RENDERER (gsk_gl_renderer_get_type ()) GSK_GL_RENDERER #define GSK_GL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_GL_RENDERER, GskGLRenderer)) GSK_IS_GL_RENDERER #define GSK_IS_GL_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_GL_RENDERER)) GSK_GL_RENDERER_CLASS #define GSK_GL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_GL_RENDERER, GskGLRendererClass)) GSK_IS_GL_RENDERER_CLASS #define GSK_IS_GL_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_GL_RENDERER)) GSK_GL_RENDERER_GET_CLASS #define GSK_GL_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_GL_RENDERER, GskGLRendererClass)) gsk_gl_renderer_get_type GType void gsk_gl_renderer_new GskRenderer * void GskGLRenderer GskGLRendererClass GL_N_VERTICES #define GL_N_VERTICES 6 GL_N_PROGRAMS #define GL_N_PROGRAMS 13 Program struct _Program { int index; /* Into the renderer's program array */ int id; /* Common locations (gl_common)*/ int source_location; int position_location; int uv_location; int alpha_location; int viewport_location; int projection_location; int modelview_location; int clip_rect_location; union { struct { int color_location; } color; struct { int color_location; } coloring; struct { int color_matrix_location; int color_offset_location; } color_matrix; struct { int num_color_stops_location; int color_stops_location; int start_point_location; int end_point_location; } linear_gradient; struct { int blur_radius_location; int blur_size_location; int blur_dir_location; } blur; struct { int color_location; int spread_location; int offset_location; int outline_rect_location; } inset_shadow; struct { int color_location; int outline_rect_location; } outset_shadow; struct { int outline_rect_location; int color_location; int spread_location; int offset_location; } unblurred_outset_shadow; struct { int color_location; int widths_location; int outline_rect_location; } border; struct { int source2_location; int progress_location; } cross_fade; struct { int source2_location; int mode_location; } blend; struct { int child_bounds_location; int texture_rect_location; } repeat; }; }; GskGLRendererPrograms typedef struct { int ref_count; union { Program programs[GL_N_PROGRAMS]; struct { Program blend_program; Program blit_program; Program blur_program; Program border_program; Program color_matrix_program; Program color_program; Program coloring_program; Program cross_fade_program; Program inset_shadow_program; Program linear_gradient_program; Program outset_shadow_program; Program repeat_program; Program unblurred_outset_shadow_program; }; }; ProgramState state[GL_N_PROGRAMS]; } GskGLRendererPrograms; ops_dump_framebuffer void RenderOpBuilder *builder, const char *filename, int width, int height ops_init void RenderOpBuilder *builder ops_free void RenderOpBuilder *builder ops_reset void RenderOpBuilder *builder ops_push_debug_group void RenderOpBuilder *builder, const char *text ops_pop_debug_group void RenderOpBuilder *builder ops_finish void RenderOpBuilder *builder ops_push_modelview void RenderOpBuilder *builder, GskTransform *transform ops_set_modelview void RenderOpBuilder *builder, GskTransform *transform ops_pop_modelview void RenderOpBuilder *builder ops_get_scale float const RenderOpBuilder *builder ops_set_program void RenderOpBuilder *builder, const Program *program ops_push_clip void RenderOpBuilder *builder, const GskRoundedRect *clip ops_pop_clip void RenderOpBuilder *builder ops_has_clip gboolean RenderOpBuilder *builder ops_transform_bounds_modelview void const RenderOpBuilder *builder, const graphene_rect_t *src, graphene_rect_t *dst ops_set_projection graphene_matrix_t RenderOpBuilder *builder, const graphene_matrix_t *projection ops_set_viewport graphene_rect_t RenderOpBuilder *builder, const graphene_rect_t *viewport ops_set_texture void RenderOpBuilder *builder, int texture_id ops_set_render_target int RenderOpBuilder *builder, int render_target_id ops_set_opacity float RenderOpBuilder *builder, float opacity ops_set_color void RenderOpBuilder *builder, const GdkRGBA *color ops_set_color_matrix void RenderOpBuilder *builder, const graphene_matrix_t *matrix, const graphene_vec4_t *offset ops_set_border void RenderOpBuilder *builder, const GskRoundedRect *outline ops_set_border_width void RenderOpBuilder *builder, const float *widths ops_set_border_color void RenderOpBuilder *builder, const GdkRGBA *color ops_draw GskQuadVertex * RenderOpBuilder *builder, const GskQuadVertex vertex_data[GL_N_VERTICES] ops_offset void RenderOpBuilder *builder, float x, float y ops_begin gpointer RenderOpBuilder *builder, OpKind kind ops_get_buffer OpBuffer * RenderOpBuilder *builder gsk_gl_shader_builder_init void GskGLShaderBuilder *self, const char *common_preamble_resource_path, const char *vs_preamble_resource_path, const char *fs_preamble_resource_path gsk_gl_shader_builder_finish void GskGLShaderBuilder *self gsk_gl_shader_builder_set_glsl_version void GskGLShaderBuilder *self, int version gsk_gl_shader_builder_create_program int GskGLShaderBuilder *self, const char *resource_path, GError **error gsk_gl_shadow_cache_init void GskGLShadowCache *self gsk_gl_shadow_cache_free void GskGLShadowCache *self, GskGLDriver *gl_driver gsk_gl_shadow_cache_begin_frame void GskGLShadowCache *self, GskGLDriver *gl_driver gsk_gl_shadow_cache_get_texture_id int GskGLShadowCache *self, GskGLDriver *gl_driver, const GskRoundedRect *shadow_rect, float blur_radius gsk_gl_shadow_cache_commit void GskGLShadowCache *self, const GskRoundedRect *shadow_rect, float blur_radius, int texture_id GskGLTextureAtlas struct _GskGLTextureAtlas { struct stbrp_context context; struct stbrp_node *nodes; int width; int height; guint texture_id; int unused_pixels; /* Pixels of rects that have been used at some point, But are now unused. */ void *user_data; }; GskGLTextureAtlases struct _GskGLTextureAtlases { int ref_count; GPtrArray *atlases; }; gsk_gl_texture_atlases_new GskGLTextureAtlases * void gsk_gl_texture_atlases_ref GskGLTextureAtlases * GskGLTextureAtlases *atlases gsk_gl_texture_atlases_unref void GskGLTextureAtlases *atlases gsk_gl_texture_atlases_begin_frame void GskGLTextureAtlases *atlases, GPtrArray *removed gsk_gl_texture_atlases_pack gboolean GskGLTextureAtlases *atlases, int width, int height, GskGLTextureAtlas **atlas_out, int *out_x, int *out_y gsk_gl_texture_atlas_init void GskGLTextureAtlas *self, int width, int height gsk_gl_texture_atlas_free void GskGLTextureAtlas *self gsk_gl_texture_atlas_realize void GskGLTextureAtlas *self gsk_gl_texture_atlas_mark_unused void GskGLTextureAtlas *self, int width, int height gsk_gl_texture_atlas_mark_used void GskGLTextureAtlas *self, int width, int height gsk_gl_texture_atlas_pack gboolean GskGLTextureAtlas *self, int width, int height, int *out_x, int *out_y gsk_gl_texture_atlas_get_unused_ratio double const GskGLTextureAtlas *self GskGLTextureAtlas GskGLTextureAtlases OpKind typedef enum { OP_NONE = 0, OP_CHANGE_OPACITY = 1, OP_CHANGE_COLOR = 2, OP_CHANGE_PROJECTION = 3, OP_CHANGE_MODELVIEW = 4, OP_CHANGE_PROGRAM = 5, OP_CHANGE_RENDER_TARGET = 6, OP_CHANGE_CLIP = 7, OP_CHANGE_VIEWPORT = 8, OP_CHANGE_SOURCE_TEXTURE = 9, OP_CHANGE_REPEAT = 10, OP_CHANGE_LINEAR_GRADIENT = 11, OP_CHANGE_COLOR_MATRIX = 12, OP_CHANGE_BLUR = 13, OP_CHANGE_INSET_SHADOW = 14, OP_CHANGE_OUTSET_SHADOW = 15, OP_CHANGE_BORDER = 16, OP_CHANGE_BORDER_COLOR = 17, OP_CHANGE_BORDER_WIDTH = 18, OP_CHANGE_CROSS_FADE = 19, OP_CHANGE_UNBLURRED_OUTSET_SHADOW = 20, OP_CLEAR = 21, OP_DRAW = 22, OP_DUMP_FRAMEBUFFER = 23, OP_PUSH_DEBUG_GROUP = 24, OP_POP_DEBUG_GROUP = 25, OP_CHANGE_BLEND = 26, OP_LAST } OpKind; op_buffer_init void OpBuffer *buffer op_buffer_destroy void OpBuffer *buffer op_buffer_clear void OpBuffer *buffer op_buffer_add gpointer OpBuffer *buffer, OpKind kind op_buffer_iter_init void OpBufferIter *iter, OpBuffer *buffer op_buffer_iter_next gpointer OpBufferIter *iter, OpKind *kind op_buffer_pop_tail void OpBuffer *buffer op_buffer_peek_tail gpointer OpBuffer *buffer, OpKind *kind op_buffer_peek_tail_checked gpointer OpBuffer *buffer, OpKind kind op_buffer_n_ops guint OpBuffer *buffer Program STB_RECT_PACK_VERSION #define STB_RECT_PACK_VERSION 1 STBRP_DEF #define STBRP_DEF static stbrp_context typedef struct stbrp_context stbrp_context; stbrp_node typedef struct stbrp_node stbrp_node; stbrp_rect typedef struct stbrp_rect stbrp_rect; stbrp_coord typedef int stbrp_coord; GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE #define GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE (gsk_vulkan_blend_mode_pipeline_get_type ()) gsk_vulkan_blend_mode_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_blend_mode_pipeline_count_vertex_data gsize GskVulkanBlendModePipeline *pipeline gsk_vulkan_blend_mode_pipeline_collect_vertex_data void GskVulkanBlendModePipeline *pipeline, guchar *data, const graphene_rect_t *bounds, const graphene_rect_t *start_bounds, const graphene_rect_t *end_bounds, GskBlendMode blend_mode gsk_vulkan_blend_mode_pipeline_draw gsize GskVulkanBlendModePipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanBlendModePipeline GskVulkanBlendModePipelineLayout GSK_TYPE_VULKAN_BLUR_PIPELINE #define GSK_TYPE_VULKAN_BLUR_PIPELINE (gsk_vulkan_blur_pipeline_get_type ()) gsk_vulkan_blur_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_blur_pipeline_count_vertex_data gsize GskVulkanBlurPipeline *pipeline gsk_vulkan_blur_pipeline_collect_vertex_data void GskVulkanBlurPipeline *pipeline, guchar *data, const graphene_rect_t *rect, const graphene_rect_t *tex_rect, double radius gsk_vulkan_blur_pipeline_draw gsize GskVulkanBlurPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanBlurPipeline GskVulkanBlurPipelineLayout GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE #define GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE (gsk_vulkan_color_text_pipeline_get_type ()) gsk_vulkan_color_text_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_color_text_pipeline_count_vertex_data gsize GskVulkanColorTextPipeline *pipeline, int num_instances gsk_vulkan_color_text_pipeline_collect_vertex_data void GskVulkanColorTextPipeline *pipeline, guchar *data, GskVulkanRenderer *renderer, const graphene_rect_t *rect, PangoFont *font, guint total_glyphs, const PangoGlyphInfo *glyphs, const graphene_point_t *offset, guint start_glyph, guint num_glyphs, float scale gsk_vulkan_color_text_pipeline_draw gsize GskVulkanColorTextPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanColorTextPipeline GskVulkanColorTextPipelineLayout GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE #define GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE (gsk_vulkan_cross_fade_pipeline_get_type ()) gsk_vulkan_cross_fade_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_cross_fade_pipeline_count_vertex_data gsize GskVulkanCrossFadePipeline *pipeline gsk_vulkan_cross_fade_pipeline_collect_vertex_data void GskVulkanCrossFadePipeline *pipeline, guchar *data, const graphene_rect_t *bounds, const graphene_rect_t *start_bounds, const graphene_rect_t *end_bounds, double progress gsk_vulkan_cross_fade_pipeline_draw gsize GskVulkanCrossFadePipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanCrossFadePipeline GskVulkanCrossFadePipelineLayout GSK_TYPE_VULKAN_GLYPH_CACHE #define GSK_TYPE_VULKAN_GLYPH_CACHE (gsk_vulkan_glyph_cache_get_type ()) gsk_vulkan_glyph_cache_new GskVulkanGlyphCache * GskRenderer *renderer, GdkVulkanContext *vulkan gsk_vulkan_glyph_cache_get_glyph_image GskVulkanImage * GskVulkanGlyphCache *cache, GskVulkanUploader *uploader, guint index gsk_vulkan_glyph_cache_lookup GskVulkanCachedGlyph * GskVulkanGlyphCache *cache, gboolean create, PangoFont *font, PangoGlyph glyph, int x, int y, float scale gsk_vulkan_glyph_cache_begin_frame void GskVulkanGlyphCache *cache GskVulkanGlyphCache GSK_TYPE_VULKAN_RENDERER #define GSK_TYPE_VULKAN_RENDERER (gsk_vulkan_renderer_get_type ()) GSK_VULKAN_RENDERER #define GSK_VULKAN_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_VULKAN_RENDERER, GskVulkanRenderer)) GSK_IS_VULKAN_RENDERER #define GSK_IS_VULKAN_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_VULKAN_RENDERER)) GSK_VULKAN_RENDERER_CLASS #define GSK_VULKAN_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_VULKAN_RENDERER, GskVulkanRendererClass)) GSK_IS_VULKAN_RENDERER_CLASS #define GSK_IS_VULKAN_RENDERER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_VULKAN_RENDERER)) GSK_VULKAN_RENDERER_GET_CLASS #define GSK_VULKAN_RENDERER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_VULKAN_RENDERER, GskVulkanRendererClass)) gsk_vulkan_renderer_get_type GType void gsk_vulkan_renderer_new GskRenderer * void GskVulkanRenderer GskVulkanRendererClass GSK_TYPE_VULKAN_TEXT_PIPELINE #define GSK_TYPE_VULKAN_TEXT_PIPELINE (gsk_vulkan_text_pipeline_get_type ()) gsk_vulkan_text_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_text_pipeline_count_vertex_data gsize GskVulkanTextPipeline *pipeline, int num_instances gsk_vulkan_text_pipeline_collect_vertex_data void GskVulkanTextPipeline *pipeline, guchar *data, GskVulkanRenderer *renderer, const graphene_rect_t *rect, PangoFont *font, guint total_glyphs, const PangoGlyphInfo *glyphs, const GdkRGBA *color, const graphene_point_t *offset, guint start_glyph, guint num_glyphs, float scale gsk_vulkan_text_pipeline_draw gsize GskVulkanTextPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanTextPipeline GskVulkanTextPipelineLayout GSK_TYPE_VULKAN_TEXTURE_PIPELINE #define GSK_TYPE_VULKAN_TEXTURE_PIPELINE (gsk_vulkan_texture_pipeline_get_type ()) gsk_vulkan_texture_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_texture_pipeline_count_vertex_data gsize GskVulkanTexturePipeline *pipeline gsk_vulkan_texture_pipeline_collect_vertex_data void GskVulkanTexturePipeline *pipeline, guchar *data, const graphene_rect_t *rect, const graphene_rect_t *tex_rect gsk_vulkan_texture_pipeline_draw gsize GskVulkanTexturePipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanTexturePipeline GskVulkanTexturePipelineLayout GSK_TYPE_RENDER_NODE_TYPE #define GSK_TYPE_RENDER_NODE_TYPE (gsk_render_node_type_get_type ()) GSK_TYPE_SCALING_FILTER #define GSK_TYPE_SCALING_FILTER (gsk_scaling_filter_get_type ()) GSK_TYPE_BLEND_MODE #define GSK_TYPE_BLEND_MODE (gsk_blend_mode_get_type ()) GSK_TYPE_CORNER #define GSK_TYPE_CORNER (gsk_corner_get_type ()) GSK_TYPE_SERIALIZATION_ERROR #define GSK_TYPE_SERIALIZATION_ERROR (gsk_serialization_error_get_type ()) GSK_TYPE_TRANSFORM_CATEGORY #define GSK_TYPE_TRANSFORM_CATEGORY (gsk_transform_category_get_type ()) docs/reference/gsk/gsk4-overrides.txt0000664000175000017500000000000013635542600017763 0ustar mclasenmclasendocs/reference/gsk/gsk4.signals0000664000175000017500000000000013635542600016604 0ustar mclasenmclasendocs/reference/gsk/gsk4.hierarchy0000664000175000017500000000014113635542600017130 0ustar mclasenmclasenGObject GskRenderer GdkSurface GInterface GTypePlugin GBoxed GValueArray GskRenderNode docs/reference/gsk/gsk4.interfaces0000664000175000017500000000000013635542600017267 0ustar mclasenmclasendocs/reference/gsk/gsk4.prerequisites0000664000175000017500000000000013635542600020050 0ustar mclasenmclasendocs/reference/gsk/gsk4.args0000664000175000017500000000064113635542600016113 0ustar mclasenmclasen GskRenderer::realized gboolean r Realized The renderer has been associated with a surface. FALSE GskRenderer::surface GdkSurface* r Surface The surface associated to the renderer. docs/reference/gsk/gsk4.actions0000664000175000017500000000000013635542600016604 0ustar mclasenmclasendocs/reference/gsk/xml/0000775000175000017500000000000013635542601015165 5ustar mclasenmclasendocs/reference/gsk/xml/GskRenderer.xml0000664000175000017500000005644313635542601020136 0ustar mclasenmclasen ]> GskRenderer 3 GSK4 Library GskRenderer Renders a scene Functions GdkSurface * gsk_renderer_get_surface () gboolean gsk_renderer_realize () void gsk_renderer_unrealize () gboolean gsk_renderer_is_realized () void gsk_renderer_render () GdkTexture * gsk_renderer_render_texture () GskRenderer * gsk_renderer_new_for_surface () GskRenderer * gsk_gl_renderer_new () GskRenderer * gsk_cairo_renderer_new () GskRenderer * gsk_vulkan_renderer_new () GskRenderer * gsk_broadway_renderer_new () Properties gbooleanrealizedRead GdkSurface *surfaceRead Object Hierarchy GObject ╰── GskRenderer Description GskRenderer is a class that renders a scene graph defined via a tree of GskRenderNode instances. Typically you will use a GskRenderer instance to repeatedly call gsk_renderer_render() to update the contents of its associated GdkSurface. It is necessary to realize a GskRenderer instance using gsk_renderer_realize() before calling gsk_renderer_render(), in order to create the appropriate windowing system resources needed to render the scene. Functions gsk_renderer_get_surface () gsk_renderer_get_surface GdkSurface * gsk_renderer_get_surface (GskRenderer *renderer); Retrieves the GdkSurface set using gsk_renderer_realize(). If the renderer has not been realized yet, NULL will be returned. Parameters renderer a GskRenderer Returns a GdkSurface. [transfer none][nullable] gsk_renderer_realize () gsk_renderer_realize gboolean gsk_renderer_realize (GskRenderer *renderer, GdkSurface *surface, GError **error); Creates the resources needed by the renderer to render the scene graph. Parameters renderer a GskRenderer surface the GdkSurface renderer will be used on error return location for an error gsk_renderer_unrealize () gsk_renderer_unrealize void gsk_renderer_unrealize (GskRenderer *renderer); Releases all the resources created by gsk_renderer_realize(). Parameters renderer a GskRenderer gsk_renderer_is_realized () gsk_renderer_is_realized gboolean gsk_renderer_is_realized (GskRenderer *renderer); Checks whether the renderer is realized or not. Parameters renderer a GskRenderer Returns TRUE if the GskRenderer was realized, and FALSE otherwise gsk_renderer_render () gsk_renderer_render void gsk_renderer_render (GskRenderer *renderer, GskRenderNode *root, const cairo_region_t *region); Renders the scene graph, described by a tree of GskRenderNode instances, ensuring that the given region gets redrawn. Renderers must ensure that changes of the contents given by the root node as well as the area given by region are redrawn. They are however free to not redraw any pixel outside of region if they can guarantee that it didn't change. The renderer will acquire a reference on the GskRenderNode tree while the rendering is in progress. Parameters renderer a GskRenderer root a GskRenderNode region the cairo_region_t that must be redrawn or NULL for the whole window. [nullable] gsk_renderer_render_texture () gsk_renderer_render_texture GdkTexture * gsk_renderer_render_texture (GskRenderer *renderer, GskRenderNode *root, const graphene_rect_t *viewport); Renders the scene graph, described by a tree of GskRenderNode instances, to a GdkTexture. The renderer will acquire a reference on the GskRenderNode tree while the rendering is in progress. If you want to apply any transformations to root , you should put it into a transform node and pass that node instead. Parameters renderer a realized GdkRenderer root a GskRenderNode viewport the section to draw or NULL to use root 's bounds. [allow-none] Returns a GdkTexture with the rendered contents of root . [transfer full] gsk_renderer_new_for_surface () gsk_renderer_new_for_surface GskRenderer * gsk_renderer_new_for_surface (GdkSurface *surface); Creates an appropriate GskRenderer instance for the given surface . The renderer will be realized when it is returned. Parameters surface a GdkSurface Returns a GskRenderer. [transfer full][nullable] gsk_gl_renderer_new () gsk_gl_renderer_new GskRenderer * gsk_gl_renderer_new (void); Creates a new GskRenderer using OpenGL. This is the default renderer used by GTK. Returns a new GL renderer gsk_cairo_renderer_new () gsk_cairo_renderer_new GskRenderer * gsk_cairo_renderer_new (void); Creates a new Cairo renderer. The Cairo renderer is the fallback renderer drawing in ways similar to how GTK 3 drew its content. Its primary use is as comparison tool. The Cairo renderer is incomplete. It cannot render 3D transformed content and will instead render an error marker. Its usage should be avoided. Returns a new Cairo renderer. gsk_vulkan_renderer_new () gsk_vulkan_renderer_new GskRenderer * gsk_vulkan_renderer_new (void); Creates a new Vulkan renderer. The Vulkan renderer is a renderer that uses the Vulkan library for rendering. This function is only available when GTK was compiled with Vulkan support. Returns a new Vulkan renderer gsk_broadway_renderer_new () gsk_broadway_renderer_new GskRenderer * gsk_broadway_renderer_new (void); Creates a new Broadway renderer. The Broadway renderer is the default renderer for the broadway backend. It will only work with broadway surfaces, otherwise it will fail the call to gdk_renderer_realize(). This function is only available when GTK was compiled with Broadway support. Returns a new Broadway renderer. Property Details The <literal>“realized”</literal> property GskRenderer:realized “realized” gboolean The renderer has been associated with a surface.Owner: GskRenderer Flags: Read Default value: FALSE The <literal>“surface”</literal> property GskRenderer:surface “surface” GdkSurface * The surface associated to the renderer.Owner: GskRenderer Flags: Read docs/reference/gsk/xml/GskRenderNode.xml0000664000175000017500000037471213635542601020417 0ustar mclasenmclasen ]> GskRenderNode 3 GSK4 Library GskRenderNode Simple scene graph element Functions GskRenderNode * gsk_render_node_ref () void gsk_render_node_unref () GskRenderNodeType gsk_render_node_get_node_type () void gsk_render_node_draw () void (*GskParseErrorFunc) () GBytes * gsk_render_node_serialize () GskRenderNode * gsk_render_node_deserialize () gboolean gsk_render_node_write_to_file () void gsk_render_node_get_bounds () GskRenderNode * gsk_color_node_new () const GdkRGBA * gsk_color_node_peek_color () GskRenderNode * gsk_texture_node_new () GdkTexture * gsk_texture_node_get_texture () GskRenderNode * gsk_linear_gradient_node_new () const graphene_point_t * gsk_linear_gradient_node_peek_start () const graphene_point_t * gsk_linear_gradient_node_peek_end () gsize gsk_linear_gradient_node_get_n_color_stops () const GskColorStop * gsk_linear_gradient_node_peek_color_stops () GskRenderNode * gsk_repeating_linear_gradient_node_new () GskRenderNode * gsk_border_node_new () const GskRoundedRect * gsk_border_node_peek_outline () const float * gsk_border_node_peek_widths () const GdkRGBA * gsk_border_node_peek_colors () GskRenderNode * gsk_inset_shadow_node_new () const GskRoundedRect * gsk_inset_shadow_node_peek_outline () const GdkRGBA * gsk_inset_shadow_node_peek_color () float gsk_inset_shadow_node_get_dx () float gsk_inset_shadow_node_get_dy () float gsk_inset_shadow_node_get_spread () float gsk_inset_shadow_node_get_blur_radius () GskRenderNode * gsk_outset_shadow_node_new () const GskRoundedRect * gsk_outset_shadow_node_peek_outline () const GdkRGBA * gsk_outset_shadow_node_peek_color () float gsk_outset_shadow_node_get_dx () float gsk_outset_shadow_node_get_dy () float gsk_outset_shadow_node_get_spread () float gsk_outset_shadow_node_get_blur_radius () GskRenderNode * gsk_cairo_node_new () cairo_t * gsk_cairo_node_get_draw_context () cairo_surface_t * gsk_cairo_node_peek_surface () GskRenderNode * gsk_container_node_new () guint gsk_container_node_get_n_children () GskRenderNode * gsk_container_node_get_child () GskRenderNode * gsk_transform_node_new () GskRenderNode * gsk_transform_node_get_child () GskTransform * gsk_transform_node_get_transform () GskRenderNode * gsk_opacity_node_new () GskRenderNode * gsk_opacity_node_get_child () float gsk_opacity_node_get_opacity () GskRenderNode * gsk_color_matrix_node_new () GskRenderNode * gsk_color_matrix_node_get_child () const graphene_matrix_t * gsk_color_matrix_node_peek_color_matrix () const graphene_vec4_t * gsk_color_matrix_node_peek_color_offset () GskRenderNode * gsk_repeat_node_new () GskRenderNode * gsk_repeat_node_get_child () const graphene_rect_t * gsk_repeat_node_peek_child_bounds () GskRenderNode * gsk_clip_node_new () GskRenderNode * gsk_clip_node_get_child () const graphene_rect_t * gsk_clip_node_peek_clip () GskRenderNode * gsk_rounded_clip_node_new () GskRenderNode * gsk_rounded_clip_node_get_child () const GskRoundedRect * gsk_rounded_clip_node_peek_clip () GskRenderNode * gsk_shadow_node_new () const GskShadow * gsk_shadow_node_peek_shadow () gsize gsk_shadow_node_get_n_shadows () GskRenderNode * gsk_shadow_node_get_child () GskRenderNode * gsk_blend_node_new () GskRenderNode * gsk_blend_node_get_bottom_child () GskRenderNode * gsk_blend_node_get_top_child () GskBlendMode gsk_blend_node_get_blend_mode () GskRenderNode * gsk_cross_fade_node_new () GskRenderNode * gsk_cross_fade_node_get_start_child () GskRenderNode * gsk_cross_fade_node_get_end_child () float gsk_cross_fade_node_get_progress () GskRenderNode * gsk_text_node_new () PangoFont * gsk_text_node_peek_font () const PangoGlyphInfo * gsk_text_node_peek_glyphs () const GdkRGBA * gsk_text_node_peek_color () guint gsk_text_node_get_num_glyphs () const graphene_point_t * gsk_text_node_get_offset () GskRenderNode * gsk_blur_node_new () GskRenderNode * gsk_blur_node_get_child () float gsk_blur_node_get_radius () GskRenderNode * gsk_debug_node_new () GskRenderNode * gsk_debug_node_get_child () const char * gsk_debug_node_get_message () Types and Values enumGskRenderNodeType enumGskSerializationError enumGskScalingFilter structGskShadow enumGskBlendMode Object Hierarchy GBoxed ╰── GskRenderNode Description GskRenderNode is the basic block in a scene graph to be rendered using GskRenderer. Each node has a parent, except the top-level node; each node may have children nodes. Each node has an associated drawing surface, which has the size of the rectangle set using gsk_render_node_set_bounds(). Render nodes are meant to be transient; once they have been associated to a GskRenderer it's safe to release any reference you have on them. All GskRenderNodes are immutable, you can only specify their properties during construction. Functions gsk_render_node_ref () gsk_render_node_ref GskRenderNode * gsk_render_node_ref (GskRenderNode *node); Acquires a reference on the given GskRenderNode. Parameters node a GskRenderNode Returns the GskRenderNode with an additional reference. [transfer full] gsk_render_node_unref () gsk_render_node_unref void gsk_render_node_unref (GskRenderNode *node); Releases a reference on the given GskRenderNode. If the reference was the last, the resources associated to the node are freed. Parameters node a GskRenderNode. [transfer full] gsk_render_node_get_node_type () gsk_render_node_get_node_type GskRenderNodeType gsk_render_node_get_node_type (GskRenderNode *node); Returns the type of the node . Parameters node a GskRenderNode Returns the type of the GskRenderNode gsk_render_node_draw () gsk_render_node_draw void gsk_render_node_draw (GskRenderNode *node, cairo_t *cr); Draw the contents of node to the given cairo context. Typically, you'll use this function to implement fallback rendering of GskRenderNodes on an intermediate Cairo context, instead of using the drawing context associated to a GdkSurface's rendering buffer. For advanced nodes that cannot be supported using Cairo, in particular for nodes doing 3D operations, this function may fail. Parameters node a GskRenderNode cr cairo context to draw to GskParseErrorFunc () GskParseErrorFunc void (*GskParseErrorFunc) (const GtkCssSection *section, const GError *error, gpointer user_data); The type of callback that is called when a parse error occurs during deserialization of node data. Parameters section the GtkCssSection where the error occurred error the error user_data user data gsk_render_node_serialize () gsk_render_node_serialize GBytes * gsk_render_node_serialize (GskRenderNode *node); Serializes the node for later deserialization via gsk_render_node_deserialize(). No guarantees are made about the format used other than that the same version of GTK+ will be able to deserialize the result of a call to gsk_render_node_serialize() and gsk_render_node_deserialize() will correctly reject files it cannot open that were created with previous versions of GTK+. The intended use of this functions is testing, benchmarking and debugging. The format is not meant as a permanent storage format. Parameters node a GskRenderNode Returns a GBytes representing the node. gsk_render_node_deserialize () gsk_render_node_deserialize GskRenderNode * gsk_render_node_deserialize (GBytes *bytes, GskParseErrorFunc error_func, gpointer user_data); Loads data previously created via gsk_render_node_serialize(). For a discussion of the supported format, see that function. Parameters bytes the bytes containing the data error_func Callback on parsing errors or NULL. [nullable][scope call] user_data user_data for error_func . [closure error_func] Returns a new GskRenderNode or NULL on error. [nullable][transfer full] gsk_render_node_write_to_file () gsk_render_node_write_to_file gboolean gsk_render_node_write_to_file (GskRenderNode *node, const char *filename, GError **error); This function is equivalent to calling gsk_render_node_serialize() followed by g_file_set_contents(). See those two functions for details on the arguments. It is mostly intended for use inside a debugger to quickly dump a render node to a file for later inspection. Parameters node a GskRenderNode filename the file to save it to. error Return location for a potential error Returns TRUE if saving was successful gsk_render_node_get_bounds () gsk_render_node_get_bounds void gsk_render_node_get_bounds (GskRenderNode *node, graphene_rect_t *bounds); Retrieves the boundaries of the node . The node will not draw outside of its boundaries. Parameters node a GskRenderNode bounds return location for the boundaries. [out caller-allocates] gsk_color_node_new () gsk_color_node_new GskRenderNode * gsk_color_node_new (const GdkRGBA *rgba, const graphene_rect_t *bounds); Creates a GskRenderNode that will render the color specified by rgba into the area given by bounds . Parameters rgba a GdkRGBA specifying a color bounds the rectangle to render the color into Returns A new GskRenderNode gsk_color_node_peek_color () gsk_color_node_peek_color const GdkRGBA * gsk_color_node_peek_color (GskRenderNode *node); gsk_texture_node_new () gsk_texture_node_new GskRenderNode * gsk_texture_node_new (GdkTexture *texture, const graphene_rect_t *bounds); Creates a GskRenderNode that will render the given texture into the area given by bounds . Parameters texture the GdkTexture bounds the rectangle to render the texture into Returns A new GskRenderNode gsk_texture_node_get_texture () gsk_texture_node_get_texture GdkTexture * gsk_texture_node_get_texture (GskRenderNode *node); Parameters node a GskRenderNode Returns the GdkTexture. [transfer none] gsk_linear_gradient_node_new () gsk_linear_gradient_node_new GskRenderNode * gsk_linear_gradient_node_new (const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops, gsize n_color_stops); Creates a GskRenderNode that will create a linear gradient from the given points and color stops, and render that into the area given by bounds . Parameters bounds the rectangle to render the linear gradient into start the point at which the linear gradient will begin end the point at which the linear gradient will finish color_stops a pointer to an array of GskColorStop defining the gradient. [array length=n_color_stops] n_color_stops the number of elements in color_stops Returns A new GskRenderNode gsk_linear_gradient_node_peek_start () gsk_linear_gradient_node_peek_start const graphene_point_t * gsk_linear_gradient_node_peek_start (GskRenderNode *node); gsk_linear_gradient_node_peek_end () gsk_linear_gradient_node_peek_end const graphene_point_t * gsk_linear_gradient_node_peek_end (GskRenderNode *node); gsk_linear_gradient_node_get_n_color_stops () gsk_linear_gradient_node_get_n_color_stops gsize gsk_linear_gradient_node_get_n_color_stops (GskRenderNode *node); gsk_linear_gradient_node_peek_color_stops () gsk_linear_gradient_node_peek_color_stops const GskColorStop * gsk_linear_gradient_node_peek_color_stops (GskRenderNode *node); gsk_repeating_linear_gradient_node_new () gsk_repeating_linear_gradient_node_new GskRenderNode * gsk_repeating_linear_gradient_node_new (const graphene_rect_t *bounds, const graphene_point_t *start, const graphene_point_t *end, const GskColorStop *color_stops, gsize n_color_stops); Creates a GskRenderNode that will create a repeating linear gradient from the given points and color stops, and render that into the area given by bounds . Parameters bounds the rectangle to render the linear gradient into start the point at which the linear gradient will begin end the point at which the linear gradient will finish color_stops a pointer to an array of GskColorStop defining the gradient. [array length=n_color_stops] n_color_stops the number of elements in color_stops Returns A new GskRenderNode gsk_border_node_new () gsk_border_node_new GskRenderNode * gsk_border_node_new (const GskRoundedRect *outline, const float border_width[4], const GdkRGBA border_color[4]); Creates a GskRenderNode that will stroke a border rectangle inside the given outline . The 4 sides of the border can have different widths and colors. Parameters outline a GskRoundedRect describing the outline of the border border_width the stroke width of the border on the top, right, bottom and left side respectively. [array fixed-size=4] border_color the color used on the top, right, bottom and left side. [array fixed-size=4] Returns A new GskRenderNode gsk_border_node_peek_outline () gsk_border_node_peek_outline const GskRoundedRect * gsk_border_node_peek_outline (GskRenderNode *node); gsk_border_node_peek_widths () gsk_border_node_peek_widths const float * gsk_border_node_peek_widths (GskRenderNode *node); gsk_border_node_peek_colors () gsk_border_node_peek_colors const GdkRGBA * gsk_border_node_peek_colors (GskRenderNode *node); gsk_inset_shadow_node_new () gsk_inset_shadow_node_new GskRenderNode * gsk_inset_shadow_node_new (const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius); Creates a GskRenderNode that will render an inset shadow into the box given by outline . Parameters outline outline of the region containing the shadow color color of the shadow dx horizontal offset of shadow dy vertical offset of shadow spread how far the shadow spreads towards the inside blur_radius how much blur to apply to the shadow Returns A new GskRenderNode gsk_inset_shadow_node_peek_outline () gsk_inset_shadow_node_peek_outline const GskRoundedRect * gsk_inset_shadow_node_peek_outline (GskRenderNode *node); gsk_inset_shadow_node_peek_color () gsk_inset_shadow_node_peek_color const GdkRGBA * gsk_inset_shadow_node_peek_color (GskRenderNode *node); gsk_inset_shadow_node_get_dx () gsk_inset_shadow_node_get_dx float gsk_inset_shadow_node_get_dx (GskRenderNode *node); gsk_inset_shadow_node_get_dy () gsk_inset_shadow_node_get_dy float gsk_inset_shadow_node_get_dy (GskRenderNode *node); gsk_inset_shadow_node_get_spread () gsk_inset_shadow_node_get_spread float gsk_inset_shadow_node_get_spread (GskRenderNode *node); gsk_inset_shadow_node_get_blur_radius () gsk_inset_shadow_node_get_blur_radius float gsk_inset_shadow_node_get_blur_radius (GskRenderNode *node); gsk_outset_shadow_node_new () gsk_outset_shadow_node_new GskRenderNode * gsk_outset_shadow_node_new (const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius); Creates a GskRenderNode that will render an outset shadow around the box given by outline . Parameters outline outline of the region surrounded by shadow color color of the shadow dx horizontal offset of shadow dy vertical offset of shadow spread how far the shadow spreads towards the inside blur_radius how much blur to apply to the shadow Returns A new GskRenderNode gsk_outset_shadow_node_peek_outline () gsk_outset_shadow_node_peek_outline const GskRoundedRect * gsk_outset_shadow_node_peek_outline (GskRenderNode *node); gsk_outset_shadow_node_peek_color () gsk_outset_shadow_node_peek_color const GdkRGBA * gsk_outset_shadow_node_peek_color (GskRenderNode *node); gsk_outset_shadow_node_get_dx () gsk_outset_shadow_node_get_dx float gsk_outset_shadow_node_get_dx (GskRenderNode *node); gsk_outset_shadow_node_get_dy () gsk_outset_shadow_node_get_dy float gsk_outset_shadow_node_get_dy (GskRenderNode *node); gsk_outset_shadow_node_get_spread () gsk_outset_shadow_node_get_spread float gsk_outset_shadow_node_get_spread (GskRenderNode *node); gsk_outset_shadow_node_get_blur_radius () gsk_outset_shadow_node_get_blur_radius float gsk_outset_shadow_node_get_blur_radius (GskRenderNode *node); gsk_cairo_node_new () gsk_cairo_node_new GskRenderNode * gsk_cairo_node_new (const graphene_rect_t *bounds); Creates a GskRenderNode that will render a cairo surface into the area given by bounds . You can draw to the cairo surface using gsk_cairo_node_get_draw_context() Parameters bounds the rectangle to render to Returns A new GskRenderNode gsk_cairo_node_get_draw_context () gsk_cairo_node_get_draw_context cairo_t * gsk_cairo_node_get_draw_context (GskRenderNode *node); Creates a Cairo context for drawing using the surface associated to the render node. If no surface exists yet, a surface will be created optimized for rendering to renderer . Parameters node a cairo GskRenderNode Returns a Cairo context used for drawing; use cairo_destroy() when done drawing. [transfer full] gsk_cairo_node_peek_surface () gsk_cairo_node_peek_surface cairo_surface_t * gsk_cairo_node_peek_surface (GskRenderNode *node); gsk_container_node_new () gsk_container_node_new GskRenderNode * gsk_container_node_new (GskRenderNode **children, guint n_children); Creates a new GskRenderNode instance for holding the given children . The new node will acquire a reference to each of the children. Parameters children The children of the node. [array length=n_children][transfer none] n_children Number of children in the children array Returns the new GskRenderNode. [transfer full] gsk_container_node_get_n_children () gsk_container_node_get_n_children guint gsk_container_node_get_n_children (GskRenderNode *node); Retrieves the number of direct children of node . Parameters node a container GskRenderNode Returns the number of children of the GskRenderNode gsk_container_node_get_child () gsk_container_node_get_child GskRenderNode * gsk_container_node_get_child (GskRenderNode *node, guint idx); Gets one of the children of container . Parameters node a container GskRenderNode idx the position of the child to get Returns the idx 'th child of container gsk_transform_node_new () gsk_transform_node_new GskRenderNode * gsk_transform_node_new (GskRenderNode *child, GskTransform *transform); Creates a GskRenderNode that will transform the given child with the given transform . Parameters child The node to transform transform The transform to apply. [transfer none] Returns A new GskRenderNode gsk_transform_node_get_child () gsk_transform_node_get_child GskRenderNode * gsk_transform_node_get_child (GskRenderNode *node); Gets the child node that is getting transformed by the given node . Parameters node a transform GskRenderNode Returns The child that is getting transformed. [transfer none] gsk_transform_node_get_transform () gsk_transform_node_get_transform GskTransform * gsk_transform_node_get_transform (GskRenderNode *node); gsk_opacity_node_new () gsk_opacity_node_new GskRenderNode * gsk_opacity_node_new (GskRenderNode *child, float opacity); Creates a GskRenderNode that will drawn the child with reduced opacity . Parameters child The node to draw opacity The opacity to apply Returns A new GskRenderNode gsk_opacity_node_get_child () gsk_opacity_node_get_child GskRenderNode * gsk_opacity_node_get_child (GskRenderNode *node); Gets the child node that is getting opacityed by the given node . Parameters node an opacity GskRenderNode Returns The child that is getting opacityed. [transfer none] gsk_opacity_node_get_opacity () gsk_opacity_node_get_opacity float gsk_opacity_node_get_opacity (GskRenderNode *node); gsk_color_matrix_node_new () gsk_color_matrix_node_new GskRenderNode * gsk_color_matrix_node_new (GskRenderNode *child, const graphene_matrix_t *color_matrix, const graphene_vec4_t *color_offset); Creates a GskRenderNode that will drawn the child with reduced color_matrix . In particular, the node will transform the operation pixel = color_matrix * pixel + color_offset for every pixel. Parameters child The node to draw color_matrix The matrix to apply color_offset Values to add to the color Returns A new GskRenderNode gsk_color_matrix_node_get_child () gsk_color_matrix_node_get_child GskRenderNode * gsk_color_matrix_node_get_child (GskRenderNode *node); Gets the child node that is getting its colors modified by the given node . Parameters node a color matrix GskRenderNode Returns The child that is getting its colors modified. [transfer none] gsk_color_matrix_node_peek_color_matrix () gsk_color_matrix_node_peek_color_matrix const graphene_matrix_t * gsk_color_matrix_node_peek_color_matrix (GskRenderNode *node); gsk_color_matrix_node_peek_color_offset () gsk_color_matrix_node_peek_color_offset const graphene_vec4_t * gsk_color_matrix_node_peek_color_offset (GskRenderNode *node); gsk_repeat_node_new () gsk_repeat_node_new GskRenderNode * gsk_repeat_node_new (const graphene_rect_t *bounds, GskRenderNode *child, const graphene_rect_t *child_bounds); Creates a GskRenderNode that will repeat the drawing of child across the given bounds . Parameters bounds The bounds of the area to be painted child The child to repeat child_bounds The area of the child to repeat or NULL to use the child's bounds. [allow-none] Returns A new GskRenderNode gsk_repeat_node_get_child () gsk_repeat_node_get_child GskRenderNode * gsk_repeat_node_get_child (GskRenderNode *node); gsk_repeat_node_peek_child_bounds () gsk_repeat_node_peek_child_bounds const graphene_rect_t * gsk_repeat_node_peek_child_bounds (GskRenderNode *node); gsk_clip_node_new () gsk_clip_node_new GskRenderNode * gsk_clip_node_new (GskRenderNode *child, const graphene_rect_t *clip); Creates a GskRenderNode that will clip the child to the area given by clip . Parameters child The node to draw clip The clip to apply Returns A new GskRenderNode gsk_clip_node_get_child () gsk_clip_node_get_child GskRenderNode * gsk_clip_node_get_child (GskRenderNode *node); Gets the child node that is getting clipped by the given node . Parameters node a clip GskRenderNode Returns The child that is getting clipped. [transfer none] gsk_clip_node_peek_clip () gsk_clip_node_peek_clip const graphene_rect_t * gsk_clip_node_peek_clip (GskRenderNode *node); gsk_rounded_clip_node_new () gsk_rounded_clip_node_new GskRenderNode * gsk_rounded_clip_node_new (GskRenderNode *child, const GskRoundedRect *clip); Creates a GskRenderNode that will clip the child to the area given by clip . Parameters child The node to draw clip The clip to apply Returns A new GskRenderNode gsk_rounded_clip_node_get_child () gsk_rounded_clip_node_get_child GskRenderNode * gsk_rounded_clip_node_get_child (GskRenderNode *node); Gets the child node that is getting clipped by the given node . Parameters node a clip GskRenderNode Returns The child that is getting clipped. [transfer none] gsk_rounded_clip_node_peek_clip () gsk_rounded_clip_node_peek_clip const GskRoundedRect * gsk_rounded_clip_node_peek_clip (GskRenderNode *node); gsk_shadow_node_new () gsk_shadow_node_new GskRenderNode * gsk_shadow_node_new (GskRenderNode *child, const GskShadow *shadows, gsize n_shadows); Creates a GskRenderNode that will draw a child with the given shadows below it. Parameters child The node to draw shadows The shadows to apply. [array length=n_shadows] n_shadows number of entries in the shadows array Returns A new GskRenderNode gsk_shadow_node_peek_shadow () gsk_shadow_node_peek_shadow const GskShadow * gsk_shadow_node_peek_shadow (GskRenderNode *node, gsize i); gsk_shadow_node_get_n_shadows () gsk_shadow_node_get_n_shadows gsize gsk_shadow_node_get_n_shadows (GskRenderNode *node); gsk_shadow_node_get_child () gsk_shadow_node_get_child GskRenderNode * gsk_shadow_node_get_child (GskRenderNode *node); gsk_blend_node_new () gsk_blend_node_new GskRenderNode * gsk_blend_node_new (GskRenderNode *bottom, GskRenderNode *top, GskBlendMode blend_mode); Creates a GskRenderNode that will use blend_mode to blend the top node onto the bottom node. Parameters bottom The bottom node to be drawn top The node to be blended onto the bottom node blend_mode The blend mode to use Returns A new GskRenderNode gsk_blend_node_get_bottom_child () gsk_blend_node_get_bottom_child GskRenderNode * gsk_blend_node_get_bottom_child (GskRenderNode *node); gsk_blend_node_get_top_child () gsk_blend_node_get_top_child GskRenderNode * gsk_blend_node_get_top_child (GskRenderNode *node); gsk_blend_node_get_blend_mode () gsk_blend_node_get_blend_mode GskBlendMode gsk_blend_node_get_blend_mode (GskRenderNode *node); gsk_cross_fade_node_new () gsk_cross_fade_node_new GskRenderNode * gsk_cross_fade_node_new (GskRenderNode *start, GskRenderNode *end, float progress); Creates a GskRenderNode that will do a cross-fade between start and end . Parameters start The start node to be drawn end The node to be cross_fadeed onto the start node progress How far the fade has progressed from start to end. The value will be clamped to the range [0 ... 1] Returns A new GskRenderNode gsk_cross_fade_node_get_start_child () gsk_cross_fade_node_get_start_child GskRenderNode * gsk_cross_fade_node_get_start_child (GskRenderNode *node); gsk_cross_fade_node_get_end_child () gsk_cross_fade_node_get_end_child GskRenderNode * gsk_cross_fade_node_get_end_child (GskRenderNode *node); gsk_cross_fade_node_get_progress () gsk_cross_fade_node_get_progress float gsk_cross_fade_node_get_progress (GskRenderNode *node); gsk_text_node_new () gsk_text_node_new GskRenderNode * gsk_text_node_new (PangoFont *font, PangoGlyphString *glyphs, const GdkRGBA *color, const graphene_point_t *offset); Creates a render node that renders the given glyphs, Note that color may not be used if the font contains color glyphs. Parameters font the PangoFont containing the glyphs glyphs the PangoGlyphString to render color the foreground color to render with offset offset of the baseline Returns a new text node, or NULL. [nullable] gsk_text_node_peek_font () gsk_text_node_peek_font PangoFont * gsk_text_node_peek_font (GskRenderNode *node); Returns the font used by the text node. Parameters node The GskRenderNode Returns The used PangoFont. [transfer none] gsk_text_node_peek_glyphs () gsk_text_node_peek_glyphs const PangoGlyphInfo * gsk_text_node_peek_glyphs (GskRenderNode *node); gsk_text_node_peek_color () gsk_text_node_peek_color const GdkRGBA * gsk_text_node_peek_color (GskRenderNode *node); gsk_text_node_get_num_glyphs () gsk_text_node_get_num_glyphs guint gsk_text_node_get_num_glyphs (GskRenderNode *node); gsk_text_node_get_offset () gsk_text_node_get_offset const graphene_point_t * gsk_text_node_get_offset (GskRenderNode *node); gsk_blur_node_new () gsk_blur_node_new GskRenderNode * gsk_blur_node_new (GskRenderNode *child, float radius); Creates a render node that blurs the child. Parameters child the child node to blur radius the blur radius gsk_blur_node_get_child () gsk_blur_node_get_child GskRenderNode * gsk_blur_node_get_child (GskRenderNode *node); gsk_blur_node_get_radius () gsk_blur_node_get_radius float gsk_blur_node_get_radius (GskRenderNode *node); gsk_debug_node_new () gsk_debug_node_new GskRenderNode * gsk_debug_node_new (GskRenderNode *child, char *message); Creates a GskRenderNode that will add debug information about the given child . Adding this node has no visual effect. Parameters child The child to add debug info for message The debug message. [transfer full] Returns A new GskRenderNode gsk_debug_node_get_child () gsk_debug_node_get_child GskRenderNode * gsk_debug_node_get_child (GskRenderNode *node); Gets the child node that is getting debug by the given node . Parameters node a debug GskRenderNode Returns The child that is getting debug. [transfer none] gsk_debug_node_get_message () gsk_debug_node_get_message const char * gsk_debug_node_get_message (GskRenderNode *node); Gets the debug message that was set on this node Parameters node a debug GskRenderNode Returns The debug message. [transfer none] docs/reference/gsk/xml/GskRoundedRect.xml0000664000175000017500000007046713635542601020610 0ustar mclasenmclasen ]> GskRoundedRect 3 GSK4 Library GskRoundedRect A rounded rectangle Functions #defineGSK_ROUNDED_RECT_INIT() GskRoundedRect * gsk_rounded_rect_init () GskRoundedRect * gsk_rounded_rect_init_copy () GskRoundedRect * gsk_rounded_rect_init_from_rect () GskRoundedRect * gsk_rounded_rect_normalize () GskRoundedRect * gsk_rounded_rect_offset () GskRoundedRect * gsk_rounded_rect_shrink () gboolean gsk_rounded_rect_is_rectilinear () gboolean gsk_rounded_rect_contains_point () gboolean gsk_rounded_rect_contains_rect () gboolean gsk_rounded_rect_intersects_rect () Types and Values enumGskCorner structGskRoundedRect Description GskRoundedRect defines a rectangle with rounded corners, as is commonly used in drawing. Operations on a GskRoundedRect will normalize the rectangle, to ensure that the bounds are normalized and that the corner sizes don't exceed the size of the rectangle. The algorithm used for normalizing corner sizes is described in the CSS specification. Functions GSK_ROUNDED_RECT_INIT() GSK_ROUNDED_RECT_INIT #define GSK_ROUNDED_RECT_INIT(_x,_y,_w,_h) Initializes a GskRoundedRect when declaring it. All corner sizes will be initialized to 0. Parameters _x the X coordinate of the origin _y the Y coordinate of the origin _w the width _h the height gsk_rounded_rect_init () gsk_rounded_rect_init GskRoundedRect * gsk_rounded_rect_init (GskRoundedRect *self, const graphene_rect_t *bounds, const graphene_size_t *top_left, const graphene_size_t *top_right, const graphene_size_t *bottom_right, const graphene_size_t *bottom_left); Initializes the given GskRoundedRect with the given values. This function will implicitly normalize the GskRoundedRect before returning. Parameters self The GskRoundedRect to initialize bounds a graphene_rect_t describing the bounds top_left the rounding radius of the top left corner top_right the rounding radius of the top right corner bottom_right the rounding radius of the bottom right corner bottom_left the rounding radius of the bottom left corner Returns the initialized rectangle. [transfer none] gsk_rounded_rect_init_copy () gsk_rounded_rect_init_copy GskRoundedRect * gsk_rounded_rect_init_copy (GskRoundedRect *self, const GskRoundedRect *src); Initializes self using the given src rectangle. This function will not normalize the GskRoundedRect, so make sure the source is normalized. Parameters self a GskRoundedRect src a GskRoundedRect Returns the initialized rectangle. [transfer none] gsk_rounded_rect_init_from_rect () gsk_rounded_rect_init_from_rect GskRoundedRect * gsk_rounded_rect_init_from_rect (GskRoundedRect *self, const graphene_rect_t *bounds, float radius); Initializes self to the given bounds and sets the radius of all four corners to radius . Parameters self a GskRoundedRect bounds a graphene_rect_t radius the border radius Returns the initialized rectangle. [transfer none] gsk_rounded_rect_normalize () gsk_rounded_rect_normalize GskRoundedRect * gsk_rounded_rect_normalize (GskRoundedRect *self); Normalizes the passed rectangle. this function will ensure that the bounds of the rectanlge are normalized and ensure that the corner values are positive and the corners do not overlap. Parameters self a GskRoundedRect Returns the normalized rectangle. [transfer none] gsk_rounded_rect_offset () gsk_rounded_rect_offset GskRoundedRect * gsk_rounded_rect_offset (GskRoundedRect *self, float dx, float dy); Offsets the bound's origin by dx and dy . The size and corners of the rectangle are unchanged. Parameters self a GskRoundedRect dx the horizontal offset dy the vertical offset Returns the offset rectangle. [transfer none] gsk_rounded_rect_shrink () gsk_rounded_rect_shrink GskRoundedRect * gsk_rounded_rect_shrink (GskRoundedRect *self, float top, float right, float bottom, float left); Shrinks (or grows) the given rectangle by moving the 4 sides according to the offsets given. The corner radii will be changed in a way that tries to keep the center of the corner circle intact. This emulates CSS behavior. This function also works for growing rectangles if you pass negative values for the top , right , bottom or left . Parameters self The GskRoundedRect to shrink or grow top How far to move the top side downwards right How far to move the right side to the left bottom How far to move the bottom side upwards left How far to move the left side to the right Returns the resized GskRoundedRect. [transfer none] gsk_rounded_rect_is_rectilinear () gsk_rounded_rect_is_rectilinear gboolean gsk_rounded_rect_is_rectilinear (const GskRoundedRect *self); Checks if all corners of self are right angles and the rectangle covers all of its bounds. This information can be used to decide if gsk_clip_node_new() or gsk_rounded_clip_node_new() should be called. Parameters self the GskRoundedRect to check Returns TRUE if the rectangle is rectilinear gsk_rounded_rect_contains_point () gsk_rounded_rect_contains_point gboolean gsk_rounded_rect_contains_point (const GskRoundedRect *self, const graphene_point_t *point); Checks if the given point is inside the rounded rectangle. This function returns FALSE if the point is in the rounded corner areas. Parameters self a GskRoundedRect point the point to check Returns TRUE if the point is inside the rounded rectangle gsk_rounded_rect_contains_rect () gsk_rounded_rect_contains_rect gboolean gsk_rounded_rect_contains_rect (const GskRoundedRect *self, const graphene_rect_t *rect); Checks if the given rect is contained inside the rounded rectangle. This function returns FALSE if rect extends into one of the rounded corner areas. Parameters self a GskRoundedRect rect the rectangle to check Returns TRUE if the rect is fully contained inside the rounded rectangle gsk_rounded_rect_intersects_rect () gsk_rounded_rect_intersects_rect gboolean gsk_rounded_rect_intersects_rect (const GskRoundedRect *self, const graphene_rect_t *rect); Checks if part of the given rect is contained inside the rounded rectangle. This function returns FALSE if rect only extends into one of the rounded corner areas but not into the rounded rectangle itself. Parameters self a GskRoundedRect rect the rectangle to check Returns TRUE if the rect intersects with the rounded rectangle docs/reference/gsk/xml/GskTransform.xml0000664000175000017500000015472213635542601020342 0ustar mclasenmclasen ]> GskTransform 3 GSK4 Library GskTransform A description for transform operations Functions GskTransform * gsk_transform_ref () void gsk_transform_unref () GskTransformCategory gsk_transform_get_category () void gsk_transform_print () char * gsk_transform_to_string () gboolean gsk_transform_parse () void gsk_transform_to_matrix () void gsk_transform_to_2d () void gsk_transform_to_affine () void gsk_transform_to_translate () GskTransform * gsk_transform_transform () GskTransform * gsk_transform_invert () GskTransform * gsk_transform_matrix () GskTransform * gsk_transform_matrix_with_category () GskTransform * gsk_transform_translate () GskTransform * gsk_transform_translate_3d () GskTransform * gsk_transform_rotate () GskTransform * gsk_transform_rotate_3d () GskTransform * gsk_transform_scale () GskTransform * gsk_transform_scale_3d () GskTransform * gsk_transform_perspective () gboolean gsk_transform_equal () void gsk_transform_transform_bounds () void gsk_transform_transform_point () Types and Values GskTransform enumGskTransformCategory Description GskTransform is an object to describe transform matrices. Unlike graphene_matrix_t, GskTransform retains the steps in how a transform was constructed, and allows inspecting them. It is modeled after the way CSS describes transforms. GskTransform objects are immutable and cannot be changed after creation. This means code can safely expose them as properties of objects without having to worry about others changing them. Functions gsk_transform_ref () gsk_transform_ref GskTransform * gsk_transform_ref (GskTransform *self); Acquires a reference on the given GskTransform. Parameters self a GskTransform. [allow-none] Returns the GskTransform with an additional reference. [transfer none] gsk_transform_unref () gsk_transform_unref void gsk_transform_unref (GskTransform *self); Releases a reference on the given GskTransform. If the reference was the last, the resources associated to the self are freed. Parameters self a GskTransform. [allow-none] gsk_transform_get_category () gsk_transform_get_category GskTransformCategory gsk_transform_get_category (GskTransform *self); Returns the category this transform belongs to. Parameters self A GskTransform. [allow-none] Returns The category of the transform gsk_transform_print () gsk_transform_print void gsk_transform_print (GskTransform *self, GString *string); Converts self into a human-readable string representation suitable for printing that can later be parsed with gsk_transform_parse(). Parameters self a GskTransform. [allow-none] string The string to print into gsk_transform_to_string () gsk_transform_to_string char * gsk_transform_to_string (GskTransform *self); Converts a matrix into a string that is suitable for printing and can later be parsed with gsk_transform_parse(). This is a wrapper around gsk_transform_print(), see that function for details. Parameters self a GskTransform. [allow-none] Returns A new string for self gsk_transform_parse () gsk_transform_parse gboolean gsk_transform_parse (const char *string, GskTransform **out_transform); Parses the given string into a transform and puts it in out_transform . Strings printed via gsk_transform_to_string() can be read in again successfully using this function. If string does not describe a valid transform, FALSE is returned and NULL is put in out_transform . Parameters string the string to parse out_transform The location to put the transform in. [out] Returns TRUE if string described a valid transform. gsk_transform_to_matrix () gsk_transform_to_matrix void gsk_transform_to_matrix (GskTransform *self, graphene_matrix_t *out_matrix); Computes the actual value of self and stores it in out_matrix . The previous value of out_matrix will be ignored. Parameters self a GskTransform. [allow-none] out_matrix The matrix to set. [out caller-allocates] gsk_transform_to_2d () gsk_transform_to_2d void gsk_transform_to_2d (GskTransform *self, float *out_xx, float *out_yx, float *out_xy, float *out_yy, float *out_dx, float *out_dy); Converts a GskTransform to a 2D transformation matrix. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D to check. The returned values have the following layout: This function can be used to convert between a GskTransform and a matrix type from other 2D drawing libraries, in particular Cairo. Parameters self a 2D GskTransform out_xx return location for the xx member. [out] out_yx return location for the yx member. [out] out_xy return location for the xy member. [out] out_yy return location for the yy member. [out] out_dx return location for the x0 member. [out] out_dy return location for the y0 member. [out] gsk_transform_to_affine () gsk_transform_to_affine void gsk_transform_to_affine (GskTransform *self, float *out_scale_x, float *out_scale_y, float *out_dx, float *out_dy); Converts a GskTransform to 2D affine transformation factors. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D_AFFINE to check. Parameters self a GskTransform out_scale_x return location for the scale factor in the x direction. [out] out_scale_y return location for the scale factor in the y direction. [out] out_dx return location for the translation in the x direction. [out] out_dy return location for the translation in the y direction. [out] gsk_transform_to_translate () gsk_transform_to_translate void gsk_transform_to_translate (GskTransform *self, float *out_dx, float *out_dy); Converts a GskTransform to a translation operation. self must be a 2D transformation. If you are not sure, use gsk_transform_get_category() >= GSK_TRANSFORM_CATEGORY_2D_TRANSLATE to check. Parameters self a GskTransform out_dx return location for the translation in the x direction. [out] out_dy return location for the translation in the y direction. [out] gsk_transform_transform () gsk_transform_transform GskTransform * gsk_transform_transform (GskTransform *next, GskTransform *other); Applies all the operations from other to next . Parameters next Transform to apply other to. [allow-none][transfer full] other Transform to apply. [allow-none] Returns The new matrix gsk_transform_invert () gsk_transform_invert GskTransform * gsk_transform_invert (GskTransform *self); Inverts the given transform. If self is not invertible, NULL is returned. Note that inverting NULL also returns NULL, which is the correct inverse of NULL. If you need to differentiate between those cases, you should check self is not NULL before calling this function. Parameters self Transform to invert. [allow-none][transfer full] Returns The inverted transform or NULL if the transform cannot be inverted. gsk_transform_matrix () gsk_transform_matrix GskTransform * gsk_transform_matrix (GskTransform *next, const graphene_matrix_t *matrix); Multiplies next with the given matrix . Parameters next the next transform. [allow-none][transfer full] matrix the matrix to multiply next with Returns The new matrix gsk_transform_matrix_with_category () gsk_transform_matrix_with_category GskTransform * gsk_transform_matrix_with_category (GskTransform *next, const graphene_matrix_t *matrix, GskTransformCategory category); gsk_transform_translate () gsk_transform_translate GskTransform * gsk_transform_translate (GskTransform *next, const graphene_point_t *point); Translates next in 2dimensional space by point . Parameters next the next transform. [allow-none][transfer full] point the point to translate the matrix by Returns The new matrix gsk_transform_translate_3d () gsk_transform_translate_3d GskTransform * gsk_transform_translate_3d (GskTransform *next, const graphene_point3d_t *point); Translates next by point . Parameters next the next transform. [allow-none][transfer full] point the point to translate the matrix by Returns The new matrix gsk_transform_rotate () gsk_transform_rotate GskTransform * gsk_transform_rotate (GskTransform *next, float angle); Rotates next angle degrees in 2D - or in 3Dspeak, around the z axis. Parameters next the next transform. [allow-none][transfer full] angle the rotation angle, in degrees (clockwise) Returns The new matrix gsk_transform_rotate_3d () gsk_transform_rotate_3d GskTransform * gsk_transform_rotate_3d (GskTransform *next, float angle, const graphene_vec3_t *axis); Rotates next angle degrees around axis . For a rotation in 2D space, use gsk_transform_rotate(). Parameters next the next transform. [allow-none][transfer full] angle the rotation angle, in degrees (clockwise) axis The rotation axis Returns The new matrix gsk_transform_scale () gsk_transform_scale GskTransform * gsk_transform_scale (GskTransform *next, float factor_x, float factor_y); Scales next in 2-dimensional space by the given factors. Use gsk_transform_scale_3d() to scale in all 3 dimensions. Parameters next the next transform. [allow-none][transfer full] factor_x scaling factor on the X axis factor_y scaling factor on the Y axis Returns The new matrix gsk_transform_scale_3d () gsk_transform_scale_3d GskTransform * gsk_transform_scale_3d (GskTransform *next, float factor_x, float factor_y, float factor_z); Scales next by the given factors. Parameters next the next transform. [allow-none][transfer full] factor_x scaling factor on the X axis factor_y scaling factor on the Y axis factor_z scaling factor on the Z axis Returns The new matrix gsk_transform_perspective () gsk_transform_perspective GskTransform * gsk_transform_perspective (GskTransform *next, float depth); Applies a perspective projection transform. This transform scales points in X and Y based on their Z value, scaling points with positive Z values away from the origin, and those with negative Z values towards the origin. Points on the z=0 plane are unchanged. Parameters next the next transform. [allow-none][transfer full] depth distance of the z=0 plane. Lower values give a more flattened pyramid and therefore a more pronounced perspective effect. Returns The new matrix gsk_transform_equal () gsk_transform_equal gboolean gsk_transform_equal (GskTransform *first, GskTransform *second); Checks two matrices for equality. Note that matrices need to be literally identical in their operations, it is not enough that they return the same result in gsk_transform_to_matrix(). Parameters first the first matrix second the second matrix Returns TRUE if the two matrices can be proven to be equal gsk_transform_transform_bounds () gsk_transform_transform_bounds void gsk_transform_transform_bounds (GskTransform *self, const graphene_rect_t *rect, graphene_rect_t *out_rect); Transforms a graphene_rect_t using the given transform self . The result is the bounding box containing the coplanar quad. Parameters self a GskTransform rect a graphene_rect_t out_rect return location for the bounds of the transformed rectangle. [out caller-allocates] gsk_transform_transform_point () gsk_transform_transform_point void gsk_transform_transform_point (GskTransform *self, const graphene_point_t *point, graphene_point_t *out_point); Transforms a graphene_point_t using the given transform self . Parameters self a GskTransform point a graphene_point_t out_point return location for the transformed point. [out caller-allocates] docs/reference/gsk/xml/gsk4-doc.top0000664000175000017500000000000013635542601017312 0ustar mclasenmclasendocs/reference/gsk/xml/gsk4-doc.bottom0000664000175000017500000000027213635542601020027 0ustar mclasenmclasen docs/reference/gsk/xml/tree_index.sgml0000664000175000017500000000114013635542601020173 0ustar mclasenmclasen ]> GObject ╰── GskRenderer GBoxed ╰── GskRenderNode docs/reference/gsk/xml/object_index.sgml0000664000175000017500000000133513635542601020510 0ustar mclasenmclasen ]> GBoxed GObject GskRenderNode GskRenderer docs/reference/gsk/xml/api-index-full.xml0000664000175000017500000010041513635542601020526 0ustar mclasenmclasen ]> B GskBlendMode, enum in GskRenderNode gsk_blend_node_get_blend_mode, function in GskRenderNode gsk_blend_node_get_bottom_child, function in GskRenderNode gsk_blend_node_get_top_child, function in GskRenderNode gsk_blend_node_new, function in GskRenderNode gsk_blur_node_get_child, function in GskRenderNode gsk_blur_node_get_radius, function in GskRenderNode gsk_blur_node_new, function in GskRenderNode gsk_border_node_new, function in GskRenderNode gsk_border_node_peek_colors, function in GskRenderNode gsk_border_node_peek_outline, function in GskRenderNode gsk_border_node_peek_widths, function in GskRenderNode gsk_broadway_renderer_new, function in GskRenderer C gsk_cairo_node_get_draw_context, function in GskRenderNode gsk_cairo_node_new, function in GskRenderNode gsk_cairo_node_peek_surface, function in GskRenderNode gsk_cairo_renderer_new, function in GskRenderer gsk_clip_node_get_child, function in GskRenderNode gsk_clip_node_new, function in GskRenderNode gsk_clip_node_peek_clip, function in GskRenderNode gsk_color_matrix_node_get_child, function in GskRenderNode gsk_color_matrix_node_new, function in GskRenderNode gsk_color_matrix_node_peek_color_matrix, function in GskRenderNode gsk_color_matrix_node_peek_color_offset, function in GskRenderNode gsk_color_node_new, function in GskRenderNode gsk_color_node_peek_color, function in GskRenderNode gsk_container_node_get_child, function in GskRenderNode gsk_container_node_get_n_children, function in GskRenderNode gsk_container_node_new, function in GskRenderNode GskCorner, enum in GskRoundedRect gsk_cross_fade_node_get_end_child, function in GskRenderNode gsk_cross_fade_node_get_progress, function in GskRenderNode gsk_cross_fade_node_get_start_child, function in GskRenderNode gsk_cross_fade_node_new, function in GskRenderNode D gsk_debug_node_get_child, function in GskRenderNode gsk_debug_node_get_message, function in GskRenderNode gsk_debug_node_new, function in GskRenderNode G gsk_gl_renderer_new, function in GskRenderer I gsk_inset_shadow_node_get_blur_radius, function in GskRenderNode gsk_inset_shadow_node_get_dx, function in GskRenderNode gsk_inset_shadow_node_get_dy, function in GskRenderNode gsk_inset_shadow_node_get_spread, function in GskRenderNode gsk_inset_shadow_node_new, function in GskRenderNode gsk_inset_shadow_node_peek_color, function in GskRenderNode gsk_inset_shadow_node_peek_outline, function in GskRenderNode L gsk_linear_gradient_node_get_n_color_stops, function in GskRenderNode gsk_linear_gradient_node_new, function in GskRenderNode gsk_linear_gradient_node_peek_color_stops, function in GskRenderNode gsk_linear_gradient_node_peek_end, function in GskRenderNode gsk_linear_gradient_node_peek_start, function in GskRenderNode O gsk_opacity_node_get_child, function in GskRenderNode gsk_opacity_node_get_opacity, function in GskRenderNode gsk_opacity_node_new, function in GskRenderNode gsk_outset_shadow_node_get_blur_radius, function in GskRenderNode gsk_outset_shadow_node_get_dx, function in GskRenderNode gsk_outset_shadow_node_get_dy, function in GskRenderNode gsk_outset_shadow_node_get_spread, function in GskRenderNode gsk_outset_shadow_node_new, function in GskRenderNode gsk_outset_shadow_node_peek_color, function in GskRenderNode gsk_outset_shadow_node_peek_outline, function in GskRenderNode P GskParseErrorFunc, user_function in GskRenderNode R GskRenderer:realized, object property in GskRenderer GskRenderer:surface, object property in GskRenderer gsk_renderer_get_surface, function in GskRenderer gsk_renderer_is_realized, function in GskRenderer gsk_renderer_new_for_surface, function in GskRenderer gsk_renderer_realize, function in GskRenderer gsk_renderer_render, function in GskRenderer gsk_renderer_render_texture, function in GskRenderer gsk_renderer_unrealize, function in GskRenderer GskRenderNodeType, enum in GskRenderNode gsk_render_node_deserialize, function in GskRenderNode gsk_render_node_draw, function in GskRenderNode gsk_render_node_get_bounds, function in GskRenderNode gsk_render_node_get_node_type, function in GskRenderNode gsk_render_node_ref, function in GskRenderNode gsk_render_node_serialize, function in GskRenderNode gsk_render_node_unref, function in GskRenderNode gsk_render_node_write_to_file, function in GskRenderNode gsk_repeating_linear_gradient_node_new, function in GskRenderNode gsk_repeat_node_get_child, function in GskRenderNode gsk_repeat_node_new, function in GskRenderNode gsk_repeat_node_peek_child_bounds, function in GskRenderNode GskRoundedRect, struct in GskRoundedRect gsk_rounded_clip_node_get_child, function in GskRenderNode gsk_rounded_clip_node_new, function in GskRenderNode gsk_rounded_clip_node_peek_clip, function in GskRenderNode gsk_rounded_rect_contains_point, function in GskRoundedRect gsk_rounded_rect_contains_rect, function in GskRoundedRect GSK_ROUNDED_RECT_INIT, macro in GskRoundedRect gsk_rounded_rect_init, function in GskRoundedRect gsk_rounded_rect_init_copy, function in GskRoundedRect gsk_rounded_rect_init_from_rect, function in GskRoundedRect gsk_rounded_rect_intersects_rect, function in GskRoundedRect gsk_rounded_rect_is_rectilinear, function in GskRoundedRect gsk_rounded_rect_normalize, function in GskRoundedRect gsk_rounded_rect_offset, function in GskRoundedRect gsk_rounded_rect_shrink, function in GskRoundedRect S GskScalingFilter, enum in GskRenderNode GskSerializationError, enum in GskRenderNode GskShadow, struct in GskRenderNode gsk_shadow_node_get_child, function in GskRenderNode gsk_shadow_node_get_n_shadows, function in GskRenderNode gsk_shadow_node_new, function in GskRenderNode gsk_shadow_node_peek_shadow, function in GskRenderNode T gsk_texture_node_get_texture, function in GskRenderNode gsk_texture_node_new, function in GskRenderNode gsk_text_node_get_num_glyphs, function in GskRenderNode gsk_text_node_get_offset, function in GskRenderNode gsk_text_node_new, function in GskRenderNode gsk_text_node_peek_color, function in GskRenderNode gsk_text_node_peek_font, function in GskRenderNode gsk_text_node_peek_glyphs, function in GskRenderNode GskTransform, struct in GskTransform GskTransformCategory, enum in GskTransform gsk_transform_equal, function in GskTransform gsk_transform_get_category, function in GskTransform gsk_transform_invert, function in GskTransform gsk_transform_matrix, function in GskTransform gsk_transform_matrix_with_category, function in GskTransform gsk_transform_node_get_child, function in GskRenderNode gsk_transform_node_get_transform, function in GskRenderNode gsk_transform_node_new, function in GskRenderNode gsk_transform_parse, function in GskTransform gsk_transform_perspective, function in GskTransform gsk_transform_print, function in GskTransform gsk_transform_ref, function in GskTransform gsk_transform_rotate, function in GskTransform gsk_transform_rotate_3d, function in GskTransform gsk_transform_scale, function in GskTransform gsk_transform_scale_3d, function in GskTransform gsk_transform_to_2d, function in GskTransform gsk_transform_to_affine, function in GskTransform gsk_transform_to_matrix, function in GskTransform gsk_transform_to_string, function in GskTransform gsk_transform_to_translate, function in GskTransform gsk_transform_transform, function in GskTransform gsk_transform_transform_bounds, function in GskTransform gsk_transform_transform_point, function in GskTransform gsk_transform_translate, function in GskTransform gsk_transform_translate_3d, function in GskTransform gsk_transform_unref, function in GskTransform V gsk_vulkan_renderer_new, function in GskRenderer docs/reference/gsk/xml/api-index-deprecated.xml0000664000175000017500000000052613635542601021666 0ustar mclasenmclasen ]> docs/reference/gsk/xml/annotation-glossary.xml0000664000175000017500000000522013635542601021721 0ustar mclasenmclasen ]> Annotation Glossary A allow-none NULL is OK, both for passing and for returning. array Parameter points to an array of items. C closure This parameter is a 'user_data', for callbacks; many bindings can pass NULL here. N nullable NULL may be passed as the value in, out, in-out; or as a return value. O out Parameter for returning results. Default is transfer full. out caller-allocates Out parameter, where caller must allocate storage. S scope call The callback is valid only during the call to the method. T transfer full Free data after the code is done. transfer none Don't free data after the code is done. docs/reference/gsk/gsk4-undocumented.txt0000664000175000017500000000427513635542601020476 0ustar mclasenmclasen69% symbol docs coverage. 106 symbols documented. 46 symbols incomplete. 47 not documented. GskShadow () gsk_blend_node_get_blend_mode () gsk_blend_node_get_bottom_child () gsk_blend_node_get_top_child () gsk_blur_node_get_child () gsk_blur_node_get_radius () gsk_border_node_peek_colors () gsk_border_node_peek_outline () gsk_border_node_peek_widths () gsk_cairo_node_peek_surface () gsk_clip_node_peek_clip () gsk_color_matrix_node_peek_color_matrix () gsk_color_matrix_node_peek_color_offset () gsk_color_node_peek_color () gsk_cross_fade_node_get_end_child () gsk_cross_fade_node_get_progress () gsk_cross_fade_node_get_start_child () gsk_inset_shadow_node_get_blur_radius () gsk_inset_shadow_node_get_dx () gsk_inset_shadow_node_get_dy () gsk_inset_shadow_node_get_spread () gsk_inset_shadow_node_peek_color () gsk_inset_shadow_node_peek_outline () gsk_linear_gradient_node_get_n_color_stops () gsk_linear_gradient_node_peek_color_stops () gsk_linear_gradient_node_peek_end () gsk_linear_gradient_node_peek_start () gsk_opacity_node_get_opacity () gsk_outset_shadow_node_get_blur_radius () gsk_outset_shadow_node_get_dx () gsk_outset_shadow_node_get_dy () gsk_outset_shadow_node_get_spread () gsk_outset_shadow_node_peek_color () gsk_outset_shadow_node_peek_outline () gsk_repeat_node_get_child () gsk_repeat_node_peek_child_bounds () gsk_rounded_clip_node_peek_clip () gsk_shadow_node_get_child () gsk_shadow_node_get_n_shadows () gsk_shadow_node_peek_shadow () gsk_text_node_get_num_glyphs () gsk_text_node_get_offset () gsk_text_node_peek_color () gsk_text_node_peek_glyphs () gsk_texture_node_get_texture gsk_transform_matrix_with_category () gsk_transform_node_get_transform () docs/reference/gsk/gsk4-undeclared.txt0000664000175000017500000000000013635542601020070 0ustar mclasenmclasendocs/reference/gsk/gsk4-unused.txt0000664000175000017500000001144013635542601017277 0ustar mclasenmclasenCacheKeyData GL_N_PROGRAMS GL_N_VERTICES GSK_BROADWAY_RENDERER GSK_BROADWAY_RENDERER_CLASS GSK_BROADWAY_RENDERER_GET_CLASS GSK_CAIRO_RENDERER GSK_CAIRO_RENDERER_CLASS GSK_CAIRO_RENDERER_GET_CLASS GSK_GL_RENDERER GSK_GL_RENDERER_CLASS GSK_GL_RENDERER_GET_CLASS GSK_IS_BROADWAY_RENDERER GSK_IS_BROADWAY_RENDERER_CLASS GSK_IS_CAIRO_RENDERER GSK_IS_CAIRO_RENDERER_CLASS GSK_IS_GL_RENDERER GSK_IS_GL_RENDERER_CLASS GSK_IS_VULKAN_RENDERER GSK_IS_VULKAN_RENDERER_CLASS GSK_TYPE_BROADWAY_RENDERER GSK_TYPE_CAIRO_RENDERER GSK_TYPE_CORNER GSK_TYPE_GL_RENDERER GSK_TYPE_RENDER_NODE_TYPE GSK_TYPE_TRANSFORM_CATEGORY GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE GSK_TYPE_VULKAN_BLUR_PIPELINE GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE GSK_TYPE_VULKAN_GLYPH_CACHE GSK_TYPE_VULKAN_RENDERER GSK_TYPE_VULKAN_TEXTURE_PIPELINE GSK_TYPE_VULKAN_TEXT_PIPELINE GSK_VULKAN_RENDERER GSK_VULKAN_RENDERER_CLASS GSK_VULKAN_RENDERER_GET_CLASS GlyphCacheKey GskBroadwayRenderer GskBroadwayRendererClass GskCairoRenderer GskCairoRendererClass GskColorStop GskDeleteFunc GskDiffResult GskDiffSettings GskGLCachedGlyph GskGLRenderer GskGLRendererClass GskGLRendererPrograms GskGLTextureAtlas GskGLTextureAtlases GskInsertFunc GskKeepFunc GskVulkanBlendModePipeline GskVulkanBlendModePipelineLayout GskVulkanBlurPipeline GskVulkanBlurPipelineLayout GskVulkanColorTextPipeline GskVulkanColorTextPipelineLayout GskVulkanCrossFadePipeline GskVulkanCrossFadePipelineLayout GskVulkanGlyphCache GskVulkanRenderer GskVulkanRendererClass GskVulkanTextPipeline GskVulkanTextPipelineLayout GskVulkanTexturePipeline GskVulkanTexturePipelineLayout N_NODE_TYPES OpKind PHASE Program STBRP_DEF STB_RECT_PACK_VERSION glyph_cache_key_set_glyph_and_shift gsk_broadway_renderer_get_type gsk_cairo_renderer_get_type gsk_diff gsk_diff_settings_free gsk_diff_settings_new gsk_diff_settings_set_allow_abort gsk_gl_glyph_cache_begin_frame gsk_gl_glyph_cache_lookup_or_add gsk_gl_glyph_cache_new gsk_gl_glyph_cache_ref gsk_gl_glyph_cache_unref gsk_gl_icon_cache_begin_frame gsk_gl_icon_cache_lookup_or_add gsk_gl_icon_cache_new gsk_gl_icon_cache_ref gsk_gl_icon_cache_unref gsk_gl_image_create gsk_gl_image_destroy gsk_gl_image_upload_region gsk_gl_image_write_to_png gsk_gl_renderer_get_type gsk_gl_shader_builder_create_program gsk_gl_shader_builder_finish gsk_gl_shader_builder_init gsk_gl_shader_builder_set_glsl_version gsk_gl_shadow_cache_begin_frame gsk_gl_shadow_cache_commit gsk_gl_shadow_cache_free gsk_gl_shadow_cache_get_texture_id gsk_gl_shadow_cache_init gsk_gl_texture_atlas_free gsk_gl_texture_atlas_get_unused_ratio gsk_gl_texture_atlas_init gsk_gl_texture_atlas_mark_unused gsk_gl_texture_atlas_mark_used gsk_gl_texture_atlas_pack gsk_gl_texture_atlas_realize gsk_gl_texture_atlases_begin_frame gsk_gl_texture_atlases_new gsk_gl_texture_atlases_pack gsk_gl_texture_atlases_ref gsk_gl_texture_atlases_unref gsk_render_node_deserialize_from_bytes gsk_text_node_has_color_glyphs gsk_transform_parser_parse gsk_vulkan_blend_mode_pipeline_collect_vertex_data gsk_vulkan_blend_mode_pipeline_count_vertex_data gsk_vulkan_blend_mode_pipeline_draw gsk_vulkan_blend_mode_pipeline_new gsk_vulkan_blur_pipeline_collect_vertex_data gsk_vulkan_blur_pipeline_count_vertex_data gsk_vulkan_blur_pipeline_draw gsk_vulkan_blur_pipeline_new gsk_vulkan_color_text_pipeline_collect_vertex_data gsk_vulkan_color_text_pipeline_count_vertex_data gsk_vulkan_color_text_pipeline_draw gsk_vulkan_color_text_pipeline_new gsk_vulkan_cross_fade_pipeline_collect_vertex_data gsk_vulkan_cross_fade_pipeline_count_vertex_data gsk_vulkan_cross_fade_pipeline_draw gsk_vulkan_cross_fade_pipeline_new gsk_vulkan_glyph_cache_begin_frame gsk_vulkan_glyph_cache_get_glyph_image gsk_vulkan_glyph_cache_lookup gsk_vulkan_glyph_cache_new gsk_vulkan_renderer_get_type gsk_vulkan_text_pipeline_collect_vertex_data gsk_vulkan_text_pipeline_count_vertex_data gsk_vulkan_text_pipeline_draw gsk_vulkan_text_pipeline_new gsk_vulkan_texture_pipeline_collect_vertex_data gsk_vulkan_texture_pipeline_count_vertex_data gsk_vulkan_texture_pipeline_draw gsk_vulkan_texture_pipeline_new node_sample_add node_sample_init node_sample_print node_sample_reset op_buffer_add op_buffer_clear op_buffer_destroy op_buffer_init op_buffer_iter_init op_buffer_iter_next op_buffer_n_ops op_buffer_peek_tail op_buffer_peek_tail_checked op_buffer_pop_tail ops_begin ops_draw ops_dump_framebuffer ops_finish ops_free ops_get_buffer ops_get_scale ops_has_clip ops_init ops_offset ops_pop_clip ops_pop_debug_group ops_pop_modelview ops_push_clip ops_push_debug_group ops_push_modelview ops_reset ops_set_border ops_set_border_color ops_set_border_width ops_set_color ops_set_color_matrix ops_set_modelview ops_set_opacity ops_set_program ops_set_projection ops_set_render_target ops_set_texture ops_set_viewport ops_transform_bounds_modelview stbrp_context stbrp_coord stbrp_node stbrp_rect docs/reference/gsk/sgml.stamp0000664000175000017500000000001113635542601016365 0ustar mclasenmclasentimestampdocs/reference/gsk/html.stamp0000664000175000017500000000001113635542602016370 0ustar mclasenmclasentimestamp