/* -*- 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