Files
tubestation/gfx/layers/ipc/PImageBridge.ipdl
Wes Kocher 20f2b1dd4d Backed out 13 changesets (bug 709490) for android webgl-color-test.html failures
Backed out changeset 5be7514914b6 (bug 709490)
Backed out changeset 04b6f94fbe8a (bug 709490)
Backed out changeset 00c0e85dd8cd (bug 709490)
Backed out changeset 221385b7b81a (bug 709490)
Backed out changeset ecc38c18734f (bug 709490)
Backed out changeset 22878c936384 (bug 709490)
Backed out changeset 0edcbb60eee3 (bug 709490)
Backed out changeset 5feceec2014b (bug 709490)
Backed out changeset 835b655cb873 (bug 709490)
Backed out changeset 6fbb4a3f8cf7 (bug 709490)
Backed out changeset a5f8646fa156 (bug 709490)
Backed out changeset 2ae1386916b3 (bug 709490)
Backed out changeset 6b29a2a0a8fb (bug 709490)
2015-09-29 08:57:36 -07:00

73 lines
2.5 KiB
Plaintext

/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*-
* 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/. */
include LayersSurfaces;
include LayersMessages;
include protocol PCompositable;
include protocol PImageContainer;
include protocol PLayer;
include protocol PTexture;
include ProtocolTypes;
include protocol PMediaSystemResourceManager;
include "mozilla/GfxMessageUtils.h";
using struct mozilla::layers::TextureInfo from "mozilla/layers/CompositorTypes.h";
using mozilla::layers::TextureFlags from "mozilla/layers/CompositorTypes.h";
using PlatformThreadId from "base/platform_thread.h";
namespace mozilla {
namespace layers {
/**
* The PImageBridge protocol is used to allow isolated threads or processes to push
* frames directly to the compositor thread/process without relying on the main thread
* which might be too busy dealing with content script.
*/
sync protocol PImageBridge
{
manages PCompositable;
manages PTexture;
manages PMediaSystemResourceManager;
manages PImageContainer;
child:
async ParentAsyncMessages(AsyncParentMessageData[] aMessages);
async DidComposite(ImageCompositeNotification[] aNotifications);
parent:
async ImageBridgeThreadId(PlatformThreadId aTreahdId);
sync Update(CompositableOperation[] ops) returns (EditReply[] reply);
async UpdateNoSwap(CompositableOperation[] ops);
// First step of the destruction sequence. This puts ImageBridge
// in a state in which it can't send asynchronous messages
// so as to not race with the upcomming Stop message and destruction.
// In the child side, the Stop message is not sent right after WillStop,
// it is scheduled in the ImageBridgeChild's message queue in order to ensure
// that all of the messages from the parent side have been received and processed
// before sending Stop, and that after Stop returns, there is no message in
// flight on any side and we can safely destroy the channel and threads.
sync WillStop();
// Second step
sync Stop();
sync PCompositable(TextureInfo aInfo,
PImageContainer aImageContainer) returns (uint64_t id);
async PTexture(SurfaceDescriptor aSharedData, TextureFlags aTextureFlags);
async PMediaSystemResourceManager();
async PImageContainer();
async ChildAsyncMessages(AsyncChildMessageData[] aMessages);
};
} // namespace
} // namespace