From f7bf383e15fa94c9aa541b0681dee192c4265ddf Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Tue, 14 Sep 2010 00:23:08 -0500 Subject: [PATCH] Bug 570625, part 3: Add a SurfaceDescriptor IPDL union over all surfaces share-able to another process. r=roc sr=shaver --- gfx/layers/ipc/PLayers.ipdl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gfx/layers/ipc/PLayers.ipdl b/gfx/layers/ipc/PLayers.ipdl index 029b68218e16..e83973d99c38 100644 --- a/gfx/layers/ipc/PLayers.ipdl +++ b/gfx/layers/ipc/PLayers.ipdl @@ -52,6 +52,7 @@ using nsIntRegion; using nsIntSize; using mozilla::GraphicsFilterType; using mozilla::layers::FrameMetrics; +using mozilla::layers::SurfaceDescriptorX11; using mozilla::null_t; /** @@ -75,10 +76,16 @@ struct OpCreateCanvasLayer { PLayer layer; }; // For the "buffer creation" operations, we send an initial front // buffer that only contains (transparent) black pixels just so that // we can swap it back after the first OpPaint without a special case. + +union SurfaceDescriptor { + Shmem; + SurfaceDescriptorX11; +}; + struct OpCreateThebesBuffer { PLayer layer; nsIntRect bufferRect; - Shmem initialFront; + SurfaceDescriptor initialFront; }; struct OpDestroyThebesFrontBuffer { PLayer layer; }; @@ -146,7 +153,7 @@ struct OpRemoveChild { PLayer container; PLayer childLayer; }; // Paint (buffer update) struct ThebesBuffer { - Shmem buffer; + SurfaceDescriptor buffer; nsIntRect rect; nsIntPoint rotation; }; @@ -195,7 +202,7 @@ union Edit { // Replies to operations -struct OpBufferSwap { PLayer layer; Shmem newBackBuffer; }; +struct OpBufferSwap { PLayer layer; SurfaceDescriptor newBackBuffer; }; /* * XXX: if we choose *not* to do a new-front-to-new-back fill in the