2012-07-13 12:38:09 -07:00
|
|
|
/* 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 PGrallocBuffer;
|
|
|
|
|
|
|
|
|
2013-10-01 12:25:07 -07:00
|
|
|
using gfxIntSize from "nsSize.h";
|
|
|
|
using struct gfxPoint from "gfxPoint.h";
|
|
|
|
using struct nsIntRect from "nsRect.h";
|
|
|
|
using nsIntRegion from "nsRegion.h";
|
|
|
|
using struct nsIntSize from "nsSize.h";
|
|
|
|
using struct mozilla::layers::MagicGrallocBufferHandle from "gfxipc/ShadowLayerUtils.h";
|
|
|
|
using struct mozilla::layers::SurfaceDescriptorX11 from "gfxipc/ShadowLayerUtils.h";
|
|
|
|
using struct mozilla::null_t from "ipc/IPCMessageUtils.h";
|
|
|
|
using mozilla::WindowsHandle from "ipc/IPCMessageUtils.h";
|
|
|
|
using mozilla::gl::SharedTextureHandle from "GLContextTypes.h";
|
|
|
|
using mozilla::gl::SharedTextureShareType from "GLContextTypes.h";
|
|
|
|
using mozilla::gfx::SurfaceStreamHandle from "SurfaceTypes.h";
|
|
|
|
using mozilla::gfx::SurfaceFormat from "mozilla/gfx/Types.h";
|
|
|
|
using mozilla::gfx::IntSize from "mozilla/gfx/Point.h";
|
2012-07-13 12:38:09 -07:00
|
|
|
|
|
|
|
namespace mozilla {
|
|
|
|
namespace layers {
|
|
|
|
|
|
|
|
union MaybeMagicGrallocBufferHandle {
|
|
|
|
MagicGrallocBufferHandle;
|
|
|
|
null_t;
|
|
|
|
};
|
|
|
|
|
2013-08-04 00:46:17 -07:00
|
|
|
struct SurfaceDescriptorD3D9 {
|
|
|
|
// IDirect3DTexture9*
|
|
|
|
uintptr_t texture;
|
|
|
|
};
|
|
|
|
|
2013-09-23 18:14:11 -07:00
|
|
|
struct SurfaceDescriptorDIB {
|
|
|
|
// gfxWindowsSurface*
|
|
|
|
uintptr_t surface;
|
|
|
|
};
|
|
|
|
|
2012-07-13 12:38:09 -07:00
|
|
|
struct SurfaceDescriptorD3D10 {
|
|
|
|
WindowsHandle handle;
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
bool hasAlpha;
|
2012-07-13 12:38:09 -07:00
|
|
|
};
|
|
|
|
|
2013-10-31 18:54:14 -07:00
|
|
|
struct SurfaceDescriptorMacIOSurface {
|
|
|
|
uint32_t surface;
|
|
|
|
double scaleFactor;
|
|
|
|
bool hasAlpha;
|
|
|
|
};
|
|
|
|
|
2012-05-31 18:30:08 -07:00
|
|
|
struct SharedTextureDescriptor {
|
2012-11-26 14:23:27 -08:00
|
|
|
SharedTextureShareType shareType;
|
2012-05-31 18:30:08 -07:00
|
|
|
SharedTextureHandle handle;
|
|
|
|
nsIntSize size;
|
2012-07-20 12:20:51 -07:00
|
|
|
bool inverted;
|
2012-05-31 18:30:08 -07:00
|
|
|
};
|
|
|
|
|
2013-08-19 06:59:27 -07:00
|
|
|
struct BasicShmTileDescriptor {
|
2013-08-19 06:59:22 -07:00
|
|
|
Shmem reusableSurface;
|
|
|
|
};
|
|
|
|
|
2013-08-19 06:59:27 -07:00
|
|
|
struct BasicTileDescriptor {
|
|
|
|
uintptr_t reusableSurface;
|
|
|
|
};
|
|
|
|
|
2013-08-19 06:59:22 -07:00
|
|
|
struct PlaceholderTileDescriptor {
|
|
|
|
};
|
|
|
|
|
|
|
|
union TileDescriptor {
|
|
|
|
BasicTileDescriptor;
|
2013-08-19 06:59:27 -07:00
|
|
|
BasicShmTileDescriptor;
|
2013-08-19 06:59:22 -07:00
|
|
|
PlaceholderTileDescriptor;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SurfaceDescriptorTiles {
|
|
|
|
nsIntRegion validRegion;
|
|
|
|
nsIntRegion paintedRegion;
|
|
|
|
TileDescriptor[] tiles;
|
|
|
|
int retainedWidth;
|
|
|
|
int retainedHeight;
|
|
|
|
float resolution;
|
|
|
|
};
|
|
|
|
|
2013-08-09 08:23:46 -07:00
|
|
|
struct NewSurfaceDescriptorGralloc {
|
|
|
|
PGrallocBuffer buffer;
|
|
|
|
/**
|
|
|
|
* android::GraphicBuffer has a size information. But there are cases
|
|
|
|
* that GraphicBuffer's size and actual video's size are different.
|
|
|
|
* Extra size member is necessary. See Bug 850566.
|
|
|
|
*/
|
|
|
|
IntSize size;
|
|
|
|
};
|
|
|
|
|
2013-07-30 02:59:51 -07:00
|
|
|
// XXX - soon to be removed
|
2012-07-13 12:38:09 -07:00
|
|
|
struct SurfaceDescriptorGralloc {
|
|
|
|
PGrallocBuffer buffer;
|
2013-03-28 06:59:47 -07:00
|
|
|
/**
|
|
|
|
* android::GraphicBuffer has a size information. But there are cases
|
|
|
|
* that GraphicBuffer's size and actual video's size are different.
|
|
|
|
* Extra size member is necessary. See Bug 850566.
|
|
|
|
*/
|
|
|
|
nsIntSize size;
|
2012-08-17 03:56:55 -07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* We can have one source producing gralloc buffers and sharing them
|
|
|
|
* with another source that may also produce its own gralloc buffers.
|
|
|
|
* This happens for camera preview buffers sent to video code. When
|
|
|
|
* that happens, the producer can mark the buffer as "external" to
|
|
|
|
* prevent its consumer from mistakenly freeing the buffer.
|
|
|
|
*/
|
|
|
|
bool external;
|
2013-05-27 07:12:13 -07:00
|
|
|
|
|
|
|
/**
|
|
|
|
* This gralloc buffer will be treated as if the RB bytes are swapped.
|
|
|
|
* This is useful for rendering using Cairo/Thebes, because there is no
|
|
|
|
* BGRX Android pixel format, and so we have to do byte swapping.
|
|
|
|
*
|
|
|
|
* For example, if the GraphicBuffer has an Android pixel format of
|
|
|
|
* PIXEL_FORMAT_RGBA_8888 and isRBSwapped is true, when it is sampled
|
|
|
|
* (for example, with GL), a BGRA shader should be used.
|
|
|
|
*/
|
|
|
|
bool isRBSwapped;
|
2012-07-13 12:38:09 -07:00
|
|
|
};
|
|
|
|
|
2013-02-13 15:26:24 -08:00
|
|
|
struct SurfaceStreamDescriptor {
|
|
|
|
SurfaceStreamHandle handle;
|
|
|
|
bool yflip;
|
|
|
|
};
|
|
|
|
|
2013-07-30 02:59:51 -07:00
|
|
|
// XXX - can be removed as soon as DeprecatedImageClientSingle is removed
|
2012-09-13 13:52:26 -07:00
|
|
|
struct YCbCrImage {
|
|
|
|
Shmem data;
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
uint64_t owner;
|
2012-09-13 13:52:26 -07:00
|
|
|
};
|
|
|
|
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
// XXX remove RGBImage (see bug 847914)
|
2012-12-12 14:47:28 -08:00
|
|
|
struct RGBImage {
|
|
|
|
Shmem data;
|
|
|
|
nsIntRect picture;
|
|
|
|
uint32_t rgbFormat;
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
uint64_t owner;
|
2012-12-12 14:47:28 -08:00
|
|
|
};
|
|
|
|
|
2013-05-22 00:04:12 -07:00
|
|
|
struct MemoryImage {
|
|
|
|
uintptr_t data;
|
|
|
|
gfxIntSize size;
|
|
|
|
uint32_t stride;
|
|
|
|
uint32_t format;
|
|
|
|
};
|
|
|
|
|
2013-07-30 02:59:51 -07:00
|
|
|
/**
|
|
|
|
* Used for shmem-backed YCbCr and (flavors of) RGBA textures
|
|
|
|
*/
|
|
|
|
struct SurfaceDescriptorShmem {
|
|
|
|
Shmem data;
|
|
|
|
SurfaceFormat format;
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Used for "raw memory"-backed YCbCr and (flavors of) RGBA textures
|
|
|
|
*/
|
|
|
|
struct SurfaceDescriptorMemory {
|
|
|
|
uintptr_t data;
|
|
|
|
SurfaceFormat format;
|
|
|
|
};
|
|
|
|
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
union SurfaceDescriptor {
|
2013-07-30 02:59:51 -07:00
|
|
|
SurfaceDescriptorShmem;
|
|
|
|
SurfaceDescriptorMemory;
|
2013-08-04 00:46:17 -07:00
|
|
|
SurfaceDescriptorD3D9;
|
2013-09-23 18:14:11 -07:00
|
|
|
SurfaceDescriptorDIB;
|
Bug 825928: Land layers refactoring. r=jrmuizel,bas,nical,mattwoodrow,roc,nrc,benwa,bjacob,jgilbert,kchen CLOSED TREE
Please contact Bas Schouten <bschouten@mozilla.com>, Nicolas Silva <nsilva@mozilla.com> or Nicholas Cameron <ncameron@mozilla.com> with general questions. Below is a rough list of authors to contact with specific questions.
Authors:
gfx/layers/Compositor.* gfx/layers/Effects.h - Compositor Interface - bas,nrc,nical
gfx/layers/d3d* - D3D9/D3D10 - bas
gfx/layers/ThebesLayer* - ThebesLayers - nrc,bas
gfx/layers/composite/* - CompositeLayers - nrc,nical
gfx/layers/client/* - Client - nrc,nical,bas
gfx/layers/*Image* - nical
gfx/layers/ipc ipc - IPC - nical
gfx/layers/opengl - CompositorOGL - nrc,nical
gfx/2d - bas,nrc
gfx/gl - GLContext - bjacob
dom/* layout/* - DOM - mattwoodrow
2013-04-10 02:20:52 -07:00
|
|
|
SurfaceDescriptorD3D10;
|
|
|
|
SurfaceDescriptorX11;
|
|
|
|
SharedTextureDescriptor;
|
|
|
|
SurfaceStreamDescriptor;
|
2013-10-31 18:54:14 -07:00
|
|
|
SurfaceDescriptorMacIOSurface;
|
2013-08-09 08:23:46 -07:00
|
|
|
NewSurfaceDescriptorGralloc;
|
2013-07-30 02:59:51 -07:00
|
|
|
YCbCrImage; // XXX - deprecated
|
|
|
|
SurfaceDescriptorGralloc; // XXX - deprecated
|
|
|
|
Shmem; // XXX - deprecated
|
|
|
|
RGBImage; // XXX - deprecated
|
|
|
|
MemoryImage; // XXX - deprecated
|
2012-07-13 12:38:09 -07:00
|
|
|
null_t;
|
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace
|
|
|
|
} // namespace
|