From f013e1afd1e68af5e3b868c26a653bbfb39538f8 Mon Sep 17 00:00:00 2001 From: The Android Open Source Project Date: Wed, 17 Dec 2008 18:05:43 -0800 Subject: Code drop from //branches/cupcake/...@124589 --- libs/ui/ISurface.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'libs/ui/ISurface.cpp') diff --git a/libs/ui/ISurface.cpp b/libs/ui/ISurface.cpp index 817f4d9ff276..c1c959636bea 100644 --- a/libs/ui/ISurface.cpp +++ b/libs/ui/ISurface.cpp @@ -22,6 +22,7 @@ #include #include +#include namespace android { @@ -30,6 +31,7 @@ enum { REGISTER_BUFFERS = IBinder::FIRST_CALL_TRANSACTION, UNREGISTER_BUFFERS, POST_BUFFER, // one-way transaction + CREATE_OVERLAY, }; class BpSurface : public BpInterface @@ -70,6 +72,18 @@ public: data.writeInterfaceToken(ISurface::getInterfaceDescriptor()); remote()->transact(UNREGISTER_BUFFERS, data, &reply); } + + virtual sp createOverlay( + uint32_t w, uint32_t h, int32_t format) + { + Parcel data, reply; + data.writeInterfaceToken(ISurface::getInterfaceDescriptor()); + data.writeInt32(w); + data.writeInt32(h); + data.writeInt32(format); + remote()->transact(CREATE_OVERLAY, data, &reply); + return Overlay::readFromParcel(reply); + } }; IMPLEMENT_META_INTERFACE(Surface, "android.ui.ISurface"); @@ -109,6 +123,14 @@ status_t BnSurface::onTransact( postBuffer(offset); return NO_ERROR; } break; + case CREATE_OVERLAY: { + CHECK_INTERFACE(ISurface, data, reply); + int w = data.readInt32(); + int h = data.readInt32(); + int f = data.readInt32(); + sp o = createOverlay(w, h, w); + return Overlay::writeToParcel(reply, o); + } break; default: return BBinder::onTransact(code, data, reply, flags); } -- cgit v1.2.3-59-g8ed1b