diff options
Diffstat (limited to 'gfx/layers/ipc/LayersSurfaces.ipdlh')
-rw-r--r-- | gfx/layers/ipc/LayersSurfaces.ipdlh | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/gfx/layers/ipc/LayersSurfaces.ipdlh b/gfx/layers/ipc/LayersSurfaces.ipdlh new file mode 100644 index 000000000..8eeda4ada --- /dev/null +++ b/gfx/layers/ipc/LayersSurfaces.ipdlh @@ -0,0 +1,142 @@ +/* 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 struct gfxPoint from "gfxPoint.h"; +using nsIntRegion from "nsRegion.h"; +using struct mozilla::layers::SurfaceDescriptorX11 from "gfxipc/ShadowLayerUtils.h"; +using mozilla::StereoMode from "ImageTypes.h"; +using mozilla::YUVColorSpace from "ImageTypes.h"; +using struct mozilla::null_t from "ipc/IPCMessageUtils.h"; +using mozilla::WindowsHandle from "ipc/IPCMessageUtils.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 gfxImageFormat from "gfxTypes.h"; +using struct mozilla::layers::GonkNativeHandle from "mozilla/layers/GonkNativeHandleUtils.h"; + +namespace mozilla { +namespace layers { + +union OverlayHandle { + int32_t; + GonkNativeHandle; + null_t; +}; + +struct OverlaySource { + OverlayHandle handle; + IntSize size; +}; + +struct SurfaceDescriptorD3D9 { + // IDirect3DTexture9* + uintptr_t texture; +}; + +struct SurfaceDescriptorFileMapping { + WindowsHandle handle; + SurfaceFormat format; + IntSize size; +}; + +struct SurfaceDescriptorDIB { + // gfxWindowsSurface* + uintptr_t surface; +}; + +struct SurfaceDescriptorD3D10 { + WindowsHandle handle; + SurfaceFormat format; + IntSize size; +}; + +struct SurfaceDescriptorDXGIYCbCr { + WindowsHandle handleY; + WindowsHandle handleCb; + WindowsHandle handleCr; + IntSize size; + IntSize sizeY; + IntSize sizeCbCr; +}; + +struct SurfaceDescriptorMacIOSurface { + uint32_t surfaceId; + double scaleFactor; + bool isOpaque; +}; + +struct SurfaceTextureDescriptor { + uintptr_t surfTex; + IntSize size; +}; + +struct EGLImageDescriptor { + uintptr_t image; // `EGLImage` is a `void*`. + uintptr_t fence; + IntSize size; + bool hasAlpha; +}; + +struct SurfaceDescriptorSharedGLTexture { + uint32_t texture; + uint32_t target; + uintptr_t fence; + IntSize size; + bool hasAlpha; +}; + +struct SurfaceDescriptorGPUVideo { + uint64_t handle; +}; + +struct RGBDescriptor { + IntSize size; + SurfaceFormat format; + bool hasIntermediateBuffer; +}; + +struct YCbCrDescriptor { + IntSize ySize; + IntSize cbCrSize; + uint32_t yOffset; + uint32_t cbOffset; + uint32_t crOffset; + StereoMode stereoMode; + YUVColorSpace yUVColorSpace; + bool hasIntermediateBuffer; +}; + +union BufferDescriptor { + RGBDescriptor; + YCbCrDescriptor; +}; + +union MemoryOrShmem { + uintptr_t; + Shmem; +}; + +struct SurfaceDescriptorBuffer { + BufferDescriptor desc; + MemoryOrShmem data; +}; + +union SurfaceDescriptor { + SurfaceDescriptorBuffer; + SurfaceDescriptorD3D9; + SurfaceDescriptorDIB; + SurfaceDescriptorD3D10; + SurfaceDescriptorFileMapping; + SurfaceDescriptorDXGIYCbCr; + SurfaceDescriptorX11; + SurfaceTextureDescriptor; + EGLImageDescriptor; + SurfaceDescriptorMacIOSurface; + SurfaceDescriptorSharedGLTexture; + SurfaceDescriptorGPUVideo; + null_t; +}; + +} // namespace +} // namespace |