1 /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ 2 3 #ifndef META_WINDOW_ACTOR_PRIVATE_H 4 #define META_WINDOW_ACTOR_PRIVATE_H 5 6 #include <X11/extensions/Xdamage.h> 7 8 #include "compositor/meta-plugin-manager.h" 9 #include "compositor/meta-surface-actor.h" 10 #include "meta/compositor-mutter.h" 11 12 struct _MetaWindowActorClass 13 { 14 ClutterActorClass parent; 15 16 void (*frame_complete) (MetaWindowActor *actor, 17 ClutterFrameInfo *frame_info, 18 int64_t presentation_time); 19 20 void (*assign_surface_actor) (MetaWindowActor *actor, 21 MetaSurfaceActor *surface_actor); 22 23 void (*queue_frame_drawn) (MetaWindowActor *actor, 24 gboolean skip_sync_delay); 25 26 void (*before_paint) (MetaWindowActor *actor, 27 ClutterStageView *stage_view); 28 void (*after_paint) (MetaWindowActor *actor, 29 ClutterStageView *stage_view); 30 31 void (*queue_destroy) (MetaWindowActor *actor); 32 void (*set_frozen) (MetaWindowActor *actor, 33 gboolean frozen); 34 void (*update_regions) (MetaWindowActor *actor); 35 gboolean (*can_freeze_commits) (MetaWindowActor *actor); 36 }; 37 38 typedef enum 39 { 40 META_WINDOW_ACTOR_CHANGE_SIZE = 1 << 0, 41 META_WINDOW_ACTOR_CHANGE_POSITION = 1 << 1 42 } MetaWindowActorChanges; 43 44 void meta_window_actor_queue_destroy (MetaWindowActor *self); 45 46 void meta_window_actor_show (MetaWindowActor *self, 47 MetaCompEffect effect); 48 void meta_window_actor_hide (MetaWindowActor *self, 49 MetaCompEffect effect); 50 51 void meta_window_actor_size_change (MetaWindowActor *self, 52 MetaSizeChange which_change, 53 MetaRectangle *old_frame_rect, 54 MetaRectangle *old_buffer_rect); 55 56 void meta_window_actor_before_paint (MetaWindowActor *self, 57 ClutterStageView *stage_view); 58 void meta_window_actor_after_paint (MetaWindowActor *self, 59 ClutterStageView *stage_view); 60 void meta_window_actor_frame_complete (MetaWindowActor *self, 61 ClutterFrameInfo *frame_info, 62 gint64 presentation_time); 63 64 gboolean meta_window_actor_effect_in_progress (MetaWindowActor *self); 65 66 MetaWindowActorChanges meta_window_actor_sync_actor_geometry (MetaWindowActor *self, 67 gboolean did_placement); 68 69 void meta_window_actor_update_opacity (MetaWindowActor *self); 70 void meta_window_actor_mapped (MetaWindowActor *self); 71 void meta_window_actor_unmapped (MetaWindowActor *self); 72 void meta_window_actor_sync_updates_frozen (MetaWindowActor *self); 73 74 META_EXPORT_TEST 75 void meta_window_actor_queue_frame_drawn (MetaWindowActor *self, 76 gboolean no_delay_frame); 77 78 void meta_window_actor_effect_completed (MetaWindowActor *actor, 79 MetaPluginEffect event); 80 81 MetaSurfaceActor *meta_window_actor_get_surface (MetaWindowActor *self); 82 83 void meta_window_actor_assign_surface_actor (MetaWindowActor *self, 84 MetaSurfaceActor *surface_actor); 85 86 META_EXPORT_TEST 87 MetaWindowActor *meta_window_actor_from_window (MetaWindow *window); 88 MetaWindowActor *meta_window_actor_from_actor (ClutterActor *actor); 89 90 void meta_window_actor_set_geometry_scale (MetaWindowActor *window_actor, 91 int geometry_scale); 92 93 int meta_window_actor_get_geometry_scale (MetaWindowActor *window_actor); 94 95 void meta_window_actor_notify_damaged (MetaWindowActor *window_actor); 96 97 gboolean meta_window_actor_is_frozen (MetaWindowActor *self); 98 99 gboolean meta_window_actor_is_opaque (MetaWindowActor *self); 100 101 void meta_window_actor_update_regions (MetaWindowActor *self); 102 103 gboolean meta_window_actor_can_freeze_commits (MetaWindowActor *self); 104 105 #endif /* META_WINDOW_ACTOR_PRIVATE_H */ 106