diff options
Diffstat (limited to 'gfx/layers/MacIOSurfaceImage.cpp')
-rw-r--r-- | gfx/layers/MacIOSurfaceImage.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gfx/layers/MacIOSurfaceImage.cpp b/gfx/layers/MacIOSurfaceImage.cpp new file mode 100644 index 000000000..75fb1f2d6 --- /dev/null +++ b/gfx/layers/MacIOSurfaceImage.cpp @@ -0,0 +1,36 @@ +/* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * 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 "MacIOSurfaceHelpers.h" +#include "MacIOSurfaceImage.h" +#include "gfxPlatform.h" +#include "mozilla/layers/CompositableClient.h" +#include "mozilla/layers/CompositableForwarder.h" +#include "mozilla/layers/MacIOSurfaceTextureClientOGL.h" +#include "mozilla/UniquePtr.h" + +using namespace mozilla; +using namespace mozilla::layers; +using namespace mozilla::gfx; + +TextureClient* +MacIOSurfaceImage::GetTextureClient(KnowsCompositor* aForwarder) +{ + if (!mTextureClient) { + BackendType backend = BackendType::NONE; + mTextureClient = TextureClient::CreateWithData( + MacIOSurfaceTextureData::Create(mSurface, backend), + TextureFlags::DEFAULT, + aForwarder->GetTextureForwarder() + ); + } + return mTextureClient; +} + +already_AddRefed<SourceSurface> +MacIOSurfaceImage::GetAsSourceSurface() +{ + return CreateSourceSurfaceFromMacIOSurface(mSurface); +} |