| Index: webkit/glue/plugins/mac_accelerated_surface_container.h
|
| diff --git a/webkit/glue/plugins/mac_accelerated_surface_container.h b/webkit/glue/plugins/mac_accelerated_surface_container.h
|
| deleted file mode 100644
|
| index 0fd17937b56df28bf627b4b89cbca628bebf2b64..0000000000000000000000000000000000000000
|
| --- a/webkit/glue/plugins/mac_accelerated_surface_container.h
|
| +++ /dev/null
|
| @@ -1,110 +0,0 @@
|
| -// Copyright (c) 2010 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef WEBKIT_GLUE_PLUGINS_MAC_ACCELERATED_SURFACE_CONTAINER_H_
|
| -#define WEBKIT_GLUE_PLUGINS_MAC_ACCELERATED_SURFACE_CONTAINER_H_
|
| -
|
| -// The "GPU plugin" is currently implemented as a special kind of
|
| -// NPAPI plugin to provide high-performance on-screen 3D rendering for
|
| -// Pepper 3D.
|
| -//
|
| -// On Windows and X11 platforms the GPU plugin relies on cross-process
|
| -// parenting of windows, which is not supported via any public APIs in
|
| -// the Mac OS X window system.
|
| -//
|
| -// To achieve full hardware acceleration we use the new IOSurface APIs
|
| -// introduced in Mac OS X 10.6. The GPU plugin's process produces an
|
| -// IOSurface and renders into it using OpenGL. It uses the
|
| -// IOSurfaceGetID and IOSurfaceLookup APIs to pass a reference to this
|
| -// surface to the browser process for on-screen rendering. The GPU
|
| -// plugin essentially looks like a windowless plugin; the browser
|
| -// process gets all of the mouse events, because the plugin process
|
| -// does not have an on-screen window.
|
| -//
|
| -// This class encapsulates some of the management of these data
|
| -// structures, in conjunction with the MacAcceleratedSurfaceContainerManager.
|
| -
|
| -#include <CoreFoundation/CoreFoundation.h>
|
| -#include <OpenGL/OpenGL.h>
|
| -
|
| -#include "app/gfx/native_widget_types.h"
|
| -#include "app/surface/transport_dib.h"
|
| -#include "base/basictypes.h"
|
| -#include "base/scoped_ptr.h"
|
| -#include "base/gfx/rect.h"
|
| -
|
| -namespace webkit_glue {
|
| -struct WebPluginGeometry;
|
| -}
|
| -
|
| -class MacAcceleratedSurfaceContainerManager;
|
| -
|
| -class MacAcceleratedSurfaceContainer {
|
| - public:
|
| - MacAcceleratedSurfaceContainer();
|
| - virtual ~MacAcceleratedSurfaceContainer();
|
| -
|
| - // Sets the backing store and size of this accelerated surface container.
|
| - // There are two versions: the IOSurface version is used on systems where the
|
| - // IOSurface API is supported (Mac OS X 10.6 and later); the TransportDIB is
|
| - // used on Mac OS X 10.5 and earlier.
|
| - void SetSizeAndIOSurface(int32 width,
|
| - int32 height,
|
| - uint64 io_surface_identifier,
|
| - MacAcceleratedSurfaceContainerManager* manager);
|
| - void SetSizeAndTransportDIB(int32 width,
|
| - int32 height,
|
| - TransportDIB::Handle transport_dib,
|
| - MacAcceleratedSurfaceContainerManager* manager);
|
| -
|
| - // Tells the accelerated surface container that it has moved relative to the
|
| - // origin of the window, for example because of a scroll event.
|
| - void MoveTo(const webkit_glue::WebPluginGeometry& geom);
|
| -
|
| - // Draws this accelerated surface's contents, texture mapped onto a quad in
|
| - // the given OpenGL context. TODO(kbr): figure out and define exactly how the
|
| - // coordinate system will work out.
|
| - void Draw(CGLContextObj context);
|
| -
|
| - // Enqueue our texture for later deletion. Call this before deleting
|
| - // this object.
|
| - void EnqueueTextureForDeletion(MacAcceleratedSurfaceContainerManager* manager);
|
| -
|
| - private:
|
| - // The x and y coordinates of the plugin window on the web page.
|
| - int x_;
|
| - int y_;
|
| -
|
| - void ReleaseIOSurface();
|
| -
|
| - // The IOSurfaceRef, if any, that has been handed from the GPU
|
| - // plugin process back to the browser process for drawing.
|
| - // This is held as a CFTypeRef because we can't refer to the
|
| - // IOSurfaceRef type when building on 10.5.
|
| - CFTypeRef surface_;
|
| -
|
| - // The TransportDIB which is used in pre-10.6 systems where the IOSurface
|
| - // API is not supported. This is a weak reference to the actual TransportDIB
|
| - // whic is owned by the GPU process.
|
| - scoped_ptr<TransportDIB> transport_dib_;
|
| -
|
| - // The width and height of the surface.
|
| - int32 width_;
|
| - int32 height_;
|
| -
|
| - // The clip rectangle, relative to the (x_, y_) origin.
|
| - gfx::Rect clipRect_;
|
| -
|
| - // The "live" OpenGL texture referring to this IOSurfaceRef. Note
|
| - // that per the CGLTexImageIOSurface2D API we do not need to
|
| - // explicitly update this texture's contents once created. All we
|
| - // need to do is ensure it is re-bound before attempting to draw
|
| - // with it.
|
| - GLuint texture_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MacAcceleratedSurfaceContainer);
|
| -};
|
| -
|
| -#endif // WEBKIT_GLUE_PLUGINS_MAC_ACCELERATED_SURFACE_CONTAINER_H_
|
| -
|
|
|