234 lines
6.4 KiB
Text
234 lines
6.4 KiB
Text
/* 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";
|
|
include "mozilla/layers/WebRenderMessageUtils.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::TransferFunction 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";
|
|
[RefCounted] using mozilla::gfx::FileHandleWrapper from "mozilla/gfx/FileHandleWrapper.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";
|
|
[RefCounted] using mozilla::layers::GpuFence from "mozilla/layers/GpuFence.h";
|
|
using mozilla::layers::GpuProcessTextureId from "mozilla/layers/LayersTypes.h";
|
|
using mozilla::layers::CompositeProcessFencesHolderId from "mozilla/layers/LayersTypes.h";
|
|
using mozilla::wr::ExternalImageSource from "mozilla/webrender/WebRenderTypes.h";
|
|
using mozilla::wr::ExternalImageId from "mozilla/webrender/WebRenderTypes.h";
|
|
using mozilla::layers::SurfaceDescriptorRemoteDecoderId from "mozilla/layers/LayersTypes.h";
|
|
using mozilla::ipc::ActorId from "mozilla/ipc/ProtocolUtils.h";
|
|
[MoveOnly] using mozilla::ipc::ReadOnlySharedMemoryHandle from "mozilla/ipc/SharedMemoryHandle.h";
|
|
|
|
namespace mozilla {
|
|
namespace layers {
|
|
|
|
[Comparable] struct SurfaceDescriptorD3D10 {
|
|
nullable FileHandleWrapper handle;
|
|
GpuProcessTextureId? gpuProcessTextureId;
|
|
uint32_t arrayIndex;
|
|
SurfaceFormat format;
|
|
IntSize size;
|
|
ColorSpace2 colorSpace;
|
|
ColorRange colorRange;
|
|
bool hasKeyedMutex;
|
|
CompositeProcessFencesHolderId? fencesHolderId;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorDXGIYCbCr {
|
|
nullable FileHandleWrapper handleY;
|
|
nullable FileHandleWrapper handleCb;
|
|
nullable FileHandleWrapper handleCr;
|
|
IntSize size;
|
|
IntSize sizeY;
|
|
IntSize sizeCbCr;
|
|
ColorDepth colorDepth;
|
|
YUVColorSpace yUVColorSpace;
|
|
ColorRange colorRange;
|
|
CompositeProcessFencesHolderId fencesHolderId;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorMacIOSurface {
|
|
uint32_t surfaceId;
|
|
bool isOpaque;
|
|
YUVColorSpace yUVColorSpace;
|
|
nullable GpuFence gpuFence;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorDMABuf {
|
|
uint32_t bufferType;
|
|
uint32_t fourccFormat;
|
|
uint64_t[] modifier;
|
|
uint32_t flags;
|
|
FileHandleWrapper[] 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;
|
|
ColorSpace2 colorPrimaries;
|
|
TransferFunction transferFunction;
|
|
FileHandleWrapper[] fence;
|
|
uint32_t uid;
|
|
uint32_t pid;
|
|
FileDescriptor[] refCount;
|
|
nullable FileHandleWrapper semaphoreFd;
|
|
};
|
|
|
|
[Comparable] struct SurfaceTextureDescriptor {
|
|
uint64_t handle;
|
|
IntSize size;
|
|
SurfaceFormat format;
|
|
bool continuous;
|
|
bool forceBT709ColorSpace;
|
|
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;
|
|
SurfaceDescriptorRemoteDecoderId id;
|
|
};
|
|
|
|
[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;
|
|
};
|
|
|
|
struct SurfaceDescriptorShared
|
|
{
|
|
IntSize size;
|
|
int32_t stride;
|
|
SurfaceFormat format;
|
|
ReadOnlySharedMemoryHandle handle;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorExternalImage
|
|
{
|
|
ExternalImageSource source;
|
|
ExternalImageId id;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorRemoteTexture {
|
|
RemoteTextureId textureId;
|
|
RemoteTextureOwnerId ownerId;
|
|
};
|
|
|
|
[Comparable] struct SurfaceDescriptorCanvasSurface {
|
|
uint32_t managerId;
|
|
ActorId canvasId;
|
|
uintptr_t surfaceId;
|
|
};
|
|
|
|
[Comparable] union SurfaceDescriptor {
|
|
SurfaceDescriptorBuffer;
|
|
SurfaceDescriptorD3D10;
|
|
SurfaceDescriptorDXGIYCbCr;
|
|
SurfaceDescriptorDMABuf;
|
|
SurfaceTextureDescriptor;
|
|
SurfaceDescriptorAndroidHardwareBuffer;
|
|
EGLImageDescriptor;
|
|
SurfaceDescriptorMacIOSurface;
|
|
SurfaceDescriptorSharedGLTexture;
|
|
SurfaceDescriptorGPUVideo;
|
|
SurfaceDescriptorRemoteTexture;
|
|
SurfaceDescriptorDcompSurface;
|
|
SurfaceDescriptorExternalImage;
|
|
SurfaceDescriptorCanvasSurface;
|
|
null_t;
|
|
};
|
|
|
|
} // namespace
|
|
} // namespace
|