1 /* 2 * Copyright (C) 2019 Red Hat Inc. 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 2 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 16 */ 17 18 #ifndef __CLUTTER_STAGE_VIEW_PRIVATE_H__ 19 #define __CLUTTER_STAGE_VIEW_PRIVATE_H__ 20 21 #include "clutter/clutter-stage-view.h" 22 #include "clutter/clutter-types.h" 23 24 CLUTTER_EXPORT 25 void clutter_stage_view_after_paint (ClutterStageView *view, 26 cairo_region_t *redraw_clip); 27 28 CLUTTER_EXPORT 29 void clutter_stage_view_before_swap_buffer (ClutterStageView *view, 30 const cairo_region_t *swap_region); 31 32 gboolean clutter_stage_view_is_dirty_viewport (ClutterStageView *view); 33 34 void clutter_stage_view_invalidate_viewport (ClutterStageView *view); 35 36 void clutter_stage_view_set_viewport (ClutterStageView *view, 37 float x, 38 float y, 39 float width, 40 float height); 41 42 gboolean clutter_stage_view_is_dirty_projection (ClutterStageView *view); 43 44 void clutter_stage_view_invalidate_projection (ClutterStageView *view); 45 46 void clutter_stage_view_set_projection (ClutterStageView *view, 47 const graphene_matrix_t *matrix); 48 49 CLUTTER_EXPORT 50 void clutter_stage_view_add_redraw_clip (ClutterStageView *view, 51 const cairo_rectangle_int_t *clip); 52 53 gboolean clutter_stage_view_has_full_redraw_clip (ClutterStageView *view); 54 55 gboolean clutter_stage_view_has_redraw_clip (ClutterStageView *view); 56 57 const cairo_region_t * clutter_stage_view_peek_redraw_clip (ClutterStageView *view); 58 59 CLUTTER_EXPORT 60 cairo_region_t * clutter_stage_view_take_redraw_clip (ClutterStageView *view); 61 62 CLUTTER_EXPORT 63 CoglScanout * clutter_stage_view_take_scanout (ClutterStageView *view); 64 65 CLUTTER_EXPORT 66 void clutter_stage_view_transform_rect_to_onscreen (ClutterStageView *view, 67 const cairo_rectangle_int_t *src_rect, 68 int dst_width, 69 int dst_height, 70 cairo_rectangle_int_t *dst_rect); 71 72 CLUTTER_EXPORT 73 void clutter_stage_view_schedule_update (ClutterStageView *view); 74 75 CLUTTER_EXPORT 76 void clutter_stage_view_notify_presented (ClutterStageView *view, 77 ClutterFrameInfo *frame_info); 78 79 CLUTTER_EXPORT 80 void clutter_stage_view_notify_ready (ClutterStageView *view); 81 82 #endif /* __CLUTTER_STAGE_VIEW_PRIVATE_H__ */ 83