summaryrefslogtreecommitdiff
path: root/clutter/clutter-stage-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'clutter/clutter-stage-window.c')
-rw-r--r--clutter/clutter-stage-window.c39
1 files changed, 39 insertions, 0 deletions
diff --git a/clutter/clutter-stage-window.c b/clutter/clutter-stage-window.c
index 3ba3c9983..b6383a00c 100644
--- a/clutter/clutter-stage-window.c
+++ b/clutter/clutter-stage-window.c
@@ -38,6 +38,21 @@ clutter_stage_window_default_init (ClutterStageWindowInterface *iface)
g_object_interface_install_property (iface, pspec);
}
+gboolean
+_clutter_stage_window_has_feature (ClutterStageWindow *window,
+ ClutterStageWindowFeature feature)
+{
+ ClutterStageWindowIface *iface;
+
+ g_return_val_if_fail (CLUTTER_IS_STAGE_WINDOW (window), FALSE);
+
+ iface = CLUTTER_STAGE_WINDOW_GET_IFACE (window);
+ if (iface->redraw_without_swap)
+ return iface->has_feature (window, feature);
+ else
+ return FALSE;
+}
+
ClutterActor *
_clutter_stage_window_get_wrapper (ClutterStageWindow *window)
{
@@ -236,6 +251,30 @@ _clutter_stage_window_redraw (ClutterStageWindow *window)
iface->redraw (window);
}
+void
+_clutter_stage_window_redraw_without_swap (ClutterStageWindow *window)
+{
+ ClutterStageWindowIface *iface;
+
+ g_return_if_fail (CLUTTER_IS_STAGE_WINDOW (window));
+
+ iface = CLUTTER_STAGE_WINDOW_GET_IFACE (window);
+ if (iface->redraw_without_swap)
+ iface->redraw_without_swap (window);
+}
+
+void
+_clutter_stage_window_swap_buffers (ClutterStageWindow *window)
+{
+ ClutterStageWindowIface *iface;
+
+ g_return_if_fail (CLUTTER_IS_STAGE_WINDOW (window));
+
+ iface = CLUTTER_STAGE_WINDOW_GET_IFACE (window);
+ if (iface->swap_buffers)
+ iface->swap_buffers (window);
+}
+
/* NB: The presumption shouldn't be that a stage can't be comprised of
* multiple internal framebuffers, so instead of simply naming this
* function _clutter_stage_window_get_framebuffer(), the "active"