summaryrefslogtreecommitdiffstats
path: root/gfx/layers/ipc/LayersSurfaces.ipdlh
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gfx/layers/ipc/LayersSurfaces.ipdlh205
1 files changed, 205 insertions, 0 deletions
diff --git a/gfx/layers/ipc/LayersSurfaces.ipdlh b/gfx/layers/ipc/LayersSurfaces.ipdlh
new file mode 100644
index 0000000000..c7f432ccb6
--- /dev/null
+++ b/gfx/layers/ipc/LayersSurfaces.ipdlh
@@ -0,0 +1,205 @@
+/* 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 "gfxipc/ShadowLayerUtils.h";
+include "mozilla/GfxMessageUtils.h";
+include "mozilla/layers/LayersMessageUtils.h";
+
+using gfxPoint from "gfxPoint.h";
+using nsIntRegion from "nsRegion.h";
+using mozilla::StereoMode from "ImageTypes.h";
+using struct mozilla::null_t from "mozilla/ipc/IPCCore.h";
+using mozilla::WindowsHandle from "mozilla/ipc/IPCTypes.h";
+using mozilla::gfx::YUVColorSpace from "mozilla/gfx/Types.h";
+using mozilla::gfx::ChromaSubsampling from "mozilla/gfx/Types.h";
+using mozilla::gfx::ColorDepth from "mozilla/gfx/Types.h";
+using mozilla::gfx::ColorRange from "mozilla/gfx/Types.h";
+using mozilla::gfx::ColorSpace2 from "mozilla/gfx/Types.h";
+using mozilla::gfx::SurfaceFormat from "mozilla/gfx/Types.h";
+using mozilla::gfx::IntRect from "mozilla/gfx/Rect.h";
+using mozilla::gfx::IntSize from "mozilla/gfx/Point.h";
+using mozilla::gfx::Matrix4x4 from "mozilla/gfx/Matrix.h";
+[MoveOnly] using mozilla::ipc::SharedMemoryBasic::Handle from "mozilla/ipc/SharedMemoryBasic.h";
+using gfxImageFormat from "gfxTypes.h";
+using mozilla::layers::MaybeVideoBridgeSource from "mozilla/layers/VideoBridgeUtils.h";
+using mozilla::layers::RemoteTextureId from "mozilla/layers/LayersTypes.h";
+using mozilla::layers::RemoteTextureOwnerId from "mozilla/layers/LayersTypes.h";
+using mozilla::layers::GpuProcessTextureId from "mozilla/layers/LayersTypes.h";
+
+namespace mozilla {
+namespace layers {
+
+[Comparable] struct SurfaceDescriptorD3D10 {
+ WindowsHandle handle;
+ GpuProcessTextureId? gpuProcessTextureId;
+ uint32_t arrayIndex;
+ SurfaceFormat format;
+ IntSize size;
+ ColorSpace2 colorSpace;
+ ColorRange colorRange;
+};
+
+[Comparable] struct SurfaceDescriptorDXGIYCbCr {
+ WindowsHandle handleY;
+ WindowsHandle handleCb;
+ WindowsHandle handleCr;
+ IntSize size;
+ IntSize sizeY;
+ IntSize sizeCbCr;
+ ColorDepth colorDepth;
+ YUVColorSpace yUVColorSpace;
+ ColorRange colorRange;
+};
+
+[Comparable] struct SurfaceDescriptorMacIOSurface {
+ uint32_t surfaceId;
+ bool isOpaque;
+ YUVColorSpace yUVColorSpace;
+};
+
+[Comparable] struct SurfaceDescriptorDMABuf {
+ uint32_t bufferType;
+ uint64_t[] modifier;
+ uint32_t flags;
+ FileDescriptor[] fds;
+ uint32_t[] width;
+ uint32_t[] height;
+ uint32_t[] widthAligned;
+ uint32_t[] heightAligned;
+ uint32_t[] format;
+ uint32_t[] strides;
+ uint32_t[] offsets;
+ YUVColorSpace yUVColorSpace;
+ ColorRange colorRange;
+ FileDescriptor[] fence;
+ uint32_t uid;
+ FileDescriptor[] refCount;
+};
+
+[Comparable] struct SurfaceTextureDescriptor {
+ uint64_t handle;
+ IntSize size;
+ SurfaceFormat format;
+ bool continuous;
+ Matrix4x4? transformOverride;
+};
+
+[Comparable] struct SurfaceDescriptorAndroidHardwareBuffer {
+ uint64_t bufferId;
+ IntSize size;
+ SurfaceFormat format;
+};
+
+[Comparable] struct EGLImageDescriptor {
+ uintptr_t image; // `EGLImage` is a `void*`.
+ uintptr_t fence;
+ IntSize size;
+ bool hasAlpha;
+};
+
+[Comparable] struct SurfaceDescriptorSharedGLTexture {
+ uint32_t texture;
+ uint32_t target;
+ uintptr_t fence;
+ IntSize size;
+ bool hasAlpha;
+};
+
+[Comparable] struct SurfaceDescriptorDcompSurface {
+ FileDescriptor handle;
+ IntSize size;
+ SurfaceFormat format;
+};
+
+[Comparable] union RemoteDecoderVideoSubDescriptor {
+ SurfaceDescriptorD3D10;
+ SurfaceDescriptorDXGIYCbCr;
+ SurfaceDescriptorDMABuf;
+ SurfaceDescriptorMacIOSurface;
+ SurfaceDescriptorDcompSurface;
+ null_t;
+};
+
+[Comparable] struct SurfaceDescriptorRemoteDecoder {
+ uint64_t handle;
+ RemoteDecoderVideoSubDescriptor subdesc;
+ MaybeVideoBridgeSource source;
+};
+
+[Comparable] union SurfaceDescriptorGPUVideo {
+ SurfaceDescriptorRemoteDecoder;
+};
+
+[Comparable] struct RGBDescriptor {
+ IntSize size;
+ SurfaceFormat format;
+};
+
+[Comparable] struct YCbCrDescriptor {
+ IntRect display;
+ IntSize ySize;
+ uint32_t yStride;
+ IntSize cbCrSize;
+ uint32_t cbCrStride;
+ uint32_t yOffset;
+ uint32_t cbOffset;
+ uint32_t crOffset;
+ StereoMode stereoMode;
+ ColorDepth colorDepth;
+ YUVColorSpace yUVColorSpace;
+ ColorRange colorRange;
+ ChromaSubsampling chromaSubsampling;
+};
+
+[Comparable] union BufferDescriptor {
+ RGBDescriptor;
+ YCbCrDescriptor;
+};
+
+[Comparable] union MemoryOrShmem {
+ uintptr_t;
+ Shmem;
+};
+
+[Comparable] struct SurfaceDescriptorBuffer {
+ BufferDescriptor desc;
+ MemoryOrShmem data;
+};
+
+[Comparable] struct SurfaceDescriptorShared
+{
+ IntSize size;
+ int32_t stride;
+ SurfaceFormat format;
+ Handle handle;
+};
+
+[Comparable] struct SurfaceDescriptorRecorded {
+ int64_t textureId;
+};
+
+[Comparable] struct SurfaceDescriptorRemoteTexture {
+ RemoteTextureId textureId;
+ RemoteTextureOwnerId ownerId;
+};
+
+[Comparable] union SurfaceDescriptor {
+ SurfaceDescriptorBuffer;
+ SurfaceDescriptorD3D10;
+ SurfaceDescriptorDXGIYCbCr;
+ SurfaceDescriptorDMABuf;
+ SurfaceTextureDescriptor;
+ SurfaceDescriptorAndroidHardwareBuffer;
+ EGLImageDescriptor;
+ SurfaceDescriptorMacIOSurface;
+ SurfaceDescriptorSharedGLTexture;
+ SurfaceDescriptorGPUVideo;
+ SurfaceDescriptorRecorded;
+ SurfaceDescriptorRemoteTexture;
+ SurfaceDescriptorDcompSurface;
+ null_t;
+};
+
+} // namespace
+} // namespace