summaryrefslogtreecommitdiff
path: root/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp')
-rw-r--r--gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp180
1 files changed, 0 insertions, 180 deletions
diff --git a/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp b/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp
deleted file mode 100644
index 9736618f7e..0000000000
--- a/gfx/layers/opengl/MacIOSurfaceTextureHostOGL.cpp
+++ /dev/null
@@ -1,180 +0,0 @@
-/* -*- 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 "MacIOSurfaceTextureHostOGL.h"
-#include "mozilla/gfx/MacIOSurface.h"
-#include "GLContextCGL.h"
-
-namespace mozilla {
-namespace layers {
-
-MacIOSurfaceTextureHostOGL::MacIOSurfaceTextureHostOGL(TextureFlags aFlags,
- const SurfaceDescriptorMacIOSurface& aDescriptor)
- : TextureHost(aFlags)
-{
- MOZ_COUNT_CTOR(MacIOSurfaceTextureHostOGL);
- mSurface = MacIOSurface::LookupSurface(aDescriptor.surfaceId(),
- aDescriptor.scaleFactor(),
- !aDescriptor.isOpaque());
-}
-
-MacIOSurfaceTextureHostOGL::~MacIOSurfaceTextureHostOGL()
-{
- MOZ_COUNT_DTOR(MacIOSurfaceTextureHostOGL);
-}
-
-GLTextureSource*
-MacIOSurfaceTextureHostOGL::CreateTextureSourceForPlane(size_t aPlane)
-{
- MOZ_ASSERT(mSurface);
-
- GLuint textureHandle;
- gl::GLContext* gl = mCompositor->gl();
- gl->fGenTextures(1, &textureHandle);
- gl->fBindTexture(LOCAL_GL_TEXTURE_RECTANGLE_ARB, textureHandle);
- gl->fTexParameteri(LOCAL_GL_TEXTURE_RECTANGLE_ARB, LOCAL_GL_TEXTURE_WRAP_T, LOCAL_GL_CLAMP_TO_EDGE);
- gl->fTexParameteri(LOCAL_GL_TEXTURE_RECTANGLE_ARB, LOCAL_GL_TEXTURE_WRAP_S, LOCAL_GL_CLAMP_TO_EDGE);
-
- mSurface->CGLTexImageIOSurface2D(gl::GLContextCGL::Cast(gl)->GetCGLContext(), aPlane);
-
- return new GLTextureSource(mCompositor, textureHandle, LOCAL_GL_TEXTURE_RECTANGLE_ARB,
- gfx::IntSize(mSurface->GetDevicePixelWidth(aPlane),
- mSurface->GetDevicePixelHeight(aPlane)),
- // XXX: This isn't really correct (but isn't used), we should be using the
- // format of the individual plane, not of the whole buffer.
- mSurface->GetFormat());
-}
-
-bool
-MacIOSurfaceTextureHostOGL::Lock()
-{
- if (!gl() || !gl()->MakeCurrent() || !mSurface) {
- return false;
- }
-
- if (!mTextureSource) {
- mTextureSource = CreateTextureSourceForPlane(0);
-
- RefPtr<TextureSource> prev = mTextureSource;
- for (size_t i = 1; i < mSurface->GetPlaneCount(); i++) {
- RefPtr<TextureSource> next = CreateTextureSourceForPlane(i);
- prev->SetNextSibling(next);
- prev = next;
- }
- }
- return true;
-}
-
-void
-MacIOSurfaceTextureHostOGL::SetCompositor(Compositor* aCompositor)
-{
- CompositorOGL* glCompositor = AssertGLCompositor(aCompositor);
- if (!glCompositor) {
- mTextureSource = nullptr;
- mCompositor = nullptr;
- return;
- }
-
- if (mCompositor != glCompositor) {
- // Cannot share GL texture identifiers across compositors.
- mTextureSource = nullptr;
- }
- mCompositor = glCompositor;
-}
-
-gfx::SurfaceFormat
-MacIOSurfaceTextureHostOGL::GetFormat() const {
- if (!mSurface) {
- return gfx::SurfaceFormat::UNKNOWN;
- }
- return mSurface->GetFormat();
-}
-
-gfx::SurfaceFormat
-MacIOSurfaceTextureHostOGL::GetReadFormat() const {
- if (!mSurface) {
- return gfx::SurfaceFormat::UNKNOWN;
- }
- return mSurface->GetReadFormat();
-}
-
-gfx::IntSize
-MacIOSurfaceTextureHostOGL::GetSize() const {
- if (!mSurface) {
- return gfx::IntSize();
- }
- return gfx::IntSize(mSurface->GetDevicePixelWidth(),
- mSurface->GetDevicePixelHeight());
-}
-
-gl::GLContext*
-MacIOSurfaceTextureHostOGL::gl() const
-{
- return mCompositor ? mCompositor->gl() : nullptr;
-}
-
-MacIOSurfaceTextureSourceOGL::MacIOSurfaceTextureSourceOGL(
- CompositorOGL* aCompositor,
- MacIOSurface* aSurface)
- : mCompositor(aCompositor)
- , mSurface(aSurface)
-{
- MOZ_ASSERT(aCompositor);
- MOZ_COUNT_CTOR(MacIOSurfaceTextureSourceOGL);
-}
-
-MacIOSurfaceTextureSourceOGL::~MacIOSurfaceTextureSourceOGL()
-{
- MOZ_COUNT_DTOR(MacIOSurfaceTextureSourceOGL);
-}
-
-gfx::IntSize
-MacIOSurfaceTextureSourceOGL::GetSize() const
-{
- return gfx::IntSize(mSurface->GetDevicePixelWidth(),
- mSurface->GetDevicePixelHeight());
-}
-
-gfx::SurfaceFormat
-MacIOSurfaceTextureSourceOGL::GetFormat() const
-{
- return mSurface->HasAlpha() ? gfx::SurfaceFormat::R8G8B8A8
- : gfx::SurfaceFormat::R8G8B8X8;
-}
-
-void
-MacIOSurfaceTextureSourceOGL::BindTexture(GLenum aTextureUnit,
- gfx::SamplingFilter aSamplingFilter)
-{
- gl::GLContext* gl = this->gl();
- if (!gl || !gl->MakeCurrent()) {
- NS_WARNING("Trying to bind a texture without a working GLContext");
- return;
- }
- GLuint tex = mCompositor->GetTemporaryTexture(GetTextureTarget(), aTextureUnit);
-
- gl->fActiveTexture(aTextureUnit);
- gl->fBindTexture(LOCAL_GL_TEXTURE_RECTANGLE_ARB, tex);
- mSurface->CGLTexImageIOSurface2D(gl::GLContextCGL::Cast(gl)->GetCGLContext());
- ApplySamplingFilterToBoundTexture(gl, aSamplingFilter, LOCAL_GL_TEXTURE_RECTANGLE_ARB);
-}
-
-void
-MacIOSurfaceTextureSourceOGL::SetCompositor(Compositor* aCompositor)
-{
- mCompositor = AssertGLCompositor(aCompositor);
- if (mCompositor && mNextSibling) {
- mNextSibling->SetCompositor(aCompositor);
- }
-}
-
-gl::GLContext*
-MacIOSurfaceTextureSourceOGL::gl() const
-{
- return mCompositor ? mCompositor->gl() : nullptr;
-}
-
-} // namespace layers
-} // namespace mozilla