build/docs/reference/gsk/0000775000175000017500000000000013724235172015465 5ustar mclasenmclasenbuild/docs/reference/gsk/version.xml0000664000175000017500000000000713724233556017675 0ustar mclasenmclasen3.99.1 build/docs/reference/gsk/gsk4-docs.xml0000664000175000017500000000226113724235171020005 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 build/docs/reference/gsk/gsk4-sections.txt0000664000175000017500000001357113724235171020731 0ustar mclasenmclasen
GskRenderer 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 GskRendererClass gsk_renderer_get_type GSK_TYPE_SCALING_FILTER
GskRenderNode GskRenderNode GskBlendNode GskBlurNode GskBorderNode GskCairoNode GskClipNode GskColorMatrixNode GskColorNode GskContainerNode GskCrossFadeNode GskDebugNode GskInsetShadowNode GskLinearGradientNode GskOpacityNode GskOutsetShadowNode GskRepeatingLinearGradientNode GskRepeatNode GskRoundedClipNode GskShadowNode GskTextNode GskTextureNode GskTransformNode 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 GskColorStop 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_has_color_glyphs 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_TYPE_BLEND_NODE GSK_TYPE_BLUR_NODE GSK_TYPE_BORDER_NODE GSK_TYPE_CAIRO_NODE GSK_TYPE_CLIP_NODE GSK_TYPE_COLOR_MATRIX_NODE GSK_TYPE_COLOR_NODE GSK_TYPE_CONTAINER_NODE GSK_TYPE_CROSS_FADE_NODE GSK_TYPE_DEBUG_NODE GSK_TYPE_INSET_SHADOW_NODE GSK_TYPE_LINEAR_GRADIENT_NODE GSK_TYPE_OPACITY_NODE GSK_TYPE_OUTSET_SHADOW_NODE GSK_TYPE_REPEATING_LINEAR_GRADIENT_NODE GSK_TYPE_REPEAT_NODE GSK_TYPE_ROUNDED_CLIP_NODE GSK_TYPE_SHADOW_NODE GSK_TYPE_TEXT_NODE GSK_TYPE_TEXTURE_NODE GSK_TYPE_TRANSFORM_NODE GskRenderNodeClass gsk_blend_node_get_type gsk_blur_node_get_type gsk_border_node_get_type gsk_broadway_renderer_get_type gsk_cairo_node_get_type gsk_cairo_renderer_get_type gsk_clip_node_get_type gsk_color_matrix_node_get_type gsk_color_node_get_type gsk_container_node_get_type gsk_cross_fade_node_get_type gsk_debug_node_get_type gsk_inset_shadow_node_get_type gsk_linear_gradient_node_get_type gsk_opacity_node_get_type gsk_outset_shadow_node_get_type gsk_render_node_get_type gsk_repeating_linear_gradient_node_get_type gsk_repeat_node_get_type gsk_rounded_clip_node_get_type gsk_shadow_node_get_type gsk_text_node_get_type gsk_texture_node_get_type gsk_transform_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_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_TYPE_TRANSFORM_CATEGORY gsk_transform_get_type gsk_transform_new
build/docs/reference/gsk/gsk4-decl-list.txt0000664000175000017500000004473513724234624020772 0ustar mclasenmclasen
glutilsprivate SANITY_CHECKS rounded_rect_top_left rounded_rect_top_right rounded_rect_bottom_right rounded_rect_bottom_left rounded_rect_corner0 rounded_rect_corner1 rounded_rect_corner2 rounded_rect_corner3 rounded_rect_corner graphene_size_non_zero rounded_rect_has_corner rect_contains_point NINE_SLICE_SIZE nine_slice_rounded_rect nine_slice_grow nine_slice_to_texture_coords
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
gskgldriverprivate GSK_TYPE_GL_DRIVER GskQuadVertex TextureSlice gsk_gl_driver_new gsk_gl_driver_get_gl_context gsk_gl_driver_get_max_texture_size gsk_gl_driver_begin_frame gsk_gl_driver_end_frame gsk_gl_driver_in_frame gsk_gl_driver_get_texture_for_texture gsk_gl_driver_get_texture_for_pointer gsk_gl_driver_set_texture_for_pointer gsk_gl_driver_create_texture gsk_gl_driver_create_render_target gsk_gl_driver_mark_texture_permanent gsk_gl_driver_bind_source_texture gsk_gl_driver_init_texture_empty gsk_gl_driver_init_texture_with_surface gsk_gl_driver_destroy_texture gsk_gl_driver_collect_textures gsk_gl_driver_slice_texture GskGLDriver
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
gskglprofilerprivate GSK_TYPE_GL_PROFILER gsk_gl_profiler_new gsk_gl_profiler_begin_gpu_region gsk_gl_profiler_end_gpu_region GskGLProfiler
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 MAX_GRADIENT_STOPS 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_set_inset_shadow ops_set_unblurred_outset_shadow ops_set_linear_gradient 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 GskRepeatingLinearGradientNode GskRoundedClipNode GSK_IS_RENDER_NODE GSK_TYPE_BLEND_NODE GSK_TYPE_BLUR_NODE GSK_TYPE_BORDER_NODE GSK_TYPE_CAIRO_NODE GSK_TYPE_CLIP_NODE GSK_TYPE_COLOR_MATRIX_NODE GSK_TYPE_COLOR_NODE GSK_TYPE_CONTAINER_NODE GSK_TYPE_CROSS_FADE_NODE GSK_TYPE_DEBUG_NODE GSK_TYPE_INSET_SHADOW_NODE GSK_TYPE_LINEAR_GRADIENT_NODE GSK_TYPE_OPACITY_NODE GSK_TYPE_OUTSET_SHADOW_NODE GSK_TYPE_RENDER_NODE GSK_TYPE_REPEATING_LINEAR_GRADIENT_NODE GSK_TYPE_REPEAT_NODE GSK_TYPE_ROUNDED_CLIP_NODE GSK_TYPE_SHADOW_NODE GSK_TYPE_TEXTURE_NODE GSK_TYPE_TEXT_NODE GSK_TYPE_TRANSFORM_NODE GskBlendNode GskBlurNode GskBorderNode GskCairoNode GskClipNode GskColorMatrixNode GskColorNode GskContainerNode GskCrossFadeNode GskDebugNode GskInsetShadowNode GskLinearGradientNode GskOpacityNode GskOutsetShadowNode GskRenderNode GskRepeatNode GskShadowNode GskTextNode GskTextureNode GskTransformNode gsk_blend_node_get_type gsk_blur_node_get_type gsk_border_node_get_type gsk_cairo_node_get_type gsk_clip_node_get_type gsk_color_matrix_node_get_type gsk_color_node_get_type gsk_container_node_get_type gsk_cross_fade_node_get_type gsk_debug_node_get_type gsk_inset_shadow_node_get_type gsk_linear_gradient_node_get_type gsk_opacity_node_get_type gsk_outset_shadow_node_get_type gsk_render_node_get_type gsk_repeat_node_get_type gsk_shadow_node_get_type gsk_text_node_get_type gsk_texture_node_get_type gsk_transform_node_get_type
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
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
gskvulkanborderpipelineprivate GSK_TYPE_VULKAN_BORDER_PIPELINE gsk_vulkan_border_pipeline_new gsk_vulkan_border_pipeline_count_vertex_data gsk_vulkan_border_pipeline_collect_vertex_data gsk_vulkan_border_pipeline_draw GskVulkanBorderPipeline GskVulkanBorderPipelineLayout
gskvulkanboxshadowpipelineprivate GSK_TYPE_VULKAN_BOX_SHADOW_PIPELINE gsk_vulkan_box_shadow_pipeline_new gsk_vulkan_box_shadow_pipeline_count_vertex_data gsk_vulkan_box_shadow_pipeline_collect_vertex_data gsk_vulkan_box_shadow_pipeline_draw GskVulkanBoxShadowPipeline GskVulkanBoxShadowPipelineLayout
gskvulkanbufferprivate gsk_vulkan_buffer_new gsk_vulkan_buffer_new_staging gsk_vulkan_buffer_new_download gsk_vulkan_buffer_free gsk_vulkan_buffer_get_buffer gsk_vulkan_buffer_map gsk_vulkan_buffer_unmap GskVulkanBuffer
gskvulkanclipprivate GskVulkanClipComplexity GskVulkanClip gsk_vulkan_clip_init_empty gsk_vulkan_clip_intersect_rect gsk_vulkan_clip_intersect_rounded_rect gsk_vulkan_clip_transform gsk_vulkan_clip_contains_rect
gskvulkancolorpipelineprivate GSK_TYPE_VULKAN_COLOR_PIPELINE gsk_vulkan_color_pipeline_new gsk_vulkan_color_pipeline_count_vertex_data gsk_vulkan_color_pipeline_collect_vertex_data gsk_vulkan_color_pipeline_draw GskVulkanColorPipeline GskVulkanColorPipelineLayout
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
gskvulkancommandpoolprivate gsk_vulkan_command_pool_new gsk_vulkan_command_pool_free gsk_vulkan_command_pool_reset gsk_vulkan_command_pool_get_buffer gsk_vulkan_command_pool_submit_buffer GskVulkanCommandPool
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
gskvulkaneffectpipelineprivate GSK_TYPE_VULKAN_EFFECT_PIPELINE gsk_vulkan_effect_pipeline_new gsk_vulkan_effect_pipeline_count_vertex_data gsk_vulkan_effect_pipeline_collect_vertex_data gsk_vulkan_effect_pipeline_draw GskVulkanEffectPipeline GskVulkanEffectPipelineLayout
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
gskvulkanimageprivate GSK_TYPE_VULKAN_IMAGE gsk_vulkan_uploader_new gsk_vulkan_uploader_free gsk_vulkan_uploader_reset gsk_vulkan_uploader_upload gsk_vulkan_image_new_for_swapchain gsk_vulkan_image_new_from_data GskImageRegion gsk_vulkan_image_upload_regions gsk_vulkan_image_new_for_framebuffer gsk_vulkan_image_new_for_atlas gsk_vulkan_image_new_for_texture gsk_vulkan_image_download gsk_vulkan_image_get_width gsk_vulkan_image_get_height gsk_vulkan_image_get_image gsk_vulkan_image_get_image_view GskVulkanImage GskVulkanUploader
gskvulkanlineargradientpipelineprivate GSK_VULKAN_LINEAR_GRADIENT_PIPELINE_MAX_COLOR_STOPS GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE gsk_vulkan_linear_gradient_pipeline_new gsk_vulkan_linear_gradient_pipeline_count_vertex_data gsk_vulkan_linear_gradient_pipeline_collect_vertex_data gsk_vulkan_linear_gradient_pipeline_draw GskVulkanLinearGradientPipeline GskVulkanLinearGradientPipelineLayout
gskvulkanmemoryprivate gsk_vulkan_memory_new gsk_vulkan_memory_free gsk_vulkan_memory_get_device_memory gsk_vulkan_memory_map gsk_vulkan_memory_unmap GskVulkanMemory
gskvulkanpipelineprivate GskVulkanPipeline GSK_TYPE_VULKAN_PIPELINE GskVulkanPipelineClass gsk_vulkan_handle_result GSK_VK_CHECK gsk_vulkan_pipeline_new gsk_vulkan_pipeline_new_full gsk_vulkan_pipeline_get_pipeline gsk_vulkan_pipeline_get_pipeline_layout GskVulkanPipeline
gskvulkanpushconstantsprivate GskVulkanPushConstants gsk_vulkan_push_constants_get_ranges gsk_vulkan_push_constants_get_range_count gsk_vulkan_push_constants_init gsk_vulkan_push_constants_init_copy gsk_vulkan_push_constants_transform gsk_vulkan_push_constants_intersect_rect gsk_vulkan_push_constants_intersect_rounded gsk_vulkan_push_constants_push
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
gskvulkanrendererprivate gsk_vulkan_renderer_ref_texture_image gsk_vulkan_renderer_cache_glyph gsk_vulkan_renderer_ref_glyph_image gsk_vulkan_renderer_get_cached_glyph
gskvulkanrenderpassprivate gsk_vulkan_render_pass_new gsk_vulkan_render_pass_free gsk_vulkan_render_pass_add gsk_vulkan_render_pass_upload gsk_vulkan_render_pass_reserve_descriptor_sets gsk_vulkan_render_pass_draw gsk_vulkan_render_pass_get_wait_semaphores gsk_vulkan_render_pass_get_signal_semaphores
gskvulkanrenderprivate GskVulkanPipelineType gsk_vulkan_render_new gsk_vulkan_render_free gsk_vulkan_render_is_busy gsk_vulkan_render_reset gsk_vulkan_render_get_renderer gsk_vulkan_render_add_cleanup_image gsk_vulkan_render_add_node gsk_vulkan_render_add_render_pass gsk_vulkan_render_upload gsk_vulkan_render_get_pipeline gsk_vulkan_render_get_descriptor_set gsk_vulkan_render_reserve_descriptor_set gsk_vulkan_render_draw gsk_vulkan_render_submit gsk_vulkan_render_download_target gsk_vulkan_render_get_framebuffer
gskvulkanshaderprivate GskVulkanShaderType GST_VULKAN_SHADER_STAGE_CREATE_INFO gsk_vulkan_shader_new_from_resource gsk_vulkan_shader_free gsk_vulkan_shader_get_module GskVulkanShader gsk_vulkan_shader_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 OpShadow 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
build/docs/reference/gsk/gsk4-decl.txt0000664000175000017500000027716013724234624020021 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_TYPE_DEBUG_NODE #define GSK_TYPE_DEBUG_NODE (gsk_debug_node_get_type()) GSK_TYPE_COLOR_NODE #define GSK_TYPE_COLOR_NODE (gsk_color_node_get_type()) GSK_TYPE_TEXTURE_NODE #define GSK_TYPE_TEXTURE_NODE (gsk_texture_node_get_type()) GSK_TYPE_LINEAR_GRADIENT_NODE #define GSK_TYPE_LINEAR_GRADIENT_NODE (gsk_linear_gradient_node_get_type()) GSK_TYPE_REPEATING_LINEAR_GRADIENT_NODE #define GSK_TYPE_REPEATING_LINEAR_GRADIENT_NODE (gsk_repeating_linear_gradient_node_get_type()) GSK_TYPE_BORDER_NODE #define GSK_TYPE_BORDER_NODE (gsk_border_node_get_type()) GSK_TYPE_INSET_SHADOW_NODE #define GSK_TYPE_INSET_SHADOW_NODE (gsk_inset_shadow_node_get_type()) GSK_TYPE_OUTSET_SHADOW_NODE #define GSK_TYPE_OUTSET_SHADOW_NODE (gsk_outset_shadow_node_get_type()) GSK_TYPE_CAIRO_NODE #define GSK_TYPE_CAIRO_NODE (gsk_cairo_node_get_type()) GSK_TYPE_CONTAINER_NODE #define GSK_TYPE_CONTAINER_NODE (gsk_container_node_get_type()) GSK_TYPE_TRANSFORM_NODE #define GSK_TYPE_TRANSFORM_NODE (gsk_transform_node_get_type()) GSK_TYPE_OPACITY_NODE #define GSK_TYPE_OPACITY_NODE (gsk_opacity_node_get_type()) GSK_TYPE_COLOR_MATRIX_NODE #define GSK_TYPE_COLOR_MATRIX_NODE (gsk_color_matrix_node_get_type()) GSK_TYPE_REPEAT_NODE #define GSK_TYPE_REPEAT_NODE (gsk_repeat_node_get_type()) GSK_TYPE_CLIP_NODE #define GSK_TYPE_CLIP_NODE (gsk_clip_node_get_type()) GSK_TYPE_ROUNDED_CLIP_NODE #define GSK_TYPE_ROUNDED_CLIP_NODE (gsk_rounded_clip_node_get_type()) GSK_TYPE_SHADOW_NODE #define GSK_TYPE_SHADOW_NODE (gsk_shadow_node_get_type()) GSK_TYPE_BLEND_NODE #define GSK_TYPE_BLEND_NODE (gsk_blend_node_get_type()) GSK_TYPE_CROSS_FADE_NODE #define GSK_TYPE_CROSS_FADE_NODE (gsk_cross_fade_node_get_type()) GSK_TYPE_TEXT_NODE #define GSK_TYPE_TEXT_NODE (gsk_text_node_get_type()) GSK_TYPE_BLUR_NODE #define GSK_TYPE_BLUR_NODE (gsk_blur_node_get_type()) gsk_debug_node_get_type GType void 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_get_type GType void 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_get_type GType void gsk_texture_node_new GskRenderNode * GdkTexture *texture, const graphene_rect_t *bounds gsk_texture_node_get_texture GdkTexture * GskRenderNode *node gsk_linear_gradient_node_get_type GType void 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, gsize *n_stops gsk_repeating_linear_gradient_node_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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_get_type GType void 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, guint *n_glyphs gsk_text_node_peek_color const GdkRGBA * GskRenderNode *node gsk_text_node_get_offset const graphene_point_t * GskRenderNode *node gsk_blur_node_get_type GType void 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 GskBlendNode GskBlurNode GskBorderNode GskCairoNode GskClipNode GskColorMatrixNode GskColorNode GskContainerNode GskCrossFadeNode GskDebugNode GskInsetShadowNode GskLinearGradientNode GskOpacityNode GskOutsetShadowNode GskRenderNode GskRepeatNode GskRepeatingLinearGradientNode GskRoundedClipNode GskShadowNode GskTextNode GskTextureNode GskTransformNode 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 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 SANITY_CHECKS #define SANITY_CHECKS 0 rounded_rect_top_left #define rounded_rect_top_left(r) (GRAPHENE_RECT_INIT(r->bounds.origin.x, \ r->bounds.origin.y, \ r->corner[0].width, r->corner[0].height)) rounded_rect_top_right #define rounded_rect_top_right(r) (GRAPHENE_RECT_INIT(r->bounds.origin.x + r->bounds.size.width - r->corner[1].width, \ r->bounds.origin.y, \ r->corner[1].width, r->corner[1].height)) rounded_rect_bottom_right #define rounded_rect_bottom_right(r) (GRAPHENE_RECT_INIT(r->bounds.origin.x + r->bounds.size.width - r->corner[2].width, \ r->bounds.origin.y + r->bounds.size.height - r->corner[2].height, \ r->corner[2].width, r->corner[2].height)) rounded_rect_bottom_left #define rounded_rect_bottom_left(r) (GRAPHENE_RECT_INIT(r->bounds.origin.x, \ r->bounds.origin.y + r->bounds.size.height - r->corner[2].height, \ r->corner[3].width, r->corner[3].height)) rounded_rect_corner0 #define rounded_rect_corner0(r) rounded_rect_top_left(r) rounded_rect_corner1 #define rounded_rect_corner1(r) rounded_rect_top_right(r) rounded_rect_corner2 #define rounded_rect_corner2(r) rounded_rect_bottom_right(r) rounded_rect_corner3 #define rounded_rect_corner3(r) rounded_rect_bottom_left(r) rounded_rect_corner #define rounded_rect_corner(r, i) (rounded_rect_corner ##i(r)) graphene_size_non_zero #define graphene_size_non_zero(s) (s->width > 0 && s->height > 0) rounded_rect_has_corner #define rounded_rect_has_corner(r, i) (r->corner[i].width > 0 && r->corner[i].height > 0) rect_contains_point #define rect_contains_point(r, _x, _y) (_x >= (r)->origin.x && _x <= (r)->origin.x + (r)->size.width && \ _y >= (r)->origin.y && _y <= (r)->origin.y + (r)->size.height) NINE_SLICE_SIZE #define NINE_SLICE_SIZE 9 /* Hah. */ nine_slice_rounded_rect void const GskRoundedRect *rect, cairo_rectangle_int_t *out_rects nine_slice_grow void cairo_rectangle_int_t *slices, const int amount nine_slice_to_texture_coords void const cairo_rectangle_int_t *slices, const int texture_width, const int texture_height, TextureRegion *out_regions GSK_TYPE_GL_DRIVER #define GSK_TYPE_GL_DRIVER (gsk_gl_driver_get_type ()) GskQuadVertex typedef struct { float position[2]; float uv[2]; } GskQuadVertex; TextureSlice typedef struct { cairo_rectangle_int_t rect; guint texture_id; } TextureSlice; gsk_gl_driver_new GskGLDriver * GdkGLContext *context gsk_gl_driver_get_gl_context GdkGLContext * GskGLDriver *driver gsk_gl_driver_get_max_texture_size int GskGLDriver *driver gsk_gl_driver_begin_frame void GskGLDriver *driver gsk_gl_driver_end_frame void GskGLDriver *driver gsk_gl_driver_in_frame gboolean GskGLDriver *driver gsk_gl_driver_get_texture_for_texture int GskGLDriver *driver, GdkTexture *texture, int min_filter, int mag_filter gsk_gl_driver_get_texture_for_pointer int GskGLDriver *driver, gpointer pointer gsk_gl_driver_set_texture_for_pointer void GskGLDriver *driver, gpointer pointer, int texture_id gsk_gl_driver_create_texture int GskGLDriver *driver, float width, float height gsk_gl_driver_create_render_target void GskGLDriver *driver, int width, int height, int *out_texture_id, int *out_render_target_id gsk_gl_driver_mark_texture_permanent void GskGLDriver *self, int texture_id gsk_gl_driver_bind_source_texture void GskGLDriver *driver, int texture_id gsk_gl_driver_init_texture_empty void GskGLDriver *driver, int texture_id, int min_filter, int max_filter gsk_gl_driver_init_texture_with_surface void GskGLDriver *driver, int texture_id, cairo_surface_t *surface, int min_filter, int mag_filter gsk_gl_driver_destroy_texture void GskGLDriver *driver, int texture_id gsk_gl_driver_collect_textures int GskGLDriver *driver gsk_gl_driver_slice_texture void GskGLDriver *self, GdkTexture *texture, TextureSlice **out_slices, guint *out_n_slices GskGLDriver 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_PROFILER #define GSK_TYPE_GL_PROFILER (gsk_gl_profiler_get_type ()) gsk_gl_profiler_new GskGLProfiler * GdkGLContext *context gsk_gl_profiler_begin_gpu_region void GskGLProfiler *profiler gsk_gl_profiler_end_gpu_region guint64 GskGLProfiler *profiler GskGLProfiler 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 MAX_GRADIENT_STOPS #define MAX_GRADIENT_STOPS 8 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_set_inset_shadow void RenderOpBuilder *self, const GskRoundedRect outline, float spread, const GdkRGBA *color, float dx, float dy ops_set_unblurred_outset_shadow void RenderOpBuilder *self, const GskRoundedRect outline, float spread, const GdkRGBA *color, float dx, float dy ops_set_linear_gradient void RenderOpBuilder *self, guint n_color_stops, const GskColorStop *color_stops, float start_x, float start_y, float end_x, float end_y 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; OpShadow typedef struct { int value; guint send: 1; } IntUniformValue; typedef struct { float value; guint send: 1; } FloatUniformValue; typedef struct { float value[2]; guint send: 1; } Float2UniformValue; typedef struct { GskRoundedRect value; guint send: 1; guint send_corners: 1; } RRUniformValue; typedef struct { const GdkRGBA *value; guint send: 1; } RGBAUniformValue; typedef struct { const graphene_vec4_t *value; guint send: 1; } Vec4UniformValue; typedef struct { const GskColorStop *value; guint send: 1; } ColorStopUniformValue; /* OpNode are allocated within OpBuffer.pos, but we keep * a secondary index into the locations of that buffer * from OpBuffer.index. This allows peeking at the kind * and quickly replacing existing entries when necessary. */ typedef struct { RRUniformValue outline; FloatUniformValue spread; Float2UniformValue offset; RGBAUniformValue color; } OpShadow; 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_BORDER_PIPELINE #define GSK_TYPE_VULKAN_BORDER_PIPELINE (gsk_vulkan_border_pipeline_get_type ()) gsk_vulkan_border_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_border_pipeline_count_vertex_data gsize GskVulkanBorderPipeline *pipeline gsk_vulkan_border_pipeline_collect_vertex_data void GskVulkanBorderPipeline *pipeline, guchar *data, const GskRoundedRect *rect, const float widths[4], const GdkRGBA colors[4] gsk_vulkan_border_pipeline_draw gsize GskVulkanBorderPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanBorderPipeline GskVulkanBorderPipelineLayout GSK_TYPE_VULKAN_BOX_SHADOW_PIPELINE #define GSK_TYPE_VULKAN_BOX_SHADOW_PIPELINE (gsk_vulkan_box_shadow_pipeline_get_type ()) gsk_vulkan_box_shadow_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_box_shadow_pipeline_count_vertex_data gsize GskVulkanBoxShadowPipeline *pipeline gsk_vulkan_box_shadow_pipeline_collect_vertex_data void GskVulkanBoxShadowPipeline *pipeline, guchar *data, const GskRoundedRect *outline, const GdkRGBA *color, float dx, float dy, float spread, float blur_radius gsk_vulkan_box_shadow_pipeline_draw gsize GskVulkanBoxShadowPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanBoxShadowPipeline GskVulkanBoxShadowPipelineLayout gsk_vulkan_buffer_new GskVulkanBuffer * GdkVulkanContext *context, gsize size gsk_vulkan_buffer_new_staging GskVulkanBuffer * GdkVulkanContext *context, gsize size gsk_vulkan_buffer_new_download GskVulkanBuffer * GdkVulkanContext *context, gsize size gsk_vulkan_buffer_free void GskVulkanBuffer *buffer gsk_vulkan_buffer_get_buffer VkBuffer GskVulkanBuffer *self gsk_vulkan_buffer_map guchar * GskVulkanBuffer *self gsk_vulkan_buffer_unmap void GskVulkanBuffer *self GskVulkanBuffer GskVulkanClipComplexity typedef enum { /* The whole area is clipped, no drawing is necessary. * This can't be handled by return values because for return * values we return if clips could even be computed. */ GSK_VULKAN_CLIP_ALL_CLIPPED, /* No clipping is necessary, but the clip rect is set * to the actual bounds of the underlying framebuffer */ GSK_VULKAN_CLIP_NONE, /* The clip is a rectangular area */ GSK_VULKAN_CLIP_RECT, /* The clip is a rounded rectangle, and for every corner * corner.width == corner.height is true */ GSK_VULKAN_CLIP_ROUNDED_CIRCULAR, /* The clip is a rounded rectangle */ GSK_VULKAN_CLIP_ROUNDED } GskVulkanClipComplexity; GskVulkanClip struct _GskVulkanClip { GskVulkanClipComplexity type; GskRoundedRect rect; }; gsk_vulkan_clip_init_empty void GskVulkanClip *clip, const graphene_rect_t *rect gsk_vulkan_clip_intersect_rect gboolean GskVulkanClip *dest, const GskVulkanClip *src, const graphene_rect_t *rect gsk_vulkan_clip_intersect_rounded_rect gboolean GskVulkanClip *dest, const GskVulkanClip *src, const GskRoundedRect *rounded gsk_vulkan_clip_transform gboolean GskVulkanClip *dest, const GskVulkanClip *src, const graphene_matrix_t*transform, const graphene_rect_t *viewport gsk_vulkan_clip_contains_rect gboolean const GskVulkanClip *self, const graphene_rect_t *rect GSK_TYPE_VULKAN_COLOR_PIPELINE #define GSK_TYPE_VULKAN_COLOR_PIPELINE (gsk_vulkan_color_pipeline_get_type ()) gsk_vulkan_color_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_color_pipeline_count_vertex_data gsize GskVulkanColorPipeline *pipeline gsk_vulkan_color_pipeline_collect_vertex_data void GskVulkanColorPipeline *pipeline, guchar *data, const graphene_rect_t *rect, const GdkRGBA *color gsk_vulkan_color_pipeline_draw gsize GskVulkanColorPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanColorPipeline GskVulkanColorPipelineLayout 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_vulkan_command_pool_new GskVulkanCommandPool * GdkVulkanContext *context gsk_vulkan_command_pool_free void GskVulkanCommandPool *self gsk_vulkan_command_pool_reset void GskVulkanCommandPool *self gsk_vulkan_command_pool_get_buffer VkCommandBuffer GskVulkanCommandPool *self gsk_vulkan_command_pool_submit_buffer void GskVulkanCommandPool *self, VkCommandBuffer buffer, gsize wait_semaphore_count, VkSemaphore *wait_semaphores, gsize signal_semaphores_count, VkSemaphore *signal_semaphores, VkFence fence GskVulkanCommandPool 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_EFFECT_PIPELINE #define GSK_TYPE_VULKAN_EFFECT_PIPELINE (gsk_vulkan_effect_pipeline_get_type ()) gsk_vulkan_effect_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_effect_pipeline_count_vertex_data gsize GskVulkanEffectPipeline *pipeline gsk_vulkan_effect_pipeline_collect_vertex_data void GskVulkanEffectPipeline *pipeline, guchar *data, const graphene_rect_t *rect, const graphene_rect_t *tex_rect, const graphene_matrix_t *color_matrix, const graphene_vec4_t *color_offset gsk_vulkan_effect_pipeline_draw gsize GskVulkanEffectPipeline *pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanEffectPipeline GskVulkanEffectPipelineLayout 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_IMAGE #define GSK_TYPE_VULKAN_IMAGE (gsk_vulkan_image_get_type ()) gsk_vulkan_uploader_new GskVulkanUploader * GdkVulkanContext *context, GskVulkanCommandPool *command_pool gsk_vulkan_uploader_free void GskVulkanUploader *self gsk_vulkan_uploader_reset void GskVulkanUploader *self gsk_vulkan_uploader_upload void GskVulkanUploader *self gsk_vulkan_image_new_for_swapchain GskVulkanImage * GdkVulkanContext *context, VkImage image, VkFormat format, gsize width, gsize height gsk_vulkan_image_new_from_data GskVulkanImage * GskVulkanUploader *uploader, guchar *data, gsize width, gsize height, gsize stride GskImageRegion typedef struct { guchar *data; gsize width; gsize height; gsize stride; gsize x; gsize y; } GskImageRegion; gsk_vulkan_image_upload_regions void GskVulkanImage *image, GskVulkanUploader *uploader, guint num_regions, GskImageRegion *regions gsk_vulkan_image_new_for_framebuffer GskVulkanImage * GdkVulkanContext *context, gsize width, gsize height gsk_vulkan_image_new_for_atlas GskVulkanImage * GdkVulkanContext *context, gsize width, gsize height gsk_vulkan_image_new_for_texture GskVulkanImage * GdkVulkanContext *context, gsize width, gsize height gsk_vulkan_image_download GdkTexture * GskVulkanImage *self, GskVulkanUploader *uploader gsk_vulkan_image_get_width gsize GskVulkanImage *self gsk_vulkan_image_get_height gsize GskVulkanImage *self gsk_vulkan_image_get_image VkImage GskVulkanImage *self gsk_vulkan_image_get_image_view VkImageView GskVulkanImage *self GskVulkanImage GskVulkanUploader GSK_VULKAN_LINEAR_GRADIENT_PIPELINE_MAX_COLOR_STOPS #define GSK_VULKAN_LINEAR_GRADIENT_PIPELINE_MAX_COLOR_STOPS 8 GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE #define GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE (gsk_vulkan_linear_gradient_pipeline_get_type ()) gsk_vulkan_linear_gradient_pipeline_new GskVulkanPipeline * GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_linear_gradient_pipeline_count_vertex_data gsize GskVulkanLinearGradientPipeline*pipeline gsk_vulkan_linear_gradient_pipeline_collect_vertex_data void GskVulkanLinearGradientPipeline*pipeline, guchar *data, const graphene_rect_t *rect, const graphene_point_t *start, const graphene_point_t *end, gboolean repeating, gsize n_stops, const GskColorStop *stops gsk_vulkan_linear_gradient_pipeline_draw gsize GskVulkanLinearGradientPipeline*pipeline, VkCommandBuffer command_buffer, gsize offset, gsize n_commands GskVulkanLinearGradientPipeline GskVulkanLinearGradientPipelineLayout gsk_vulkan_memory_new GskVulkanMemory * GdkVulkanContext *context, uint32_t allowed_types, VkMemoryPropertyFlags properties, gsize size gsk_vulkan_memory_free void GskVulkanMemory *memory gsk_vulkan_memory_get_device_memory VkDeviceMemory GskVulkanMemory *self gsk_vulkan_memory_map guchar * GskVulkanMemory *self gsk_vulkan_memory_unmap void GskVulkanMemory *self GskVulkanMemory GSK_TYPE_VULKAN_PIPELINE #define GSK_TYPE_VULKAN_PIPELINE (gsk_vulkan_pipeline_get_type ()) GskVulkanPipelineClass struct _GskVulkanPipelineClass { GObjectClass parent_class; const VkPipelineVertexInputStateCreateInfo * (* get_input_state_create_info) (GskVulkanPipeline *self); }; gsk_vulkan_handle_result VkResult VkResult res, const char *called_function GSK_VK_CHECK #define GSK_VK_CHECK(func, ...) gsk_vulkan_handle_result (func (__VA_ARGS__), G_STRINGIFY (func)) gsk_vulkan_pipeline_new GskVulkanPipeline * GType pipeline_type, GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass gsk_vulkan_pipeline_new_full GskVulkanPipeline * GType pipeline_type, GdkVulkanContext *context, VkPipelineLayout layout, const char *shader_name, VkRenderPass render_pass, VkBlendFactor srcBlendFactor, VkBlendFactor dstBlendFactor gsk_vulkan_pipeline_get_pipeline VkPipeline GskVulkanPipeline *self gsk_vulkan_pipeline_get_pipeline_layout VkPipelineLayout GskVulkanPipeline *self GskVulkanPipeline GskVulkanPushConstants struct _GskVulkanPushConstants { graphene_matrix_t mvp; GskVulkanClip clip; }; gsk_vulkan_push_constants_get_ranges const VkPushConstantRange * void gsk_vulkan_push_constants_get_range_count uint32_t void gsk_vulkan_push_constants_init void GskVulkanPushConstants *constants, const graphene_matrix_t *mvp, const graphene_rect_t *viewport gsk_vulkan_push_constants_init_copy void GskVulkanPushConstants *self, const GskVulkanPushConstants *src gsk_vulkan_push_constants_transform gboolean GskVulkanPushConstants *self, const GskVulkanPushConstants *src, const graphene_matrix_t *transform, const graphene_rect_t *viewport gsk_vulkan_push_constants_intersect_rect gboolean GskVulkanPushConstants *self, const GskVulkanPushConstants *src, const graphene_rect_t *rect gsk_vulkan_push_constants_intersect_rounded gboolean GskVulkanPushConstants *self, const GskVulkanPushConstants *src, const GskRoundedRect *rect gsk_vulkan_push_constants_push void const GskVulkanPushConstants *self, VkCommandBuffer command_buffer, VkPipelineLayout pipeline_layout 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_vulkan_renderer_ref_texture_image GskVulkanImage * GskVulkanRenderer *self, GdkTexture *texture, GskVulkanUploader *uploader gsk_vulkan_renderer_cache_glyph guint GskVulkanRenderer *renderer, PangoFont *font, PangoGlyph glyph, int x, int y, float scale gsk_vulkan_renderer_ref_glyph_image GskVulkanImage * GskVulkanRenderer *self, GskVulkanUploader *uploader, guint index gsk_vulkan_renderer_get_cached_glyph GskVulkanCachedGlyph * GskVulkanRenderer *self, PangoFont *font, PangoGlyph glyph, int x, int y, float scale gsk_vulkan_render_pass_new GskVulkanRenderPass * GdkVulkanContext *context, GskVulkanImage *target, int scale_factor, graphene_matrix_t *mv, graphene_rect_t *viewport, cairo_region_t *clip, VkSemaphore signal_semaphore gsk_vulkan_render_pass_free void GskVulkanRenderPass *self gsk_vulkan_render_pass_add void GskVulkanRenderPass *self, GskVulkanRender *render, GskRenderNode *node gsk_vulkan_render_pass_upload void GskVulkanRenderPass *self, GskVulkanRender *render, GskVulkanUploader *uploader gsk_vulkan_render_pass_reserve_descriptor_sets void GskVulkanRenderPass *self, GskVulkanRender *render gsk_vulkan_render_pass_draw void GskVulkanRenderPass *self, GskVulkanRender *render, guint layout_count, VkPipelineLayout *pipeline_layout, VkCommandBuffer command_buffer gsk_vulkan_render_pass_get_wait_semaphores gsize GskVulkanRenderPass *self, VkSemaphore **semaphores gsk_vulkan_render_pass_get_signal_semaphores gsize GskVulkanRenderPass *self, VkSemaphore **semaphores GskVulkanPipelineType typedef enum { GSK_VULKAN_PIPELINE_TEXTURE, GSK_VULKAN_PIPELINE_TEXTURE_CLIP, GSK_VULKAN_PIPELINE_TEXTURE_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_COLOR, GSK_VULKAN_PIPELINE_COLOR_CLIP, GSK_VULKAN_PIPELINE_COLOR_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_LINEAR_GRADIENT, GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP, GSK_VULKAN_PIPELINE_LINEAR_GRADIENT_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_COLOR_MATRIX, GSK_VULKAN_PIPELINE_COLOR_MATRIX_CLIP, GSK_VULKAN_PIPELINE_COLOR_MATRIX_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_BORDER, GSK_VULKAN_PIPELINE_BORDER_CLIP, GSK_VULKAN_PIPELINE_BORDER_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_INSET_SHADOW, GSK_VULKAN_PIPELINE_INSET_SHADOW_CLIP, GSK_VULKAN_PIPELINE_INSET_SHADOW_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_OUTSET_SHADOW, GSK_VULKAN_PIPELINE_OUTSET_SHADOW_CLIP, GSK_VULKAN_PIPELINE_OUTSET_SHADOW_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_BLUR, GSK_VULKAN_PIPELINE_BLUR_CLIP, GSK_VULKAN_PIPELINE_BLUR_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_TEXT, GSK_VULKAN_PIPELINE_TEXT_CLIP, GSK_VULKAN_PIPELINE_TEXT_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_COLOR_TEXT, GSK_VULKAN_PIPELINE_COLOR_TEXT_CLIP, GSK_VULKAN_PIPELINE_COLOR_TEXT_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_CROSS_FADE, GSK_VULKAN_PIPELINE_CROSS_FADE_CLIP, GSK_VULKAN_PIPELINE_CROSS_FADE_CLIP_ROUNDED, GSK_VULKAN_PIPELINE_BLEND_MODE, GSK_VULKAN_PIPELINE_BLEND_MODE_CLIP, GSK_VULKAN_PIPELINE_BLEND_MODE_CLIP_ROUNDED, /* add more */ GSK_VULKAN_N_PIPELINES } GskVulkanPipelineType; gsk_vulkan_render_new GskVulkanRender * GskRenderer *renderer, GdkVulkanContext *context gsk_vulkan_render_free void GskVulkanRender *self gsk_vulkan_render_is_busy gboolean GskVulkanRender *self gsk_vulkan_render_reset void GskVulkanRender *self, GskVulkanImage *target, const graphene_rect_t *rect, const cairo_region_t *clip gsk_vulkan_render_get_renderer GskRenderer * GskVulkanRender *self gsk_vulkan_render_add_cleanup_image void GskVulkanRender *self, GskVulkanImage *image gsk_vulkan_render_add_node void GskVulkanRender *self, GskRenderNode *node gsk_vulkan_render_add_render_pass void GskVulkanRender *self, GskVulkanRenderPass *pass gsk_vulkan_render_upload void GskVulkanRender *self gsk_vulkan_render_get_pipeline GskVulkanPipeline * GskVulkanRender *self, GskVulkanPipelineType pipeline_type gsk_vulkan_render_get_descriptor_set VkDescriptorSet GskVulkanRender *self, gsize id gsk_vulkan_render_reserve_descriptor_set gsize GskVulkanRender *self, GskVulkanImage *source, gboolean repeat gsk_vulkan_render_draw void GskVulkanRender *self gsk_vulkan_render_submit void GskVulkanRender *self gsk_vulkan_render_download_target GdkTexture * GskVulkanRender *self gsk_vulkan_render_get_framebuffer VkFramebuffer GskVulkanRender *self, GskVulkanImage *image GskVulkanShaderType typedef enum { GSK_VULKAN_SHADER_VERTEX, GSK_VULKAN_SHADER_FRAGMENT } GskVulkanShaderType; GST_VULKAN_SHADER_STAGE_CREATE_INFO #define GST_VULKAN_SHADER_STAGE_CREATE_INFO(shader) \ (VkPipelineShaderStageCreateInfo) { \ .sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, \ .stage = gsk_vulkan_shader_get_type (shader) == GSK_VULKAN_SHADER_VERTEX ? VK_SHADER_STAGE_VERTEX_BIT : VK_SHADER_STAGE_FRAGMENT_BIT, \ .module = gsk_vulkan_shader_get_module (shader), \ .pName = "main", \ } gsk_vulkan_shader_new_from_resource GskVulkanShader * GdkVulkanContext *context, GskVulkanShaderType type, const char *resource_name, GError **error gsk_vulkan_shader_free void GskVulkanShader *shader gsk_vulkan_shader_get_type GskVulkanShaderType GskVulkanShader *shader gsk_vulkan_shader_get_module VkShaderModule GskVulkanShader *shader GskVulkanShader 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 ()) build/docs/reference/gsk/gsk4-overrides.txt0000664000175000017500000000000013724234624021065 0ustar mclasenmclasenbuild/docs/reference/gsk/gsk4.signals0000664000175000017500000000000013724234624017706 0ustar mclasenmclasenbuild/docs/reference/gsk/gsk4.hierarchy0000664000175000017500000000011213724234624020230 0ustar mclasenmclasenGObject GskRenderer GdkSurface GInterface GTypePlugin GskRenderNode build/docs/reference/gsk/gsk4.interfaces0000664000175000017500000000000013724234624020371 0ustar mclasenmclasenbuild/docs/reference/gsk/gsk4.prerequisites0000664000175000017500000000000013724234624021152 0ustar mclasenmclasenbuild/docs/reference/gsk/gsk4.args0000664000175000017500000000064113724234624017215 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. build/docs/reference/gsk/gsk4.actions0000664000175000017500000000000013724234624017706 0ustar mclasenmclasenbuild/docs/reference/gsk/xml/0000775000175000017500000000000013724235172016265 5ustar mclasenmclasenbuild/docs/reference/gsk/xml/GskRenderer.xml0000664000175000017500000006014713724234625021234 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 Types and Values GskRenderer 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 GskRenderer 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 gsk_renderer_realize(). This function is only available when GTK was compiled with Broadway support. Returns a new Broadway renderer. Types and Values GskRenderer GskRenderer typedef struct _GskRenderer GskRenderer; 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 build/docs/reference/gsk/xml/GskRenderNode.xml0000664000175000017500000062352413724234625021517 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 () gboolean gsk_text_node_has_color_glyphs () 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 GskRenderNode GskBlendNode GskBlurNode GskBorderNode GskCairoNode GskClipNode GskColorMatrixNode GskColorNode GskContainerNode GskCrossFadeNode GskDebugNode GskInsetShadowNode GskLinearGradientNode GskOpacityNode GskOutsetShadowNode GskRepeatingLinearGradientNode GskRepeatNode GskRoundedClipNode GskShadowNode GskTextNode GskTextureNode GskTransformNode enumGskRenderNodeType enumGskSerializationError enumGskScalingFilter structGskColorStop structGskShadow enumGskBlendMode Object Hierarchy 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. [transfer full][type GskColorNode] gsk_color_node_peek_color () gsk_color_node_peek_color const GdkRGBA * gsk_color_node_peek_color (GskRenderNode *node); Retrieves the color of the given node . Parameters node a GskColorNode. [type GskColorNode] Returns the color of the node. [transfer none] 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. [transfer full][type GskTextureNode] gsk_texture_node_get_texture () gsk_texture_node_get_texture GdkTexture * gsk_texture_node_get_texture (GskRenderNode *node); Retrieves the GdkTexture used when creating this GskRenderNode. Parameters node a GskRenderNode of type GSK_TEXTURE_NODE. [type GskTextureNode] 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. [transfer full][type GskLinearGradientNode] gsk_linear_gradient_node_peek_start () gsk_linear_gradient_node_peek_start const graphene_point_t * gsk_linear_gradient_node_peek_start (GskRenderNode *node); Retrieves the initial point of the linear gradient. Parameters node a GskRenderNode for a linear gradient. [type GskLinearGradientNode] Returns the initial point. [transfer none] gsk_linear_gradient_node_peek_end () gsk_linear_gradient_node_peek_end const graphene_point_t * gsk_linear_gradient_node_peek_end (GskRenderNode *node); Retrieves the final point of the linear gradient. Parameters node a GskRenderNode for a linear gradient. [type GskLinearGradientNode] Returns the final point. [transfer none] 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); Retrieves the number of color stops in the gradient. Parameters node a GskRenderNode for a linear gradient. [type GskLinearGradientNode] Returns the number of color stops 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, gsize *n_stops); Retrieves the color stops in the gradient. Parameters node a GskRenderNode for a linear gradient. [type GskLinearGradientNode] n_stops the number of color stops in the returned array. [out][optional] Returns the color stops in the gradient. [array length=n_stops] 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. [transfer full][type GskRepeatingLinearGradientNode] 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. [transfer full][type GskBorderNode] gsk_border_node_peek_outline () gsk_border_node_peek_outline const GskRoundedRect * gsk_border_node_peek_outline (GskRenderNode *node); Retrieves the outline of the border. Parameters node a GskRenderNode for a border. [type GskBorderNode] Returns the outline of the border gsk_border_node_peek_widths () gsk_border_node_peek_widths const float * gsk_border_node_peek_widths (GskRenderNode *node); Retrieves the stroke widths of the border. Parameters node a GskRenderNode for a border. [type GskBorderNode] Returns an array of 4 floats for the top, right, bottom and left stroke width of the border. [transfer none] gsk_border_node_peek_colors () gsk_border_node_peek_colors const GdkRGBA * gsk_border_node_peek_colors (GskRenderNode *node); Retrieves the colors of the border. Parameters node a GskRenderNode for a border. [type GskBorderNode] Returns an array of 4 GdkRGBA structs for the top, right, bottom and left color of the border. [transfer none] 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. [transfer full][type GskInsetShadowNode] gsk_inset_shadow_node_peek_outline () gsk_inset_shadow_node_peek_outline const GskRoundedRect * gsk_inset_shadow_node_peek_outline (GskRenderNode *node); Retrieves the outline rectangle of the inset shadow. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns a rounded rectangle. [transfer none] gsk_inset_shadow_node_peek_color () gsk_inset_shadow_node_peek_color const GdkRGBA * gsk_inset_shadow_node_peek_color (GskRenderNode *node); Retrieves the color of the inset shadow. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns the color of the shadow. [transfer none] gsk_inset_shadow_node_get_dx () gsk_inset_shadow_node_get_dx float gsk_inset_shadow_node_get_dx (GskRenderNode *node); Retrieves the horizontal offset of the inset shadow. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns an offset, in pixels gsk_inset_shadow_node_get_dy () gsk_inset_shadow_node_get_dy float gsk_inset_shadow_node_get_dy (GskRenderNode *node); Retrieves the vertical offset of the inset shadow. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns an offset, in pixels gsk_inset_shadow_node_get_spread () gsk_inset_shadow_node_get_spread float gsk_inset_shadow_node_get_spread (GskRenderNode *node); Retrieves how much the shadow spreads inwards. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns the size of the shadow, in pixels gsk_inset_shadow_node_get_blur_radius () gsk_inset_shadow_node_get_blur_radius float gsk_inset_shadow_node_get_blur_radius (GskRenderNode *node); Retrieves the blur radius to apply to the shadow. Parameters node a GskRenderNode for an inset shadow. [type GskInsetShadowNode] Returns the blur radius, in pixels 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. [transfer full][type GskOutsetShadowNode] gsk_outset_shadow_node_peek_outline () gsk_outset_shadow_node_peek_outline const GskRoundedRect * gsk_outset_shadow_node_peek_outline (GskRenderNode *node); Retrieves the outline rectangle of the outset shadow. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns a rounded rectangle. [transfer none] gsk_outset_shadow_node_peek_color () gsk_outset_shadow_node_peek_color const GdkRGBA * gsk_outset_shadow_node_peek_color (GskRenderNode *node); Retrieves the color of the outset shadow. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns a color. [transfer none] gsk_outset_shadow_node_get_dx () gsk_outset_shadow_node_get_dx float gsk_outset_shadow_node_get_dx (GskRenderNode *node); Retrieves the horizontal offset of the outset shadow. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns an offset, in pixels gsk_outset_shadow_node_get_dy () gsk_outset_shadow_node_get_dy float gsk_outset_shadow_node_get_dy (GskRenderNode *node); Retrieves the vertical offset of the outset shadow. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns an offset, in pixels gsk_outset_shadow_node_get_spread () gsk_outset_shadow_node_get_spread float gsk_outset_shadow_node_get_spread (GskRenderNode *node); Retrieves how much the shadow spreads outwards. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns the size of the shadow, in pixels gsk_outset_shadow_node_get_blur_radius () gsk_outset_shadow_node_get_blur_radius float gsk_outset_shadow_node_get_blur_radius (GskRenderNode *node); Retrieves the blur radius of the shadow. Parameters node a GskRenderNode for an outset shadow. [type GskOutsetShadowNode] Returns the blur radius, in pixels 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. [transfer full][type GskCairoNode] 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 GskRenderNode for a Cairo surface. [type GskCairoNode] 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); Retrieves the Cairo surface used by the render node. Parameters node a GskRenderNode for a Cairo surface. [type GskCairoNode] Returns a Cairo surface. [transfer none] 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][type GskContainerNode] 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. [type GskContainerNode] 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. [type GskContainerNode] idx the position of the child to get Returns the idx 'th child of container . [transfer none] 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. [transfer full][type GskTransformNode] 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 GskRenderNode for a transform. [type GskTransformNode] 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); Retrieves the GskTransform used by the node . Parameters node a GskRenderNode for a transform. [type GskTransformNode] Returns a GskTransform. [transfer none] 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. [transfer full][type GskOpacityNode] 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 a GskRenderNode for an opacity. [type GskOpacityNode] 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); Gets the transparency factor for an opacity node. Parameters node a GskRenderNode for an opacity. [type GskOpacityNode] Returns the opacity factor 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 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. [transfer full][type GskColorMatrixNode] 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. [type GskColorMatrixNode] 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); Retrieves the color matrix used by the node . Parameters node a color matrix GskRenderNode. [type GskColorMatrixNode] Returns a 4x4 color matrix 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); Retrieves the color offset used by the node . Parameters node a color matrix GskRenderNode. [type GskColorMatrixNode] Returns a color vector 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. [transfer full][type GskRepeatNode] gsk_repeat_node_get_child () gsk_repeat_node_get_child GskRenderNode * gsk_repeat_node_get_child (GskRenderNode *node); Retrieves the child of node . Parameters node a repeat GskRenderNode. [type GskRepeatNode] Returns a GskRenderNode. [transfer none] gsk_repeat_node_peek_child_bounds () gsk_repeat_node_peek_child_bounds const graphene_rect_t * gsk_repeat_node_peek_child_bounds (GskRenderNode *node); Retrieves the bounding rectangle of the child of node . Parameters node a repeat GskRenderNode. [type GskRepeatNode] Returns a bounding rectangle. [transfer none] 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. [transfer full][type GskClipNode] 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 . [type GskClipNode] 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); Retrieves the clip rectangle for node . Parameters node a GskClipNode. [type GskClipNode] Returns a clip rectangle 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. [transfer none][type GskRoundedClipNode] 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 rounded clip GskRenderNode. [type GskRoundedClipNode] 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); Retrievs the rounded rectangle used to clip the contents of the node . Parameters node a rounded clip GskRenderNode. [type GskRoundedClipNode] Returns a rounded rectangle. [transfer none] 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. [transfer full][type GskShadowNode] gsk_shadow_node_peek_shadow () gsk_shadow_node_peek_shadow const GskShadow * gsk_shadow_node_peek_shadow (GskRenderNode *node, gsize i); Retrieves the shadow data at the given index i . Parameters node a shadow GskRenderNode. [type GskShadowNode] i the given index Returns the shadow data. [transfer none] gsk_shadow_node_get_n_shadows () gsk_shadow_node_get_n_shadows gsize gsk_shadow_node_get_n_shadows (GskRenderNode *node); Retrieves the number of shadows in the node . Parameters node a shadow GskRenderNode. [type GskShadowNode] Returns the number of shadows. gsk_shadow_node_get_child () gsk_shadow_node_get_child GskRenderNode * gsk_shadow_node_get_child (GskRenderNode *node); Retrieves the child GskRenderNode of the shadow node . Parameters node a shadow GskRenderNode. [type GskShadowNode] Returns the child render node. [transfer none] 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. [transfer full][type GskBlendNode] gsk_blend_node_get_bottom_child () gsk_blend_node_get_bottom_child GskRenderNode * gsk_blend_node_get_bottom_child (GskRenderNode *node); Retrieves the bottom GskRenderNode child of the node . Parameters node a blending GskRenderNode. [type GskBlendNode] Returns the bottom child node. [transfer none] gsk_blend_node_get_top_child () gsk_blend_node_get_top_child GskRenderNode * gsk_blend_node_get_top_child (GskRenderNode *node); Retrieves the top GskRenderNode child of the node . Parameters node a blending GskRenderNode. [type GskBlendNode] Returns the top child node. [transfer none] gsk_blend_node_get_blend_mode () gsk_blend_node_get_blend_mode GskBlendMode gsk_blend_node_get_blend_mode (GskRenderNode *node); Retrieves the blend mode used by node . Parameters node a blending GskRenderNode. [type GskBlendNode] Returns the blend mode 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. [transfer full][type GskCrossFadeNode] gsk_cross_fade_node_get_start_child () gsk_cross_fade_node_get_start_child GskRenderNode * gsk_cross_fade_node_get_start_child (GskRenderNode *node); Retrieves the child GskRenderNode at the beginning of the cross-fade. Parameters node a cross-fading GskRenderNode. [type GskCrossFadeNode] Returns a GskRenderNode. [transfer none] gsk_cross_fade_node_get_end_child () gsk_cross_fade_node_get_end_child GskRenderNode * gsk_cross_fade_node_get_end_child (GskRenderNode *node); Retrieves the child GskRenderNode at the end of the cross-fade. Parameters node a cross-fading GskRenderNode. [type GskCrossFadeNode] Returns a GskRenderNode. [transfer none] gsk_cross_fade_node_get_progress () gsk_cross_fade_node_get_progress float gsk_cross_fade_node_get_progress (GskRenderNode *node); Retrieves the progress value of the cross fade. Parameters node a cross-fading GskRenderNode. [type GskCrossFadeNode] Returns the progress value, between 0 and 1 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 GskRenderNode. [nullable][transfer full][type GskTextNode] 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. [type GskTextNode] Returns the font. [transfer none] gsk_text_node_peek_glyphs () gsk_text_node_peek_glyphs const PangoGlyphInfo * gsk_text_node_peek_glyphs (GskRenderNode *node, guint *n_glyphs); Retrieves the glyph information in the node . Parameters node a text GskRenderNode. [type GskTextNode] n_glyphs the number of glyphs returned. [out][optional] Returns the glyph information. [transfer none][array length=n_glyphs] gsk_text_node_peek_color () gsk_text_node_peek_color const GdkRGBA * gsk_text_node_peek_color (GskRenderNode *node); Retrieves the color used by the text node . Parameters node a text GskRenderNode. [type GskTextNode] Returns the text color. [transfer none] gsk_text_node_has_color_glyphs () gsk_text_node_has_color_glyphs gboolean gsk_text_node_has_color_glyphs (GskRenderNode *node); Checks whether the text node has color glyphs. Parameters node a text GskRenderNode. [type GskTextNode] Returns TRUE if the text node has color glyphs gsk_text_node_get_num_glyphs () gsk_text_node_get_num_glyphs guint gsk_text_node_get_num_glyphs (GskRenderNode *node); Retrieves the number of glyphs in the text node. Parameters node a text GskRenderNode. [type GskTextNode] Returns the number of glyphs gsk_text_node_get_offset () gsk_text_node_get_offset const graphene_point_t * gsk_text_node_get_offset (GskRenderNode *node); Retrieves the offset applied to the text. Parameters node a text GskRenderNode. [type GskTextNode] Returns a point with the horizontal and vertical offsets. [transfer none] 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 Returns a new GskRenderNode. [transfer full][type GskBlurNode] gsk_blur_node_get_child () gsk_blur_node_get_child GskRenderNode * gsk_blur_node_get_child (GskRenderNode *node); Retrieves the child GskRenderNode of the blur node . Parameters node a blur GskRenderNode. [type GskBlurNode] Returns the blurred child node. [transfer none] gsk_blur_node_get_radius () gsk_blur_node_get_radius float gsk_blur_node_get_radius (GskRenderNode *node); Retrieves the blur radius of the node . Parameters node a blur GskRenderNode. [type GskBlurNode] Returns the blur radius 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. [transfer full][type GskDebugNode] 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 drawn by the given node . Parameters node a debug GskRenderNode. [type GskDebugNode] Returns the child GskRenderNode. [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. [type GskDebugNode] Returns The debug message. [transfer none] Types and Values GskRenderNode GskRenderNode typedef struct _GskRenderNode GskRenderNode; A node in the render tree. GskBlendNode GskBlendNode typedef struct _GskBlendNode GskBlendNode; GskBlurNode GskBlurNode typedef struct _GskBlurNode GskBlurNode; GskBorderNode GskBorderNode typedef struct _GskBorderNode GskBorderNode; GskCairoNode GskCairoNode typedef struct _GskCairoNode GskCairoNode; GskClipNode GskClipNode typedef struct _GskClipNode GskClipNode; GskColorMatrixNode GskColorMatrixNode typedef struct _GskColorMatrixNode GskColorMatrixNode; GskColorNode GskColorNode typedef struct _GskColorNode GskColorNode; GskContainerNode GskContainerNode typedef struct _GskContainerNode GskContainerNode; GskCrossFadeNode GskCrossFadeNode typedef struct _GskCrossFadeNode GskCrossFadeNode; GskDebugNode GskDebugNode typedef struct _GskDebugNode GskDebugNode; GskInsetShadowNode GskInsetShadowNode typedef struct _GskInsetShadowNode GskInsetShadowNode; GskLinearGradientNode GskLinearGradientNode typedef struct _GskLinearGradientNode GskLinearGradientNode; GskOpacityNode GskOpacityNode typedef struct _GskOpacityNode GskOpacityNode; GskOutsetShadowNode GskOutsetShadowNode typedef struct _GskOutsetShadowNode GskOutsetShadowNode; GskRepeatingLinearGradientNode GskRepeatingLinearGradientNode typedef struct _GskRepeatingLinearGradientNode GskRepeatingLinearGradientNode; GskRepeatNode GskRepeatNode typedef struct _GskRepeatNode GskRepeatNode; GskRoundedClipNode GskRoundedClipNode typedef struct _GskRoundedClipNode GskRoundedClipNode; GskShadowNode GskShadowNode typedef struct _GskShadowNode GskShadowNode; GskTextNode GskTextNode typedef struct _GskTextNode GskTextNode; GskTextureNode GskTextureNode typedef struct _GskTextureNode GskTextureNode; GskTransformNode GskTransformNode typedef struct _GskTransformNode GskTransformNode; enum GskRenderNodeType GskRenderNodeType The type of a node determines what the node is rendering. Members GSK_NOT_A_RENDER_NODE Error type. No node will ever have this type. GSK_CONTAINER_NODE A node containing a stack of children GSK_CAIRO_NODE A node drawing a cairo_surface_t GSK_COLOR_NODE A node drawing a single color rectangle GSK_LINEAR_GRADIENT_NODE A node drawing a linear gradient GSK_REPEATING_LINEAR_GRADIENT_NODE A node drawing a repeating linear gradient GSK_BORDER_NODE A node stroking a border around an area GSK_TEXTURE_NODE A node drawing a GdkTexture GSK_INSET_SHADOW_NODE A node drawing an inset shadow GSK_OUTSET_SHADOW_NODE A node drawing an outset shadow GSK_TRANSFORM_NODE A node that renders its child after applying a matrix transform GSK_OPACITY_NODE A node that changes the opacity of its child GSK_COLOR_MATRIX_NODE A node that applies a color matrix to every pixel GSK_REPEAT_NODE A node that repeats the child's contents GSK_CLIP_NODE A node that clips its child to a rectangular area GSK_ROUNDED_CLIP_NODE A node that clips its child to a rounded rectangle GSK_SHADOW_NODE A node that draws a shadow below its child GSK_BLEND_NODE A node that blends two children together GSK_CROSS_FADE_NODE A node that cross-fades between two children GSK_TEXT_NODE A node containing a glyph string GSK_BLUR_NODE A node that applies a blur GSK_DEBUG_NODE Debug information that does not affect the rendering enum GskSerializationError GskSerializationError Errors that can happen during (de)serialization. Members GSK_SERIALIZATION_UNSUPPORTED_FORMAT The format can not be identified GSK_SERIALIZATION_UNSUPPORTED_VERSION The version of the data is not understood GSK_SERIALIZATION_INVALID_DATA The given data may not exist in a proper serialization enum GskScalingFilter GskScalingFilter The filters used when scaling texture data. The actual implementation of each filter is deferred to the rendering pipeline. Members GSK_SCALING_FILTER_LINEAR linear interpolation filter GSK_SCALING_FILTER_NEAREST nearest neighbor interpolation filter GSK_SCALING_FILTER_TRILINEAR linear interpolation along each axis, plus mipmap generation, with linear interpolation along the mipmap levels struct GskColorStop GskColorStop struct GskColorStop { float offset; GdkRGBA color; }; struct GskShadow GskShadow struct GskShadow { GdkRGBA color; float dx; float dy; float radius; }; enum GskBlendMode GskBlendMode The blend modes available for render nodes. The implementation of each blend mode is deferred to the rendering pipeline. See https://www.w3.org/TR/compositing-1/blending for more information on blending and blend modes. Members GSK_BLEND_MODE_DEFAULT The default blend mode, which specifies no blending GSK_BLEND_MODE_MULTIPLY The source color is multiplied by the destination and replaces the destination GSK_BLEND_MODE_SCREEN Multiplies the complements of the destination and source color values, then complements the result. GSK_BLEND_MODE_OVERLAY Multiplies or screens the colors, depending on the destination color value. This is the inverse of hard-list GSK_BLEND_MODE_DARKEN Selects the darker of the destination and source colors GSK_BLEND_MODE_LIGHTEN Selects the lighter of the destination and source colors GSK_BLEND_MODE_COLOR_DODGE Brightens the destination color to reflect the source color GSK_BLEND_MODE_COLOR_BURN Darkens the destination color to reflect the source color GSK_BLEND_MODE_HARD_LIGHT Multiplies or screens the colors, depending on the source color value GSK_BLEND_MODE_SOFT_LIGHT Darkens or lightens the colors, depending on the source color value GSK_BLEND_MODE_DIFFERENCE Subtracts the darker of the two constituent colors from the lighter color GSK_BLEND_MODE_EXCLUSION Produces an effect similar to that of the difference mode but lower in contrast GSK_BLEND_MODE_COLOR Creates a color with the hue and saturation of the source color and the luminosity of the destination color GSK_BLEND_MODE_HUE Creates a color with the hue of the source color and the saturation and luminosity of the destination color GSK_BLEND_MODE_SATURATION Creates a color with the saturation of the source color and the hue and luminosity of the destination color GSK_BLEND_MODE_LUMINOSITY Creates a color with the luminosity of the source color and the hue and saturation of the destination color build/docs/reference/gsk/xml/GskRoundedRect.xml0000664000175000017500000010014313724234625021673 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 rectangle 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 Types and Values enum GskCorner GskCorner The corner indices used by GskRoundedRect. Members GSK_CORNER_TOP_LEFT The top left corner GSK_CORNER_TOP_RIGHT The top right corner GSK_CORNER_BOTTOM_RIGHT The bottom right corner GSK_CORNER_BOTTOM_LEFT The bottom left corner struct GskRoundedRect GskRoundedRect struct GskRoundedRect { graphene_rect_t bounds; graphene_size_t corner[4]; }; A rectangular region with rounded corners. Application code should normalize rectangles using gsk_rounded_rect_normalize(); this function will ensure that the bounds of the rectangle are normalized and ensure that the corner values are positive and the corners do not overlap. All functions taking a GskRoundedRect as an argument will internally operate on a normalized copy; all functions returning a GskRoundedRect will always return a normalized one. Members graphene_rect_t bounds; the bounds of the rectangle graphene_size_t corner[4]; the size of the 4 rounded corners build/docs/reference/gsk/xml/GskTransform.xml0000664000175000017500000016243213724234625021441 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_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 transform 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 transform 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 transform by Returns The new transform 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 transform by Returns The new transform 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 transform 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 transform 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 transform 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 transform 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 transform gsk_transform_equal () gsk_transform_equal gboolean gsk_transform_equal (GskTransform *first, GskTransform *second); Checks two transforms for equality. Parameters first the first transform second the second transform Returns TRUE if the two transforms perform the same operation. 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] Types and Values GskTransform GskTransform typedef struct _GskTransform GskTransform; The GskTransform structure contains only private data. enum GskTransformCategory GskTransformCategory The categories of matrices relevant for GSK and GTK. Note that any category includes matrices of all later categories. So if you want to for example check if a matrix is a 2D matrix, category &gt;= GSK_TRANSFORM_CATEGORY_2D is the way to do this. Also keep in mind that rounding errors may cause matrices to not conform to their categories. Otherwise, matrix operations done via mutliplication will not worsen categories. So for the matrix multiplication C = A * B, category(C) = MIN (category(A), category(B)). Members GSK_TRANSFORM_CATEGORY_UNKNOWN The category of the matrix has not been determined. GSK_TRANSFORM_CATEGORY_ANY Analyzing the matrix concluded that it does not fit in any other category. GSK_TRANSFORM_CATEGORY_3D The matrix is a 3D matrix. This means that the w column (the last column) has the values (0, 0, 0, 1). GSK_TRANSFORM_CATEGORY_2D The matrix is a 2D matrix. This is equivalent to graphene_matrix_is_2d() returning TRUE. In particular, this means that Cairo can deal with the matrix. GSK_TRANSFORM_CATEGORY_2D_AFFINE The matrix is a combination of 2D scale and 2D translation operations. In particular, this means that any rectangle can be transformed exactly using this matrix. GSK_TRANSFORM_CATEGORY_2D_TRANSLATE The matrix is a 2D translation. GSK_TRANSFORM_CATEGORY_IDENTITY The matrix is the identity matrix. build/docs/reference/gsk/xml/gsk4-doc.top0000664000175000017500000000000013724234625020414 0ustar mclasenmclasenbuild/docs/reference/gsk/xml/gsk4-doc.bottom0000664000175000017500000000027213724234625021131 0ustar mclasenmclasen build/docs/reference/gsk/xml/tree_index.sgml0000664000175000017500000000100113724234625021271 0ustar mclasenmclasen ]> GObject ╰── GskRenderer GskRenderNode build/docs/reference/gsk/xml/object_index.sgml0000664000175000017500000000123413724234625021610 0ustar mclasenmclasen ]> GObject GskRenderNode GskRenderer build/docs/reference/gsk/xml/api-index-full.xml0000664000175000017500000011141213724234625021627 0ustar mclasenmclasen ]> B GskBlendMode, enum in GskRenderNode GskBlendNode, struct 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 GskBlurNode, struct 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 GskBorderNode, struct 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 GskCairoNode, struct in GskRenderNode 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 GskClipNode, struct in GskRenderNode gsk_clip_node_get_child, function in GskRenderNode gsk_clip_node_new, function in GskRenderNode gsk_clip_node_peek_clip, function in GskRenderNode GskColorMatrixNode, struct in GskRenderNode GskColorNode, struct in GskRenderNode GskColorStop, struct 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 GskContainerNode, struct 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 GskCrossFadeNode, struct in GskRenderNode 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 GskDebugNode, struct in GskRenderNode 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 GskInsetShadowNode, struct in GskRenderNode 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 GskLinearGradientNode, struct in GskRenderNode 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 GskOpacityNode, struct in GskRenderNode gsk_opacity_node_get_child, function in GskRenderNode gsk_opacity_node_get_opacity, function in GskRenderNode gsk_opacity_node_new, function in GskRenderNode GskOutsetShadowNode, struct 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, struct in GskRenderer 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 GskRenderNode, struct in GskRenderNode 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 GskRepeatingLinearGradientNode, struct in GskRenderNode gsk_repeating_linear_gradient_node_new, function in GskRenderNode GskRepeatNode, struct 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 GskRoundedClipNode, struct 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 GskShadowNode, 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 GskTextNode, struct in GskRenderNode GskTextureNode, struct in GskRenderNode 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_has_color_glyphs, 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 GskTransformNode, struct in GskRenderNode 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_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 build/docs/reference/gsk/xml/api-index-deprecated.xml0000664000175000017500000000052613724234625022770 0ustar mclasenmclasen ]> build/docs/reference/gsk/xml/annotation-glossary.xml0000664000175000017500000000610513724234625023026 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 optional NULL may be passed instead of a pointer to a location. 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. type Override the parsed C type with given type. build/docs/reference/gsk/gsk4-undocumented.txt0000664000175000017500000000075113724234625021573 0ustar mclasenmclasen86% symbol docs coverage. 152 symbols documented. 2 symbols incomplete. 24 not documented. GskBlendNode GskBlurNode GskBorderNode GskCairoNode GskClipNode GskColorMatrixNode GskColorNode GskColorStop () GskContainerNode GskCrossFadeNode GskDebugNode GskInsetShadowNode GskLinearGradientNode GskOpacityNode GskOutsetShadowNode GskRenderer GskRepeatNode GskRepeatingLinearGradientNode GskRoundedClipNode GskShadow () GskShadowNode GskTextNode GskTextureNode GskTransformNode build/docs/reference/gsk/gsk4-undeclared.txt0000664000175000017500000000000013724234625021172 0ustar mclasenmclasenbuild/docs/reference/gsk/gsk4-unused.txt0000664000175000017500000002361413724234625020407 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_DRIVER GSK_TYPE_GL_PROFILER GSK_TYPE_GL_RENDERER GSK_TYPE_RENDER_NODE_TYPE GSK_TYPE_VULKAN_BLEND_MODE_PIPELINE GSK_TYPE_VULKAN_BLUR_PIPELINE GSK_TYPE_VULKAN_BORDER_PIPELINE GSK_TYPE_VULKAN_BOX_SHADOW_PIPELINE GSK_TYPE_VULKAN_COLOR_PIPELINE GSK_TYPE_VULKAN_COLOR_TEXT_PIPELINE GSK_TYPE_VULKAN_CROSS_FADE_PIPELINE GSK_TYPE_VULKAN_EFFECT_PIPELINE GSK_TYPE_VULKAN_GLYPH_CACHE GSK_TYPE_VULKAN_IMAGE GSK_TYPE_VULKAN_LINEAR_GRADIENT_PIPELINE GSK_TYPE_VULKAN_PIPELINE GSK_TYPE_VULKAN_RENDERER GSK_TYPE_VULKAN_TEXTURE_PIPELINE GSK_TYPE_VULKAN_TEXT_PIPELINE GSK_VK_CHECK GSK_VULKAN_LINEAR_GRADIENT_PIPELINE_MAX_COLOR_STOPS GSK_VULKAN_RENDERER GSK_VULKAN_RENDERER_CLASS GSK_VULKAN_RENDERER_GET_CLASS GST_VULKAN_SHADER_STAGE_CREATE_INFO GlyphCacheKey GskBroadwayRenderer GskBroadwayRendererClass GskCairoRenderer GskCairoRendererClass GskDeleteFunc GskDiffResult GskDiffSettings GskGLCachedGlyph GskGLDriver GskGLProfiler GskGLRenderer GskGLRendererClass GskGLRendererPrograms GskGLTextureAtlas GskGLTextureAtlases GskImageRegion GskInsertFunc GskKeepFunc GskQuadVertex GskVulkanBlendModePipeline GskVulkanBlendModePipelineLayout GskVulkanBlurPipeline GskVulkanBlurPipelineLayout GskVulkanBorderPipeline GskVulkanBorderPipelineLayout GskVulkanBoxShadowPipeline GskVulkanBoxShadowPipelineLayout GskVulkanBuffer GskVulkanClip GskVulkanClipComplexity GskVulkanColorPipeline GskVulkanColorPipelineLayout GskVulkanColorTextPipeline GskVulkanColorTextPipelineLayout GskVulkanCommandPool GskVulkanCrossFadePipeline GskVulkanCrossFadePipelineLayout GskVulkanEffectPipeline GskVulkanEffectPipelineLayout GskVulkanGlyphCache GskVulkanImage GskVulkanLinearGradientPipeline GskVulkanLinearGradientPipelineLayout GskVulkanMemory GskVulkanPipeline GskVulkanPipelineClass GskVulkanPipelineType GskVulkanPushConstants GskVulkanRenderer GskVulkanRendererClass GskVulkanShader GskVulkanShaderType GskVulkanTextPipeline GskVulkanTextPipelineLayout GskVulkanTexturePipeline GskVulkanTexturePipelineLayout GskVulkanUploader MAX_GRADIENT_STOPS NINE_SLICE_SIZE N_NODE_TYPES OpKind OpShadow PHASE Program SANITY_CHECKS STBRP_DEF STB_RECT_PACK_VERSION TextureSlice glyph_cache_key_set_glyph_and_shift graphene_size_non_zero gsk_diff gsk_diff_settings_free gsk_diff_settings_new gsk_diff_settings_set_allow_abort gsk_gl_driver_begin_frame gsk_gl_driver_bind_source_texture gsk_gl_driver_collect_textures gsk_gl_driver_create_render_target gsk_gl_driver_create_texture gsk_gl_driver_destroy_texture gsk_gl_driver_end_frame gsk_gl_driver_get_gl_context gsk_gl_driver_get_max_texture_size gsk_gl_driver_get_texture_for_pointer gsk_gl_driver_get_texture_for_texture gsk_gl_driver_in_frame gsk_gl_driver_init_texture_empty gsk_gl_driver_init_texture_with_surface gsk_gl_driver_mark_texture_permanent gsk_gl_driver_new gsk_gl_driver_set_texture_for_pointer gsk_gl_driver_slice_texture 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_profiler_begin_gpu_region gsk_gl_profiler_end_gpu_region gsk_gl_profiler_new 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_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_border_pipeline_collect_vertex_data gsk_vulkan_border_pipeline_count_vertex_data gsk_vulkan_border_pipeline_draw gsk_vulkan_border_pipeline_new gsk_vulkan_box_shadow_pipeline_collect_vertex_data gsk_vulkan_box_shadow_pipeline_count_vertex_data gsk_vulkan_box_shadow_pipeline_draw gsk_vulkan_box_shadow_pipeline_new gsk_vulkan_buffer_free gsk_vulkan_buffer_get_buffer gsk_vulkan_buffer_map gsk_vulkan_buffer_new gsk_vulkan_buffer_new_download gsk_vulkan_buffer_new_staging gsk_vulkan_buffer_unmap gsk_vulkan_clip_contains_rect gsk_vulkan_clip_init_empty gsk_vulkan_clip_intersect_rect gsk_vulkan_clip_intersect_rounded_rect gsk_vulkan_clip_transform gsk_vulkan_color_pipeline_collect_vertex_data gsk_vulkan_color_pipeline_count_vertex_data gsk_vulkan_color_pipeline_draw gsk_vulkan_color_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_command_pool_free gsk_vulkan_command_pool_get_buffer gsk_vulkan_command_pool_new gsk_vulkan_command_pool_reset gsk_vulkan_command_pool_submit_buffer 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_effect_pipeline_collect_vertex_data gsk_vulkan_effect_pipeline_count_vertex_data gsk_vulkan_effect_pipeline_draw gsk_vulkan_effect_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_handle_result gsk_vulkan_image_download gsk_vulkan_image_get_height gsk_vulkan_image_get_image gsk_vulkan_image_get_image_view gsk_vulkan_image_get_width gsk_vulkan_image_new_for_atlas gsk_vulkan_image_new_for_framebuffer gsk_vulkan_image_new_for_swapchain gsk_vulkan_image_new_for_texture gsk_vulkan_image_new_from_data gsk_vulkan_image_upload_regions gsk_vulkan_linear_gradient_pipeline_collect_vertex_data gsk_vulkan_linear_gradient_pipeline_count_vertex_data gsk_vulkan_linear_gradient_pipeline_draw gsk_vulkan_linear_gradient_pipeline_new gsk_vulkan_memory_free gsk_vulkan_memory_get_device_memory gsk_vulkan_memory_map gsk_vulkan_memory_new gsk_vulkan_memory_unmap gsk_vulkan_pipeline_get_pipeline gsk_vulkan_pipeline_get_pipeline_layout gsk_vulkan_pipeline_new gsk_vulkan_pipeline_new_full gsk_vulkan_push_constants_get_range_count gsk_vulkan_push_constants_get_ranges gsk_vulkan_push_constants_init gsk_vulkan_push_constants_init_copy gsk_vulkan_push_constants_intersect_rect gsk_vulkan_push_constants_intersect_rounded gsk_vulkan_push_constants_push gsk_vulkan_push_constants_transform gsk_vulkan_render_add_cleanup_image gsk_vulkan_render_add_node gsk_vulkan_render_add_render_pass gsk_vulkan_render_download_target gsk_vulkan_render_draw gsk_vulkan_render_free gsk_vulkan_render_get_descriptor_set gsk_vulkan_render_get_framebuffer gsk_vulkan_render_get_pipeline gsk_vulkan_render_get_renderer gsk_vulkan_render_is_busy gsk_vulkan_render_new gsk_vulkan_render_pass_add gsk_vulkan_render_pass_draw gsk_vulkan_render_pass_free gsk_vulkan_render_pass_get_signal_semaphores gsk_vulkan_render_pass_get_wait_semaphores gsk_vulkan_render_pass_new gsk_vulkan_render_pass_reserve_descriptor_sets gsk_vulkan_render_pass_upload gsk_vulkan_render_reserve_descriptor_set gsk_vulkan_render_reset gsk_vulkan_render_submit gsk_vulkan_render_upload gsk_vulkan_renderer_cache_glyph gsk_vulkan_renderer_get_cached_glyph gsk_vulkan_renderer_get_type gsk_vulkan_renderer_ref_glyph_image gsk_vulkan_renderer_ref_texture_image gsk_vulkan_shader_free gsk_vulkan_shader_get_module gsk_vulkan_shader_get_type gsk_vulkan_shader_new_from_resource 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 gsk_vulkan_uploader_free gsk_vulkan_uploader_new gsk_vulkan_uploader_reset gsk_vulkan_uploader_upload nine_slice_grow nine_slice_rounded_rect nine_slice_to_texture_coords 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_inset_shadow ops_set_linear_gradient ops_set_modelview ops_set_opacity ops_set_program ops_set_projection ops_set_render_target ops_set_texture ops_set_unblurred_outset_shadow ops_set_viewport ops_transform_bounds_modelview rect_contains_point rounded_rect_bottom_left rounded_rect_bottom_right rounded_rect_corner rounded_rect_corner0 rounded_rect_corner1 rounded_rect_corner2 rounded_rect_corner3 rounded_rect_has_corner rounded_rect_top_left rounded_rect_top_right stbrp_context stbrp_coord stbrp_node stbrp_rect build/docs/reference/gsk/sgml.stamp0000664000175000017500000000001113724234625017467 0ustar mclasenmclasentimestampbuild/docs/reference/gsk/html.stamp0000664000175000017500000000001113724235174017471 0ustar mclasenmclasentimestampbuild/docs/reference/gsk/html/0000775000175000017500000000000013724235174016433 5ustar mclasenmclasenbuild/docs/reference/gsk/html/gsk4.devhelp20000664000175000017500000006457113724235174020753 0ustar mclasenmclasen build/docs/reference/gsk/html/home.png0000664000175000017500000000040013724235174020063 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`build/docs/reference/gsk/html/left-insensitive.png0000664000175000017500000000061313724235174022431 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`build/docs/reference/gsk/html/left.png0000664000175000017500000000040613724235174020073 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME,`m;IDAT8үa?DAPY\$[p+IIMlf('}Mpy{_ޥ}^q xZ <=Yj) <04\~+Pl#",Qϑp Iǐlsw>[/]_i03IENDB`build/docs/reference/gsk/html/right-insensitive.png0000664000175000017500000000056513724235174022622 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`build/docs/reference/gsk/html/right.png0000664000175000017500000000040513724235174020255 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIME!GIDAT8үa?MIdEr,-hAIl ry}sX6 !9#D r$-Br$G"$;WZ&!cq \`軀O=QoufIENDB`build/docs/reference/gsk/html/up-insensitive.png0000664000175000017500000000056613724235174022132 0ustar mclasenmclasenPNG  IHDRabKGD pHYs B(xtIMEwIIDAT8?/Qϙ?[u$VHTDۈBM+! 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 */build/docs/reference/gsk/html/GskRenderNode.html0000664000175000017500000066237213724235174022033 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 ()
gboolean gsk_text_node_has_color_glyphs ()
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 ()

Object Hierarchy

    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

node

a GskRenderNode.

[transfer full]

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.

[transfer full][type GskColorNode]


gsk_color_node_peek_color ()

const GdkRGBA *
gsk_color_node_peek_color (GskRenderNode *node);

Retrieves the color of the given node .

Parameters

node

a GskColorNode.

[type GskColorNode]

Returns

the color of the node.

[transfer none]


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.

[transfer full][type GskTextureNode]


gsk_texture_node_get_texture ()

GdkTexture *
gsk_texture_node_get_texture (GskRenderNode *node);

Retrieves the GdkTexture used when creating this GskRenderNode.

Parameters

node

a GskRenderNode of type GSK_TEXTURE_NODE.

[type GskTextureNode]

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.

[transfer full][type GskLinearGradientNode]


gsk_linear_gradient_node_peek_start ()

const graphene_point_t *
gsk_linear_gradient_node_peek_start (GskRenderNode *node);

Retrieves the initial point of the linear gradient.

Parameters

node

a GskRenderNode for a linear gradient.

[type GskLinearGradientNode]

Returns

the initial point.

[transfer none]


gsk_linear_gradient_node_peek_end ()

const graphene_point_t *
gsk_linear_gradient_node_peek_end (GskRenderNode *node);

Retrieves the final point of the linear gradient.

Parameters

node

a GskRenderNode for a linear gradient.

[type GskLinearGradientNode]

Returns

the final point.

[transfer none]


gsk_linear_gradient_node_get_n_color_stops ()

gsize
gsk_linear_gradient_node_get_n_color_stops
                               (GskRenderNode *node);

Retrieves the number of color stops in the gradient.

Parameters

node

a GskRenderNode for a linear gradient.

[type GskLinearGradientNode]

Returns

the number of color stops


gsk_linear_gradient_node_peek_color_stops ()

const GskColorStop *
gsk_linear_gradient_node_peek_color_stops
                               (GskRenderNode *node,
                                gsize *n_stops);

Retrieves the color stops in the gradient.

Parameters

node

a GskRenderNode for a linear gradient.

[type GskLinearGradientNode]

n_stops

the number of color stops in the returned array.

[out][optional]

Returns

the color stops in the gradient.

[array length=n_stops]


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.

[transfer full][type GskRepeatingLinearGradientNode]


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.

[transfer full][type GskBorderNode]


gsk_border_node_peek_outline ()

const GskRoundedRect *
gsk_border_node_peek_outline (GskRenderNode *node);

Retrieves the outline of the border.

Parameters

node

a GskRenderNode for a border.

[type GskBorderNode]

Returns

the outline of the border


gsk_border_node_peek_widths ()

const float *
gsk_border_node_peek_widths (GskRenderNode *node);

Retrieves the stroke widths of the border.

Parameters

node

a GskRenderNode for a border.

[type GskBorderNode]

Returns

an array of 4 floats for the top, right, bottom and left stroke width of the border.

[transfer none]


gsk_border_node_peek_colors ()

const GdkRGBA *
gsk_border_node_peek_colors (GskRenderNode *node);

Retrieves the colors of the border.

Parameters

node

a GskRenderNode for a border.

[type GskBorderNode]

Returns

an array of 4 GdkRGBA structs for the top, right, bottom and left color of the border.

[transfer none]


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.

[transfer full][type GskInsetShadowNode]


gsk_inset_shadow_node_peek_outline ()

const GskRoundedRect *
gsk_inset_shadow_node_peek_outline (GskRenderNode *node);

Retrieves the outline rectangle of the inset shadow.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

a rounded rectangle.

[transfer none]


gsk_inset_shadow_node_peek_color ()

const GdkRGBA *
gsk_inset_shadow_node_peek_color (GskRenderNode *node);

Retrieves the color of the inset shadow.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

the color of the shadow.

[transfer none]


gsk_inset_shadow_node_get_dx ()

float
gsk_inset_shadow_node_get_dx (GskRenderNode *node);

Retrieves the horizontal offset of the inset shadow.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

an offset, in pixels


gsk_inset_shadow_node_get_dy ()

float
gsk_inset_shadow_node_get_dy (GskRenderNode *node);

Retrieves the vertical offset of the inset shadow.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

an offset, in pixels


gsk_inset_shadow_node_get_spread ()

float
gsk_inset_shadow_node_get_spread (GskRenderNode *node);

Retrieves how much the shadow spreads inwards.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

the size of the shadow, in pixels


gsk_inset_shadow_node_get_blur_radius ()

float
gsk_inset_shadow_node_get_blur_radius (GskRenderNode *node);

Retrieves the blur radius to apply to the shadow.

Parameters

node

a GskRenderNode for an inset shadow.

[type GskInsetShadowNode]

Returns

the blur radius, in pixels


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.

[transfer full][type GskOutsetShadowNode]


gsk_outset_shadow_node_peek_outline ()

const GskRoundedRect *
gsk_outset_shadow_node_peek_outline (GskRenderNode *node);

Retrieves the outline rectangle of the outset shadow.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

a rounded rectangle.

[transfer none]


gsk_outset_shadow_node_peek_color ()

const GdkRGBA *
gsk_outset_shadow_node_peek_color (GskRenderNode *node);

Retrieves the color of the outset shadow.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

a color.

[transfer none]


gsk_outset_shadow_node_get_dx ()

float
gsk_outset_shadow_node_get_dx (GskRenderNode *node);

Retrieves the horizontal offset of the outset shadow.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

an offset, in pixels


gsk_outset_shadow_node_get_dy ()

float
gsk_outset_shadow_node_get_dy (GskRenderNode *node);

Retrieves the vertical offset of the outset shadow.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

an offset, in pixels


gsk_outset_shadow_node_get_spread ()

float
gsk_outset_shadow_node_get_spread (GskRenderNode *node);

Retrieves how much the shadow spreads outwards.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

the size of the shadow, in pixels


gsk_outset_shadow_node_get_blur_radius ()

float
gsk_outset_shadow_node_get_blur_radius
                               (GskRenderNode *node);

Retrieves the blur radius of the shadow.

Parameters

node

a GskRenderNode for an outset shadow.

[type GskOutsetShadowNode]

Returns

the blur radius, in pixels


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.

[transfer full][type GskCairoNode]


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 GskRenderNode for a Cairo surface.

[type GskCairoNode]

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);

Retrieves the Cairo surface used by the render node.

Parameters

node

a GskRenderNode for a Cairo surface.

[type GskCairoNode]

Returns

a Cairo surface.

[transfer none]


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][type GskContainerNode]


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.

[type GskContainerNode]

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.

[type GskContainerNode]

idx

the position of the child to get

 

Returns

the idx 'th child of container .

[transfer none]


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.

[transfer full][type GskTransformNode]


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 GskRenderNode for a transform.

[type GskTransformNode]

Returns

The child that is getting transformed.

[transfer none]


gsk_transform_node_get_transform ()

GskTransform *
gsk_transform_node_get_transform (GskRenderNode *node);

Retrieves the GskTransform used by the node .

Parameters

node

a GskRenderNode for a transform.

[type GskTransformNode]

Returns

a GskTransform.

[transfer none]


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.

[transfer full][type GskOpacityNode]


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

a GskRenderNode for an opacity.

[type GskOpacityNode]

Returns

The child that is getting opacityed.

[transfer none]


gsk_opacity_node_get_opacity ()

float
gsk_opacity_node_get_opacity (GskRenderNode *node);

Gets the transparency factor for an opacity node.

Parameters

node

a GskRenderNode for an opacity.

[type GskOpacityNode]

Returns

the opacity factor


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

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

[transfer full][type GskColorMatrixNode]


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.

[type GskColorMatrixNode]

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);

Retrieves the color matrix used by the node .

Parameters

node

a color matrix GskRenderNode.

[type GskColorMatrixNode]

Returns

a 4x4 color matrix


gsk_color_matrix_node_peek_color_offset ()

const graphene_vec4_t *
gsk_color_matrix_node_peek_color_offset
                               (GskRenderNode *node);

Retrieves the color offset used by the node .

Parameters

node

a color matrix GskRenderNode.

[type GskColorMatrixNode]

Returns

a color vector


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.

[transfer full][type GskRepeatNode]


gsk_repeat_node_get_child ()

GskRenderNode *
gsk_repeat_node_get_child (GskRenderNode *node);

Retrieves the child of node .

Parameters

node

a repeat GskRenderNode.

[type GskRepeatNode]

Returns

a GskRenderNode.

[transfer none]


gsk_repeat_node_peek_child_bounds ()

const graphene_rect_t *
gsk_repeat_node_peek_child_bounds (GskRenderNode *node);

Retrieves the bounding rectangle of the child of node .

Parameters

node

a repeat GskRenderNode.

[type GskRepeatNode]

Returns

a bounding rectangle.

[transfer none]


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.

[transfer full][type GskClipNode]


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 .

[type GskClipNode]

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);

Retrieves the clip rectangle for node .

Parameters

node

a GskClipNode.

[type GskClipNode]

Returns

a clip rectangle


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.

[transfer none][type GskRoundedClipNode]


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 rounded clip GskRenderNode.

[type GskRoundedClipNode]

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);

Retrievs the rounded rectangle used to clip the contents of the node .

Parameters

node

a rounded clip GskRenderNode.

[type GskRoundedClipNode]

Returns

a rounded rectangle.

[transfer none]


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.

[transfer full][type GskShadowNode]


gsk_shadow_node_peek_shadow ()

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

Retrieves the shadow data at the given index i .

Parameters

node

a shadow GskRenderNode.

[type GskShadowNode]

i

the given index

 

Returns

the shadow data.

[transfer none]


gsk_shadow_node_get_n_shadows ()

gsize
gsk_shadow_node_get_n_shadows (GskRenderNode *node);

Retrieves the number of shadows in the node .

Parameters

node

a shadow GskRenderNode.

[type GskShadowNode]

Returns

the number of shadows.


gsk_shadow_node_get_child ()

GskRenderNode *
gsk_shadow_node_get_child (GskRenderNode *node);

Retrieves the child GskRenderNode of the shadow node .

Parameters

node

a shadow GskRenderNode.

[type GskShadowNode]

Returns

the child render node.

[transfer none]


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.

[transfer full][type GskBlendNode]


gsk_blend_node_get_bottom_child ()

GskRenderNode *
gsk_blend_node_get_bottom_child (GskRenderNode *node);

Retrieves the bottom GskRenderNode child of the node .

Parameters

node

a blending GskRenderNode.

[type GskBlendNode]

Returns

the bottom child node.

[transfer none]


gsk_blend_node_get_top_child ()

GskRenderNode *
gsk_blend_node_get_top_child (GskRenderNode *node);

Retrieves the top GskRenderNode child of the node .

Parameters

node

a blending GskRenderNode.

[type GskBlendNode]

Returns

the top child node.

[transfer none]


gsk_blend_node_get_blend_mode ()

GskBlendMode
gsk_blend_node_get_blend_mode (GskRenderNode *node);

Retrieves the blend mode used by node .

Parameters

node

a blending GskRenderNode.

[type GskBlendNode]

Returns

the blend mode


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.

[transfer full][type GskCrossFadeNode]


gsk_cross_fade_node_get_start_child ()

GskRenderNode *
gsk_cross_fade_node_get_start_child (GskRenderNode *node);

Retrieves the child GskRenderNode at the beginning of the cross-fade.

Parameters

node

a cross-fading GskRenderNode.

[type GskCrossFadeNode]

Returns

a GskRenderNode.

[transfer none]


gsk_cross_fade_node_get_end_child ()

GskRenderNode *
gsk_cross_fade_node_get_end_child (GskRenderNode *node);

Retrieves the child GskRenderNode at the end of the cross-fade.

Parameters

node

a cross-fading GskRenderNode.

[type GskCrossFadeNode]

Returns

a GskRenderNode.

[transfer none]


gsk_cross_fade_node_get_progress ()

float
gsk_cross_fade_node_get_progress (GskRenderNode *node);

Retrieves the progress value of the cross fade.

Parameters

node

a cross-fading GskRenderNode.

[type GskCrossFadeNode]

Returns

the progress value, between 0 and 1


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

[nullable][transfer full][type GskTextNode]


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.

[type GskTextNode]

Returns

the font.

[transfer none]


gsk_text_node_peek_glyphs ()

const PangoGlyphInfo *
gsk_text_node_peek_glyphs (GskRenderNode *node,
                           guint *n_glyphs);

Retrieves the glyph information in the node .

Parameters

node

a text GskRenderNode.

[type GskTextNode]

n_glyphs

the number of glyphs returned.

[out][optional]

Returns

the glyph information.

[transfer none][array length=n_glyphs]


gsk_text_node_peek_color ()

const GdkRGBA *
gsk_text_node_peek_color (GskRenderNode *node);

Retrieves the color used by the text node .

Parameters

node

a text GskRenderNode.

[type GskTextNode]

Returns

the text color.

[transfer none]


gsk_text_node_has_color_glyphs ()

gboolean
gsk_text_node_has_color_glyphs (GskRenderNode *node);

Checks whether the text node has color glyphs.

Parameters

node

a text GskRenderNode.

[type GskTextNode]

Returns

TRUE if the text node has color glyphs


gsk_text_node_get_num_glyphs ()

guint
gsk_text_node_get_num_glyphs (GskRenderNode *node);

Retrieves the number of glyphs in the text node.

Parameters

node

a text GskRenderNode.

[type GskTextNode]

Returns

the number of glyphs


gsk_text_node_get_offset ()

const graphene_point_t *
gsk_text_node_get_offset (GskRenderNode *node);

Retrieves the offset applied to the text.

Parameters

node

a text GskRenderNode.

[type GskTextNode]

Returns

a point with the horizontal and vertical offsets.

[transfer none]


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

 

Returns

a new GskRenderNode.

[transfer full][type GskBlurNode]


gsk_blur_node_get_child ()

GskRenderNode *
gsk_blur_node_get_child (GskRenderNode *node);

Retrieves the child GskRenderNode of the blur node .

Parameters

node

a blur GskRenderNode.

[type GskBlurNode]

Returns

the blurred child node.

[transfer none]


gsk_blur_node_get_radius ()

float
gsk_blur_node_get_radius (GskRenderNode *node);

Retrieves the blur radius of the node .

Parameters

node

a blur GskRenderNode.

[type GskBlurNode]

Returns

the blur radius


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.

[transfer full][type GskDebugNode]


gsk_debug_node_get_child ()

GskRenderNode *
gsk_debug_node_get_child (GskRenderNode *node);

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

Parameters

node

a debug GskRenderNode.

[type GskDebugNode]

Returns

the child GskRenderNode.

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

[type GskDebugNode]

Returns

The debug message.

[transfer none]

Types and Values

GskRenderNode

typedef struct _GskRenderNode GskRenderNode;

A node in the render tree.


GskBlendNode

typedef struct _GskBlendNode GskBlendNode;

GskBlurNode

typedef struct _GskBlurNode GskBlurNode;

GskBorderNode

typedef struct _GskBorderNode GskBorderNode;

GskCairoNode

typedef struct _GskCairoNode GskCairoNode;

GskClipNode

typedef struct _GskClipNode GskClipNode;

GskColorMatrixNode

typedef struct _GskColorMatrixNode GskColorMatrixNode;

GskColorNode

typedef struct _GskColorNode GskColorNode;

GskContainerNode

typedef struct _GskContainerNode GskContainerNode;

GskCrossFadeNode

typedef struct _GskCrossFadeNode GskCrossFadeNode;

GskDebugNode

typedef struct _GskDebugNode GskDebugNode;

GskInsetShadowNode

typedef struct _GskInsetShadowNode GskInsetShadowNode;

GskLinearGradientNode

typedef struct _GskLinearGradientNode GskLinearGradientNode;

GskOpacityNode

typedef struct _GskOpacityNode GskOpacityNode;

GskOutsetShadowNode

typedef struct _GskOutsetShadowNode GskOutsetShadowNode;

GskRepeatingLinearGradientNode

typedef struct _GskRepeatingLinearGradientNode GskRepeatingLinearGradientNode;

GskRepeatNode

typedef struct _GskRepeatNode GskRepeatNode;

GskRoundedClipNode

typedef struct _GskRoundedClipNode GskRoundedClipNode;

GskShadowNode

typedef struct _GskShadowNode GskShadowNode;

GskTextNode

typedef struct _GskTextNode GskTextNode;

GskTextureNode

typedef struct _GskTextureNode GskTextureNode;

GskTransformNode

typedef struct _GskTransformNode GskTransformNode;

enum GskRenderNodeType

The type of a node determines what the node is rendering.

Members

GSK_NOT_A_RENDER_NODE

Error type. No node will ever have this type.

 

GSK_CONTAINER_NODE

A node containing a stack of children

 

GSK_CAIRO_NODE

A node drawing a cairo_surface_t

 

GSK_COLOR_NODE

A node drawing a single color rectangle

 

GSK_LINEAR_GRADIENT_NODE

A node drawing a linear gradient

 

GSK_REPEATING_LINEAR_GRADIENT_NODE

A node drawing a repeating linear gradient

 

GSK_BORDER_NODE

A node stroking a border around an area

 

GSK_TEXTURE_NODE

A node drawing a GdkTexture

 

GSK_INSET_SHADOW_NODE

A node drawing an inset shadow

 

GSK_OUTSET_SHADOW_NODE

A node drawing an outset shadow

 

GSK_TRANSFORM_NODE

A node that renders its child after applying a matrix transform

 

GSK_OPACITY_NODE

A node that changes the opacity of its child

 

GSK_COLOR_MATRIX_NODE

A node that applies a color matrix to every pixel

 

GSK_REPEAT_NODE

A node that repeats the child's contents

 

GSK_CLIP_NODE

A node that clips its child to a rectangular area

 

GSK_ROUNDED_CLIP_NODE

A node that clips its child to a rounded rectangle

 

GSK_SHADOW_NODE

A node that draws a shadow below its child

 

GSK_BLEND_NODE

A node that blends two children together

 

GSK_CROSS_FADE_NODE

A node that cross-fades between two children

 

GSK_TEXT_NODE

A node containing a glyph string

 

GSK_BLUR_NODE

A node that applies a blur

 

GSK_DEBUG_NODE

Debug information that does not affect the rendering

 

enum GskSerializationError

Errors that can happen during (de)serialization.

Members

GSK_SERIALIZATION_UNSUPPORTED_FORMAT

The format can not be identified

 

GSK_SERIALIZATION_UNSUPPORTED_VERSION

The version of the data is not understood

 

GSK_SERIALIZATION_INVALID_DATA

The given data may not exist in a proper serialization

 

enum GskScalingFilter

The filters used when scaling texture data.

The actual implementation of each filter is deferred to the rendering pipeline.

Members

GSK_SCALING_FILTER_LINEAR

linear interpolation filter

 

GSK_SCALING_FILTER_NEAREST

nearest neighbor interpolation filter

 

GSK_SCALING_FILTER_TRILINEAR

linear interpolation along each axis, plus mipmap generation, with linear interpolation along the mipmap levels

 

struct GskColorStop

struct GskColorStop {
  float offset;
  GdkRGBA color;
};

struct GskShadow

struct GskShadow {
  GdkRGBA color;
  float dx;
  float dy;
  float radius;
};

enum GskBlendMode

The blend modes available for render nodes.

The implementation of each blend mode is deferred to the rendering pipeline.

See https://www.w3.org/TR/compositing-1/blending for more information on blending and blend modes.

Members

GSK_BLEND_MODE_DEFAULT

The default blend mode, which specifies no blending

 

GSK_BLEND_MODE_MULTIPLY

The source color is multiplied by the destination and replaces the destination

 

GSK_BLEND_MODE_SCREEN

Multiplies the complements of the destination and source color values, then complements the result.

 

GSK_BLEND_MODE_OVERLAY

Multiplies or screens the colors, depending on the destination color value. This is the inverse of hard-list

 

GSK_BLEND_MODE_DARKEN

Selects the darker of the destination and source colors

 

GSK_BLEND_MODE_LIGHTEN

Selects the lighter of the destination and source colors

 

GSK_BLEND_MODE_COLOR_DODGE

Brightens the destination color to reflect the source color

 

GSK_BLEND_MODE_COLOR_BURN

Darkens the destination color to reflect the source color

 

GSK_BLEND_MODE_HARD_LIGHT

Multiplies or screens the colors, depending on the source color value

 

GSK_BLEND_MODE_SOFT_LIGHT

Darkens or lightens the colors, depending on the source color value

 

GSK_BLEND_MODE_DIFFERENCE

Subtracts the darker of the two constituent colors from the lighter color

 

GSK_BLEND_MODE_EXCLUSION

Produces an effect similar to that of the difference mode but lower in contrast

 

GSK_BLEND_MODE_COLOR

Creates a color with the hue and saturation of the source color and the luminosity of the destination color

 

GSK_BLEND_MODE_HUE

Creates a color with the hue of the source color and the saturation and luminosity of the destination color

 

GSK_BLEND_MODE_SATURATION

Creates a color with the saturation of the source color and the hue and luminosity of the destination color

 

GSK_BLEND_MODE_LUMINOSITY

Creates a color with the luminosity of the source color and the hue and saturation of the destination color

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

GskRenderer

GskRenderer — Renders a scene

Properties

gboolean realized Read
GdkSurface * surface Read

Types and Values

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 GskRenderer

 

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

 

Returns

a GskRenderer.

[transfer full][nullable]


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 gsk_renderer_realize().

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

Returns

a new Broadway renderer.

Types and Values

GskRenderer

typedef struct _GskRenderer GskRenderer;

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

build/docs/reference/gsk/html/annotation-glossary.html0000664000175000017500000001056313724235174023341 0ustar mclasenmclasen Annotation Glossary: GSK 4 Reference Manual

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

optional

NULL may be passed instead of a pointer to a location.

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.

type

Override the parsed C type with given type.

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

Index of all symbols

B

GskBlendMode, enum in GskRenderNode
GskBlendNode, struct 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
GskBlurNode, struct 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
GskBorderNode, struct 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

GskCairoNode, struct in GskRenderNode
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
GskClipNode, struct in GskRenderNode
gsk_clip_node_get_child, function in GskRenderNode
gsk_clip_node_new, function in GskRenderNode
gsk_clip_node_peek_clip, function in GskRenderNode
GskColorMatrixNode, struct in GskRenderNode
GskColorNode, struct in GskRenderNode
GskColorStop, struct 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
GskContainerNode, struct 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
GskCrossFadeNode, struct in GskRenderNode
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

GskDebugNode, struct in GskRenderNode
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

GskInsetShadowNode, struct in GskRenderNode
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

GskLinearGradientNode, struct in GskRenderNode
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

GskOpacityNode, struct in GskRenderNode
gsk_opacity_node_get_child, function in GskRenderNode
gsk_opacity_node_get_opacity, function in GskRenderNode
gsk_opacity_node_new, function in GskRenderNode
GskOutsetShadowNode, struct 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, struct in GskRenderer
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
GskRenderNode, struct in GskRenderNode
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
GskRepeatingLinearGradientNode, struct in GskRenderNode
gsk_repeating_linear_gradient_node_new, function in GskRenderNode
GskRepeatNode, struct 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
GskRoundedClipNode, struct 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
GskShadowNode, 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

GskTextNode, struct in GskRenderNode
GskTextureNode, struct in GskRenderNode
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_has_color_glyphs, 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
GskTransformNode, struct in GskRenderNode
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_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
build/docs/reference/gsk/html/gsk4-GskRoundedRect.html0000664000175000017500000010744513724235174023065 0ustar mclasenmclasen GskRoundedRect: GSK 4 Reference Manual

GskRoundedRect

GskRoundedRect — A rounded rectangle

Types and Values

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 rectangle 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

Types and Values

enum GskCorner

The corner indices used by GskRoundedRect.

Members

GSK_CORNER_TOP_LEFT

The top left corner

 

GSK_CORNER_TOP_RIGHT

The top right corner

 

GSK_CORNER_BOTTOM_RIGHT

The bottom right corner

 

GSK_CORNER_BOTTOM_LEFT

The bottom left corner

 

struct GskRoundedRect

struct GskRoundedRect {
  graphene_rect_t bounds;

  graphene_size_t corner[4];
};

A rectangular region with rounded corners.

Application code should normalize rectangles using gsk_rounded_rect_normalize(); this function will ensure that the bounds of the rectangle are normalized and ensure that the corner values are positive and the corners do not overlap. All functions taking a GskRoundedRect as an argument will internally operate on a normalized copy; all functions returning a GskRoundedRect will always return a normalized one.

Members

graphene_rect_t bounds;

the bounds of the rectangle

 

graphene_size_t corner[4];

the size of the 4 rounded corners

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

GskTransform

GskTransform — A description for transform operations

Types and Values

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 transform


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 transform


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 transform by

 

Returns

The new transform


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 transform by

 

Returns

The new transform


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 transform


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 transform


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 transform


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 transform


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 transform


gsk_transform_equal ()

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

Checks two transforms for equality.

Parameters

first

the first transform

 

second

the second transform

 

Returns

TRUE if the two transforms perform the same operation.


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]

Types and Values

GskTransform

typedef struct _GskTransform GskTransform;

The GskTransform structure contains only private data.


enum GskTransformCategory

The categories of matrices relevant for GSK and GTK. Note that any category includes matrices of all later categories. So if you want to for example check if a matrix is a 2D matrix, category &gt;= GSK_TRANSFORM_CATEGORY_2D is the way to do this.

Also keep in mind that rounding errors may cause matrices to not conform to their categories. Otherwise, matrix operations done via mutliplication will not worsen categories. So for the matrix multiplication C = A * B, category(C) = MIN (category(A), category(B)).

Members

GSK_TRANSFORM_CATEGORY_UNKNOWN

The category of the matrix has not been determined.

 

GSK_TRANSFORM_CATEGORY_ANY

Analyzing the matrix concluded that it does not fit in any other category.

 

GSK_TRANSFORM_CATEGORY_3D

The matrix is a 3D matrix. This means that the w column (the last column) has the values (0, 0, 0, 1).

 

GSK_TRANSFORM_CATEGORY_2D

The matrix is a 2D matrix. This is equivalent to graphene_matrix_is_2d() returning TRUE. In particular, this means that Cairo can deal with the matrix.

 

GSK_TRANSFORM_CATEGORY_2D_AFFINE

The matrix is a combination of 2D scale and 2D translation operations. In particular, this means that any rectangle can be transformed exactly using this matrix.

 

GSK_TRANSFORM_CATEGORY_2D_TRANSLATE

The matrix is a 2D translation.

 

GSK_TRANSFORM_CATEGORY_IDENTITY

The matrix is the identity matrix.

 
build/docs/reference/gsk/html/index.html0000664000175000017500000000417613724235174020440 0ustar mclasenmclasen GSK 4 Reference Manual: GSK 4 Reference Manual

This document is for the GSK 4 library, version 3.99.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
Annotation Glossary
build/docs/reference/gsk/html/reference.html0000664000175000017500000000435313724235174021264 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