summaryrefslogtreecommitdiff
path: root/widget/cocoa/RectTextureImage.h
diff options
context:
space:
mode:
Diffstat (limited to 'widget/cocoa/RectTextureImage.h')
-rw-r--r--widget/cocoa/RectTextureImage.h80
1 files changed, 0 insertions, 80 deletions
diff --git a/widget/cocoa/RectTextureImage.h b/widget/cocoa/RectTextureImage.h
deleted file mode 100644
index 022b216c6b..0000000000
--- a/widget/cocoa/RectTextureImage.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/* -*- Mode: C++; tab-width: 2; 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/. */
-
-#ifndef RectTextureImage_h_
-#define RectTextureImage_h_
-
-#include "mozilla/RefPtr.h"
-
-class MacIOSurface;
-
-namespace mozilla {
-
-namespace gl {
-class GLContext;
-} // namespace gl
-
-namespace widget {
-
-// Manages a texture which can resize dynamically, binds to the
-// LOCAL_GL_TEXTURE_RECTANGLE_ARB texture target and is automatically backed
-// by a power-of-two size GL texture. The latter two features are used for
-// compatibility with older Mac hardware which we block GL layers on.
-// RectTextureImages are used both for accelerated GL layers drawing and for
-// OMTC BasicLayers drawing.
-class RectTextureImage {
-public:
- RectTextureImage();
-
- virtual ~RectTextureImage();
-
- already_AddRefed<gfx::DrawTarget>
- BeginUpdate(const LayoutDeviceIntSize& aNewSize,
- const LayoutDeviceIntRegion& aDirtyRegion =
- LayoutDeviceIntRegion());
- void EndUpdate();
-
- void UpdateIfNeeded(const LayoutDeviceIntSize& aNewSize,
- const LayoutDeviceIntRegion& aDirtyRegion,
- void (^aCallback)(gfx::DrawTarget*,
- const LayoutDeviceIntRegion&))
- {
- RefPtr<gfx::DrawTarget> drawTarget = BeginUpdate(aNewSize, aDirtyRegion);
- if (drawTarget) {
- aCallback(drawTarget, GetUpdateRegion());
- EndUpdate();
- }
- }
-
- void UpdateFromCGContext(const LayoutDeviceIntSize& aNewSize,
- const LayoutDeviceIntRegion& aDirtyRegion,
- CGContextRef aCGContext);
-
- LayoutDeviceIntRegion GetUpdateRegion() {
- MOZ_ASSERT(mInUpdate, "update region only valid during update");
- return mUpdateRegion;
- }
-
- void Draw(mozilla::layers::GLManager* aManager,
- const LayoutDeviceIntPoint& aLocation,
- const gfx::Matrix4x4& aTransform = gfx::Matrix4x4());
-
-
-protected:
- void DeleteTexture();
- void BindIOSurfaceToTexture(gl::GLContext* aGL);
-
- RefPtr<MacIOSurface> mIOSurface;
- gl::GLContext* mGLContext;
- LayoutDeviceIntRegion mUpdateRegion;
- LayoutDeviceIntSize mBufferSize;
- GLuint mTexture;
- bool mInUpdate;
-};
-
-} // namespace widget
-} // namespace mozilla
-
-#endif // RectTextureImage_h_