<book xmlns="http://www.devhelp.net/book" title="Mtk-51 Reference Manual" link="index.html" author="Mutter Development Team" name="Mtk" version="2" language="c" online="https://mutter.gnome.org/mtk"><chapters><sub name="Constants" link="index.html#constants"><sub name="MONITOR_ALL_TRANSFORMS" link="const.MONITOR_ALL_TRANSFORMS.html" /><sub name="MONITOR_N_TRANSFORMS" link="const.MONITOR_N_TRANSFORMS.html" /><sub name="RECTANGLE_MAX_STACK_RECTS" link="const.RECTANGLE_MAX_STACK_RECTS.html" /><sub name="REGION_BUILDER_MAX_LEVELS" link="const.REGION_BUILDER_MAX_LEVELS.html" /></sub><sub name="Enums" link="index.html#enums"><sub name="AnonymousFileMapmode" link="enum.AnonymousFileMapmode.html" /><sub name="MonitorTransform" link="enum.MonitorTransform.html" /><sub name="RegionOverlap" link="enum.RegionOverlap.html" /><sub name="RoundingStrategy" link="enum.RoundingStrategy.html" /></sub><sub name="Function macros" link="index.html#function_macros"><sub name="RECTANGLE_CREATE_ARRAY_SCOPED" link="func.RECTANGLE_CREATE_ARRAY_SCOPED.html" /><sub name="RECTANGLE_INIT" link="func.RECTANGLE_INIT.html" /></sub><sub name="Functions" link="index.html#functions"><sub name="compute_viewport_matrix" link="func.compute_viewport_matrix.html" /><sub name="extrapolate_next_interval_boundary" link="func.extrapolate_next_interval_boundary.html" /><sub name="find_nearest_interval_boundary" link="func.find_nearest_interval_boundary.html" /><sub name="idle_add" link="func.idle_add.html" /><sub name="idle_add_full" link="func.idle_add_full.html" /><sub name="idle_add_once" link="func.idle_add_once.html" /><sub name="is_fd_readable" link="func.is_fd_readable.html" /><sub name="monitor_transform_from_string" link="func.monitor_transform_from_string.html" /><sub name="monitor_transform_invert" link="func.monitor_transform_invert.html" /><sub name="monitor_transform_to_string" link="func.monitor_transform_to_string.html" /><sub name="monitor_transform_transform" link="func.monitor_transform_transform.html" /><sub name="monitor_transform_transform_matrix" link="func.monitor_transform_transform_matrix.html" /><sub name="monitor_transform_transform_point" link="func.monitor_transform_transform_point.html" /><sub name="source_remove" link="func.source_remove.html" /><sub name="source_set_name_by_id" link="func.source_set_name_by_id.html" /><sub name="timeout_add" link="func.timeout_add.html" /><sub name="timeout_add_full" link="func.timeout_add_full.html" /><sub name="timeout_add_once" link="func.timeout_add_once.html" /><sub name="timeout_add_seconds" link="func.timeout_add_seconds.html" /><sub name="timeout_add_seconds_full" link="func.timeout_add_seconds_full.html" /><sub name="timeout_add_seconds_once" link="func.timeout_add_seconds_once.html" /><sub name="x11_error_trap_pop" link="func.x11_error_trap_pop.html" /><sub name="x11_error_trap_pop_with_return" link="func.x11_error_trap_pop_with_return.html" /><sub name="x11_error_trap_push" link="func.x11_error_trap_push.html" /><sub name="x11_errors_deinit" link="func.x11_errors_deinit.html" /><sub name="x11_errors_init" link="func.x11_errors_init.html" /></sub><sub name="Structs" link="index.html#structs"><sub name="AnonymousFile" link="struct.AnonymousFile.html" /><sub name="DbusPidfd" link="struct.DbusPidfd.html" /><sub name="DisposeBin" link="struct.DisposeBin.html" /><sub name="Rectangle" link="struct.Rectangle.html" /><sub name="Region" link="struct.Region.html" /><sub name="RegionBuilder" link="struct.RegionBuilder.html" /><sub name="RegionIterator" link="struct.RegionIterator.html" /></sub></chapters><functions><keyword type="constant" name="MTK_MONITOR_ALL_TRANSFORMS" link="const.MONITOR_ALL_TRANSFORMS.html" /><keyword type="constant" name="MTK_MONITOR_N_TRANSFORMS" link="const.MONITOR_N_TRANSFORMS.html" /><keyword type="constant" name="MTK_RECTANGLE_MAX_STACK_RECTS" link="const.RECTANGLE_MAX_STACK_RECTS.html" /><keyword type="constant" name="MTK_REGION_BUILDER_MAX_LEVELS" link="const.REGION_BUILDER_MAX_LEVELS.html" /><keyword type="enum" name="MtkAnonymousFileMapmode" link="enum.AnonymousFileMapmode.html" /><keyword type="constant" name="MTK_ANONYMOUS_FILE_MAPMODE_PRIVATE" link="enum.AnonymousFileMapmode.html" /><keyword type="constant" name="MTK_ANONYMOUS_FILE_MAPMODE_SHARED" link="enum.AnonymousFileMapmode.html" /><keyword type="enum" name="MtkMonitorTransform" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_NORMAL" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_90" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_180" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_270" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_FLIPPED" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_FLIPPED_90" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_FLIPPED_180" link="enum.MonitorTransform.html" /><keyword type="constant" name="MTK_MONITOR_TRANSFORM_FLIPPED_270" link="enum.MonitorTransform.html" /><keyword type="enum" name="MtkRegionOverlap" link="enum.RegionOverlap.html" /><keyword type="constant" name="MTK_REGION_OVERLAP_OUT" link="enum.RegionOverlap.html" /><keyword type="constant" name="MTK_REGION_OVERLAP_IN" link="enum.RegionOverlap.html" /><keyword type="constant" name="MTK_REGION_OVERLAP_PART" link="enum.RegionOverlap.html" /><keyword type="enum" name="MtkRoundingStrategy" link="enum.RoundingStrategy.html" /><keyword type="constant" name="MTK_ROUNDING_STRATEGY_SHRINK" link="enum.RoundingStrategy.html" /><keyword type="constant" name="MTK_ROUNDING_STRATEGY_GROW" link="enum.RoundingStrategy.html" /><keyword type="constant" name="MTK_ROUNDING_STRATEGY_ROUND" link="enum.RoundingStrategy.html" /><keyword type="macro" name="MTK_RECTANGLE_CREATE_ARRAY_SCOPED" link="func.RECTANGLE_CREATE_ARRAY_SCOPED.html" /><keyword type="macro" name="MTK_RECTANGLE_INIT" link="func.RECTANGLE_INIT.html" /><keyword type="function" name="mtk_compute_viewport_matrix" link="func.compute_viewport_matrix.html" /><keyword type="function" name="mtk_extrapolate_next_interval_boundary" link="func.extrapolate_next_interval_boundary.html" /><keyword type="function" name="mtk_find_nearest_interval_boundary" link="func.find_nearest_interval_boundary.html" /><keyword type="function" name="mtk_idle_add" link="func.idle_add.html" /><keyword type="function" name="mtk_idle_add_full" link="func.idle_add_full.html" /><keyword type="function" name="mtk_idle_add_once" link="func.idle_add_once.html" /><keyword type="function" name="mtk_is_fd_readable" link="func.is_fd_readable.html" /><keyword type="function" name="mtk_monitor_transform_from_string" link="func.monitor_transform_from_string.html" /><keyword type="function" name="mtk_monitor_transform_invert" link="func.monitor_transform_invert.html" /><keyword type="function" name="mtk_monitor_transform_to_string" link="func.monitor_transform_to_string.html" /><keyword type="function" name="mtk_monitor_transform_transform" link="func.monitor_transform_transform.html" /><keyword type="function" name="mtk_monitor_transform_transform_matrix" link="func.monitor_transform_transform_matrix.html" /><keyword type="function" name="mtk_monitor_transform_transform_point" link="func.monitor_transform_transform_point.html" /><keyword type="function" name="mtk_source_remove" link="func.source_remove.html" /><keyword type="function" name="mtk_source_set_name_by_id" link="func.source_set_name_by_id.html" /><keyword type="function" name="mtk_timeout_add" link="func.timeout_add.html" /><keyword type="function" name="mtk_timeout_add_full" link="func.timeout_add_full.html" /><keyword type="function" name="mtk_timeout_add_once" link="func.timeout_add_once.html" /><keyword type="function" name="mtk_timeout_add_seconds" link="func.timeout_add_seconds.html" /><keyword type="function" name="mtk_timeout_add_seconds_full" link="func.timeout_add_seconds_full.html" /><keyword type="function" name="mtk_timeout_add_seconds_once" link="func.timeout_add_seconds_once.html" /><keyword type="function" name="mtk_x11_error_trap_pop" link="func.x11_error_trap_pop.html" /><keyword type="function" name="mtk_x11_error_trap_pop_with_return" link="func.x11_error_trap_pop_with_return.html" /><keyword type="function" name="mtk_x11_error_trap_push" link="func.x11_error_trap_push.html" /><keyword type="function" name="mtk_x11_errors_deinit" link="func.x11_errors_deinit.html" /><keyword type="function" name="mtk_x11_errors_init" link="func.x11_errors_init.html" /><keyword type="struct" name="MtkAnonymousFile" link="struct.AnonymousFile.html" /><keyword type="function" name="mtk_anonymous_file_free" link="method.AnonymousFile.free.html" /><keyword type="function" name="mtk_anonymous_file_open_fd" link="method.AnonymousFile.open_fd.html" /><keyword type="function" name="mtk_anonymous_file_size" link="method.AnonymousFile.size.html" /><keyword type="function" name="mtk_anonymous_file_close_fd" link="type_func.AnonymousFile.close_fd.html" /><keyword type="function" name="mtk_anonymous_file_new" link="type_func.AnonymousFile.new.html" /><keyword type="struct" name="MtkDbusPidfd" link="struct.DbusPidfd.html" /><keyword type="function" name="mtk_dbus_pidfd_free" link="method.DbusPidfd.free.html" /><keyword type="function" name="mtk_dbus_pidfd_get_pid" link="method.DbusPidfd.get_pid.html" /><keyword type="function" name="mtk_dbus_pidfd_get_pidfd" link="method.DbusPidfd.get_pidfd.html" /><keyword type="function" name="mtk_dbus_pidfd_new_for_connection_async" link="type_func.DbusPidfd.new_for_connection_async.html" /><keyword type="function" name="mtk_dbus_pidfd_new_for_connection_finish" link="type_func.DbusPidfd.new_for_connection_finish.html" /><keyword type="struct" name="MtkDisposeBin" link="struct.DisposeBin.html" /><keyword type="function" name="mtk_dispose_bin_add" link="method.DisposeBin.add.html" /><keyword type="function" name="mtk_dispose_bin_dispose" link="method.DisposeBin.dispose.html" /><keyword type="function" name="mtk_dispose_bin_new" link="type_func.DisposeBin.new.html" /><keyword type="struct" name="MtkRectangle" link="struct.Rectangle.html" /><keyword type="member" name="MtkRectangle.x" link="struct.Rectangle.html" /><keyword type="member" name="MtkRectangle.y" link="struct.Rectangle.html" /><keyword type="member" name="MtkRectangle.width" link="struct.Rectangle.html" /><keyword type="member" name="MtkRectangle.height" link="struct.Rectangle.html" /><keyword type="function" name="mtk_rectangle_area" link="method.Rectangle.area.html" /><keyword type="function" name="mtk_rectangle_contains_point" link="method.Rectangle.contains_point.html" /><keyword type="function" name="mtk_rectangle_contains_pointf" link="method.Rectangle.contains_pointf.html" /><keyword type="function" name="mtk_rectangle_contains_rect" link="method.Rectangle.contains_rect.html" /><keyword type="function" name="mtk_rectangle_copy" link="method.Rectangle.copy.html" /><keyword type="function" name="mtk_rectangle_could_fit_rect" link="method.Rectangle.could_fit_rect.html" /><keyword type="function" name="mtk_rectangle_crop_and_scale" link="method.Rectangle.crop_and_scale.html" /><keyword type="function" name="mtk_rectangle_equal" link="method.Rectangle.equal.html" /><keyword type="function" name="mtk_rectangle_free" link="method.Rectangle.free.html" /><keyword type="function" name="mtk_rectangle_horiz_overlap" link="method.Rectangle.horiz_overlap.html" /><keyword type="function" name="mtk_rectangle_intersect" link="method.Rectangle.intersect.html" /><keyword type="function" name="mtk_rectangle_is_adjacent_to" link="method.Rectangle.is_adjacent_to.html" /><keyword type="function" name="mtk_rectangle_is_empty" link="method.Rectangle.is_empty.html" /><keyword type="function" name="mtk_rectangle_overlap" link="method.Rectangle.overlap.html" /><keyword type="function" name="mtk_rectangle_scale_double" link="method.Rectangle.scale_double.html" /><keyword type="function" name="mtk_rectangle_to_graphene_rect" link="method.Rectangle.to_graphene_rect.html" /><keyword type="function" name="mtk_rectangle_transform" link="method.Rectangle.transform.html" /><keyword type="function" name="mtk_rectangle_union" link="method.Rectangle.union.html" /><keyword type="function" name="mtk_rectangle_vert_overlap" link="method.Rectangle.vert_overlap.html" /><keyword type="function" name="mtk_rectangle_new" link="ctor.Rectangle.new.html" /><keyword type="function" name="mtk_rectangle_new_empty" link="ctor.Rectangle.new_empty.html" /><keyword type="function" name="mtk_rectangle_from_graphene_rect" link="type_func.Rectangle.from_graphene_rect.html" /><keyword type="struct" name="MtkRegion" link="struct.Region.html" /><keyword type="function" name="mtk_region_apply_matrix_transform_expand" link="method.Region.apply_matrix_transform_expand.html" /><keyword type="function" name="mtk_region_contains_point" link="method.Region.contains_point.html" /><keyword type="function" name="mtk_region_contains_rectangle" link="method.Region.contains_rectangle.html" /><keyword type="function" name="mtk_region_copy" link="method.Region.copy.html" /><keyword type="function" name="mtk_region_crop_and_scale" link="method.Region.crop_and_scale.html" /><keyword type="function" name="mtk_region_downscale" link="method.Region.downscale.html" /><keyword type="function" name="mtk_region_equal" link="method.Region.equal.html" /><keyword type="function" name="mtk_region_get_box" link="method.Region.get_box.html" /><keyword type="function" name="mtk_region_get_extents" link="method.Region.get_extents.html" /><keyword type="function" name="mtk_region_get_rectangle" link="method.Region.get_rectangle.html" /><keyword type="function" name="mtk_region_intersect" link="method.Region.intersect.html" /><keyword type="function" name="mtk_region_intersect_rectangle" link="method.Region.intersect_rectangle.html" /><keyword type="function" name="mtk_region_is_empty" link="method.Region.is_empty.html" /><keyword type="function" name="mtk_region_num_rectangles" link="method.Region.num_rectangles.html" /><keyword type="function" name="mtk_region_ref" link="method.Region.ref.html" /><keyword type="function" name="mtk_region_scale" link="method.Region.scale.html" /><keyword type="function" name="mtk_region_subtract" link="method.Region.subtract.html" /><keyword type="function" name="mtk_region_subtract_rectangle" link="method.Region.subtract_rectangle.html" /><keyword type="function" name="mtk_region_translate" link="method.Region.translate.html" /><keyword type="function" name="mtk_region_union" link="method.Region.union.html" /><keyword type="function" name="mtk_region_union_rectangle" link="method.Region.union_rectangle.html" /><keyword type="function" name="mtk_region_unref" link="method.Region.unref.html" /><keyword type="function" name="mtk_region_create" link="type_func.Region.create.html" /><keyword type="function" name="mtk_region_create_rectangle" link="type_func.Region.create_rectangle.html" /><keyword type="function" name="mtk_region_create_rectangles" link="type_func.Region.create_rectangles.html" /><keyword type="struct" name="MtkRegionBuilder" link="struct.RegionBuilder.html" /><keyword type="member" name="MtkRegionBuilder.levels" link="struct.RegionBuilder.html" /><keyword type="member" name="MtkRegionBuilder.n_levels" link="struct.RegionBuilder.html" /><keyword type="function" name="mtk_region_builder_add_rectangle" link="method.RegionBuilder.add_rectangle.html" /><keyword type="function" name="mtk_region_builder_finish" link="method.RegionBuilder.finish.html" /><keyword type="function" name="mtk_region_builder_init" link="method.RegionBuilder.init.html" /><keyword type="struct" name="MtkRegionIterator" link="struct.RegionIterator.html" /><keyword type="member" name="MtkRegionIterator.region" link="struct.RegionIterator.html" /><keyword type="member" name="MtkRegionIterator.rectangle" link="struct.RegionIterator.html" /><keyword type="member" name="MtkRegionIterator.line_start" link="struct.RegionIterator.html" /><keyword type="member" name="MtkRegionIterator.line_end" link="struct.RegionIterator.html" /><keyword type="member" name="MtkRegionIterator.i" link="struct.RegionIterator.html" /><keyword type="function" name="mtk_region_iterator_at_end" link="method.RegionIterator.at_end.html" /><keyword type="function" name="mtk_region_iterator_init" link="method.RegionIterator.init.html" /><keyword type="function" name="mtk_region_iterator_next" link="method.RegionIterator.next.html" /></functions></book>