summaryrefslogtreecommitdiffstats
path: root/chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc
diff options
context:
space:
mode:
authorKristian Monsen <kristianm@google.com>2011-06-09 11:47:42 +0100
committerKristian Monsen <kristianm@google.com>2011-06-29 14:33:03 +0100
commitdc0f95d653279beabeb9817299e2902918ba123e (patch)
tree32eb121cd532053a5b9cb0c390331349af8d6baa /chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc
parentba160cd4054d13d0cb0b1b46e61c3bed67095811 (diff)
downloadexternal_chromium-dc0f95d653279beabeb9817299e2902918ba123e.zip
external_chromium-dc0f95d653279beabeb9817299e2902918ba123e.tar.gz
external_chromium-dc0f95d653279beabeb9817299e2902918ba123e.tar.bz2
Merge Chromium at r11.0.696.0: Initial merge by git
Change-Id: I273dde2843af0839dfc08b419bb443fbd449532d
Diffstat (limited to 'chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc')
-rw-r--r--chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc173
1 files changed, 0 insertions, 173 deletions
diff --git a/chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc b/chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc
deleted file mode 100644
index ff1f052..0000000
--- a/chrome/browser/renderer_host/accelerated_surface_container_manager_mac.cc
+++ /dev/null
@@ -1,173 +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.
-
-#include "chrome/browser/renderer_host/accelerated_surface_container_manager_mac.h"
-
-#include "base/logging.h"
-#include "chrome/browser/renderer_host/accelerated_surface_container_mac.h"
-#include "webkit/plugins/npapi/webplugin.h"
-
-AcceleratedSurfaceContainerManagerMac::AcceleratedSurfaceContainerManagerMac()
- : current_id_(0),
- root_container_(NULL),
- root_container_handle_(gfx::kNullPluginWindow),
- gpu_rendering_active_(false) {
-}
-
-gfx::PluginWindowHandle
-AcceleratedSurfaceContainerManagerMac::AllocateFakePluginWindowHandle(
- bool opaque, bool root) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container =
- new AcceleratedSurfaceContainerMac(this, opaque);
- gfx::PluginWindowHandle res =
- static_cast<gfx::PluginWindowHandle>(++current_id_);
- plugin_window_to_container_map_.insert(std::make_pair(res, container));
- if (root) {
- root_container_ = container;
- root_container_handle_ = res;
- }
- return res;
-}
-
-void AcceleratedSurfaceContainerManagerMac::DestroyFakePluginWindowHandle(
- gfx::PluginWindowHandle id) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- if (container) {
- if (container == root_container_) {
- root_container_ = NULL;
- root_container_handle_ = gfx::kNullPluginWindow;
- }
- delete container;
- }
- plugin_window_to_container_map_.erase(id);
-}
-
-bool AcceleratedSurfaceContainerManagerMac::IsRootContainer(
- gfx::PluginWindowHandle id) const {
- return root_container_handle_ != gfx::kNullPluginWindow &&
- root_container_handle_ == id;
-}
-
-void AcceleratedSurfaceContainerManagerMac::
- set_gpu_rendering_active(bool active) {
- if (gpu_rendering_active_ && !active)
- SetRootSurfaceInvalid();
- gpu_rendering_active_ = active;
-}
-
-void AcceleratedSurfaceContainerManagerMac::SetSizeAndIOSurface(
- gfx::PluginWindowHandle id,
- int32 width,
- int32 height,
- uint64 io_surface_identifier) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- if (container) {
- container->SetSizeAndIOSurface(width, height, io_surface_identifier);
- }
-}
-
-void AcceleratedSurfaceContainerManagerMac::SetSizeAndTransportDIB(
- gfx::PluginWindowHandle id,
- int32 width,
- int32 height,
- TransportDIB::Handle transport_dib) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- if (container)
- container->SetSizeAndTransportDIB(width, height, transport_dib);
-}
-
-void AcceleratedSurfaceContainerManagerMac::SetPluginContainerGeometry(
- const webkit::npapi::WebPluginGeometry& move) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(move.window);
- if (container)
- container->SetGeometry(move);
-}
-
-void AcceleratedSurfaceContainerManagerMac::Draw(CGLContextObj context,
- gfx::PluginWindowHandle id) {
- base::AutoLock lock(lock_);
-
- glColorMask(true, true, true, true);
- // Should match the clear color of RenderWidgetHostViewMac.
- glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
- // TODO(thakis): Clearing the whole color buffer is wasteful, since most of
- // it is overwritten by the surface.
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- glDisable(GL_DEPTH_TEST);
- glDisable(GL_BLEND);
-
- glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- CHECK(container);
- container->Draw(context);
-
- // Unbind any texture from the texture target to ensure that the
- // next time through we will have to re-bind the texture and thereby
- // pick up modifications from the other process.
- GLenum target = GL_TEXTURE_RECTANGLE_ARB;
- glBindTexture(target, 0);
-
- glFlush();
-}
-
-void AcceleratedSurfaceContainerManagerMac::ForceTextureReload() {
- base::AutoLock lock(lock_);
-
- for (PluginWindowToContainerMap::const_iterator i =
- plugin_window_to_container_map_.begin();
- i != plugin_window_to_container_map_.end(); ++i) {
- AcceleratedSurfaceContainerMac* container = i->second;
- container->ForceTextureReload();
- }
-}
-
-void AcceleratedSurfaceContainerManagerMac::SetSurfaceWasPaintedTo(
- gfx::PluginWindowHandle id, uint64 surface_id) {
- base::AutoLock lock(lock_);
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- if (container)
- container->set_was_painted_to(surface_id);
-}
-
-void AcceleratedSurfaceContainerManagerMac::SetRootSurfaceInvalid() {
- base::AutoLock lock(lock_);
- if (root_container_)
- root_container_->set_surface_invalid();
-}
-
-bool AcceleratedSurfaceContainerManagerMac::SurfaceShouldBeVisible(
- gfx::PluginWindowHandle id) const {
- base::AutoLock lock(lock_);
-
- if (IsRootContainer(id) && !gpu_rendering_active_)
- return false;
-
- AcceleratedSurfaceContainerMac* container = MapIDToContainer(id);
- return container && container->ShouldBeVisible();
-}
-
-AcceleratedSurfaceContainerMac*
- AcceleratedSurfaceContainerManagerMac::MapIDToContainer(
- gfx::PluginWindowHandle id) const {
- PluginWindowToContainerMap::const_iterator i =
- plugin_window_to_container_map_.find(id);
- if (i != plugin_window_to_container_map_.end())
- return i->second;
-
- LOG(ERROR) << "Request for plugin container for unknown window id " << id;
-
- return NULL;
-}