From cea6fae57accaa90b2cddcc882d747d97c843a0e Mon Sep 17 00:00:00 2001 From: Matt Woodrow Date: Fri, 1 Nov 2013 14:54:15 +1300 Subject: [PATCH] Bug 887791 - Use the MacIOSurface TextureClient/Host for sharing MacIOSurface objects. r=roc --- dom/plugins/ipc/PluginInstanceParent.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/dom/plugins/ipc/PluginInstanceParent.cpp b/dom/plugins/ipc/PluginInstanceParent.cpp index a4fd7a43521..5b0edfe88b3 100644 --- a/dom/plugins/ipc/PluginInstanceParent.cpp +++ b/dom/plugins/ipc/PluginInstanceParent.cpp @@ -31,6 +31,10 @@ #include "GLContext.h" #include "GLContextProvider.h" +#ifdef XP_MACOSX +#include "MacIOSurfaceImage.h" +#endif + #if defined(OS_WIN) #include #include "gfxWindowsPlatform.h" @@ -713,26 +717,16 @@ PluginInstanceParent::GetImageContainer(ImageContainer** aContainer) #ifdef XP_MACOSX if (ioSurface) { - ImageFormat format = SHARED_TEXTURE; + ImageFormat format = MAC_IOSURFACE; nsRefPtr image = container->CreateImage(&format, 1); if (!image) { return NS_ERROR_FAILURE; } - NS_ASSERTION(image->GetFormat() == SHARED_TEXTURE, "Wrong format?"); + NS_ASSERTION(image->GetFormat() == MAC_IOSURFACE, "Wrong format?"); - SharedTextureImage::Data data; - data.mShareType = gl::SameProcess; - data.mHandle = GLContextProviderCGL::CreateSharedHandle(data.mShareType, - ioSurface, - gl::IOSurface); - data.mInverted = false; - // Use the device pixel size of the IOSurface, since layers handles resolution scaling - // already. - data.mSize = gfxIntSize(ioSurface->GetDevicePixelWidth(), ioSurface->GetDevicePixelHeight()); - - SharedTextureImage* pluginImage = static_cast(image.get()); - pluginImage->SetData(data); + MacIOSurfaceImage* pluginImage = static_cast(image.get()); + pluginImage->SetSurface(ioSurface); container->SetCurrentImageInTransaction(pluginImage);