diff options
Diffstat (limited to 'dom/canvas/PWebGL.ipdl')
-rw-r--r-- | dom/canvas/PWebGL.ipdl | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/dom/canvas/PWebGL.ipdl b/dom/canvas/PWebGL.ipdl new file mode 100644 index 0000000000..9e2614514d --- /dev/null +++ b/dom/canvas/PWebGL.ipdl @@ -0,0 +1,102 @@ +/* -*- 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/. */ + +include protocol PCompositorBridge; +include protocol PLayerTransaction; + +using mozilla::layers::CompositableHandle from "mozilla/layers/LayersTypes.h"; +using mozilla::layers::SurfaceDescriptor from "mozilla/layers/LayersTypes.h"; +using std::string from "string"; +using mozilla::uvec2 from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::Int32Vector from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::CompileResult from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::ContextLossReason from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::FrontBufferSnapshotIpc from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::GetUniformData from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::InitContextDesc from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::InitContextResult from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::Int32Vector from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::LinkResult from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::ShaderPrecisionFormat from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::OpaqueFramebufferOptions from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::ReadPixelsDesc from "mozilla/dom/WebGLIpdl.h"; +using mozilla::webgl::ReadPixelsResultIpc from "mozilla/dom/WebGLIpdl.h"; +using mozilla::HostWebGLCommandSinkP from "mozilla/dom/WebGLCrossProcessCommandQueue.h"; +using mozilla::HostWebGLCommandSinkI from "mozilla/dom/WebGLCrossProcessCommandQueue.h"; +using mozilla::dom::IpdlQueueBuffer from "mozilla/dom/IpdlQueue.h"; +using mozilla::dom::IpdlQueueBuffers from "mozilla/dom/IpdlQueue.h"; + +namespace mozilla { +namespace dom { + +/** + * Represents the connection between a WebGLChild actor that issues WebGL + * command from the content process, and a WebGLParent in the compositor + * process that runs the commands. + */ +sync refcounted protocol PWebGL +{ + manager PCompositorBridge; + +parent: + sync Initialize(InitContextDesc desc, UniquePtr<HostWebGLCommandSinkP> sinkP, + UniquePtr<HostWebGLCommandSinkI> sinkI) + returns (InitContextResult res); + + async __delete__(); + + // - + + async DispatchCommands(Shmem commands, uint64_t size); + + // - + + sync GetBufferSubData(uint32_t target, uint64_t srcByteOffset, uint64_t byteSize) returns (Shmem ret); + sync GetFrontBufferSnapshot() returns (FrontBufferSnapshotIpc ret); + sync ReadPixels(ReadPixelsDesc desc, uint64_t maxBytes) returns (ReadPixelsResultIpc ret); + + // - + + sync CheckFramebufferStatus(uint32_t target) returns (uint32_t ret); + sync ClientWaitSync(uint64_t id, uint32_t flags, uint64_t timeout) returns (uint32_t ret); + sync CreateOpaqueFramebuffer(uint64_t id, OpaqueFramebufferOptions options) returns (bool ret); + sync DrawingBufferSize() returns (uvec2 ret); + sync Finish(); + sync GetBufferParameter(uint32_t target, uint32_t pname) returns (double? ret); + sync GetCompileResult(uint64_t id) returns (CompileResult ret); + sync GetError() returns (uint32_t ret); + sync GetFragDataLocation(uint64_t id, string name) returns (int32_t ret); + sync GetFramebufferAttachmentParameter(uint64_t id, + uint32_t attachment, + uint32_t pname) returns (double? ret); + sync GetFrontBuffer(uint64_t fb, bool vr) returns (SurfaceDescriptor? ret); + sync GetIndexedParameter(uint32_t target, uint32_t index) returns (double? ret); + sync GetInternalformatParameter(uint32_t target, uint32_t internalFormat, uint32_t pname) returns (Int32Vector? ret); + sync GetLinkResult(uint64_t id) returns (LinkResult ret); + sync GetNumber(uint32_t pname) returns (double? ret); + sync GetQueryParameter(uint64_t id, uint32_t pname) returns (double? ret); + sync GetRenderbufferParameter(uint64_t id, uint32_t pname) returns (double? ret); + sync GetSamplerParameter(uint64_t id, uint32_t pname) returns (double? ret); + sync GetShaderPrecisionFormat( + uint32_t shaderType, uint32_t precisionType) returns (ShaderPrecisionFormat? ret); + sync GetString(uint32_t pname) returns (string? ret); + sync GetTexParameter(uint64_t id, uint32_t pname) returns (double? ret); + sync GetUniform(uint64_t id, uint32_t loc) returns (GetUniformData ret); + sync GetVertexAttrib(uint32_t index, uint32_t pname) returns (double? ret); + sync IsEnabled(uint32_t cap) returns (bool ret); + sync OnMemoryPressure(); + sync ValidateProgram(uint64_t id) returns (bool ret); + +child: + async JsWarning(string text); + + // Tell client that this queue needs to be shut down + async OnContextLoss(ContextLossReason aReason); +}; + +} // dom +} // mozilla |