summaryrefslogtreecommitdiffstats
path: root/gfx/layers/ipc/PUiCompositorController.ipdl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gfx/layers/ipc/PUiCompositorController.ipdl48
1 files changed, 48 insertions, 0 deletions
diff --git a/gfx/layers/ipc/PUiCompositorController.ipdl b/gfx/layers/ipc/PUiCompositorController.ipdl
new file mode 100644
index 0000000000..46b733caa2
--- /dev/null
+++ b/gfx/layers/ipc/PUiCompositorController.ipdl
@@ -0,0 +1,48 @@
+/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+ * vim: sw=2 ts=8 et :
+ */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+using mozilla::CSSRect from "Units.h";
+using mozilla::CSSToScreenScale from "Units.h";
+using mozilla::ScreenIntSize from "Units.h";
+using mozilla::ScreenPoint from "Units.h";
+
+include "mozilla/GfxMessageUtils.h";
+
+namespace mozilla {
+namespace layers {
+
+/**
+ * The PUiCompositorController protocol is used to pause and resume the
+ * compositor from the UI thread. Primarily used on Android to coordinate registering and
+ * releasing the surface with the compositor.
+ */
+[NeedsOtherPid]
+sync protocol PUiCompositorController
+{
+
+parent:
+ // Pause/resume the compositor. These are intended to be used on mobile, when
+ // the compositor needs to pause/resume in lockstep with the application.
+ sync Pause();
+ sync Resume() returns (bool aOutResumed);
+ sync ResumeAndResize(int32_t aX, int32_t aY, int32_t aWidth, int32_t aHeight)
+ returns (bool aOutResumed);
+
+ async InvalidateAndRender();
+ async MaxToolbarHeight(int32_t aHeight);
+ async FixedBottomOffset(int32_t aOffset);
+ async DefaultClearColor(uint32_t aColor);
+ async RequestScreenPixels();
+ async EnableLayerUpdateNotifications(bool aEnable);
+child:
+ async ToolbarAnimatorMessageFromCompositor(int32_t aMessage);
+ async RootFrameMetrics(ScreenPoint aScrollOffset, CSSToScreenScale aZoom);
+ async ScreenPixels(Shmem aMem, ScreenIntSize aSize, bool aNeedsYFlip);
+};
+
+} // layers
+} // mozilla