summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authorkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-15 00:58:03 +0000
committerkbr@google.com <kbr@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-15 00:58:03 +0000
commitea04a4e187e030cbc340710285e574f66cc563ac (patch)
tree1331efa8aed5b5cfdbf384c6a5bee6d3885b10b2 /webkit/glue
parent47e119f0e2aa67b9129fee70cad09e32cb8bd7de (diff)
downloadchromium_src-ea04a4e187e030cbc340710285e574f66cc563ac.zip
chromium_src-ea04a4e187e030cbc340710285e574f66cc563ac.tar.gz
chromium_src-ea04a4e187e030cbc340710285e574f66cc563ac.tar.bz2
Made Pepper 3D plugins' output opaque on Mac OS X by filling the
plugin region's alpha channel with 1.0 and then overwriting just the color channels. Core Animation plugins, though they currently always overlay HTML output, remain translucent. BUG=41424 TEST=ran Pepper 3D sample and verified its background is opaque Review URL: http://codereview.chromium.org/1547034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@44594 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/plugins/webplugin.h5
-rw-r--r--webkit/glue/plugins/webplugin_delegate_impl_mac.mm2
2 files changed, 4 insertions, 3 deletions
diff --git a/webkit/glue/plugins/webplugin.h b/webkit/glue/plugins/webplugin.h
index cde5fce..1813842 100644
--- a/webkit/glue/plugins/webplugin.h
+++ b/webkit/glue/plugins/webplugin.h
@@ -148,8 +148,9 @@ class WebPlugin {
// Synthesize a fake window handle for the plug-in to identify the instance
// to the browser, allowing mapping to a surface for hardware accelleration
// of plug-in content. The browser generates the handle which is then set on
- // the plug-in.
- virtual void BindFakePluginWindowHandle() {}
+ // the plug-in. |opaque| indicates whether the content should be treated as
+ // opaque or translucent.
+ virtual void BindFakePluginWindowHandle(bool opaque) {}
// Tell the browser (via the renderer) to invalidate because the
// accelerated buffers have changed.
diff --git a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
index a2ee61d..13ef782 100644
--- a/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
+++ b/webkit/glue/plugins/webplugin_delegate_impl_mac.mm
@@ -294,7 +294,7 @@ bool WebPluginDelegateImpl::PlatformInitialize() {
reinterpret_cast<void*>(&layer));
if (!err) {
layer_ = layer;
- plugin_->BindFakePluginWindowHandle();
+ plugin_->BindFakePluginWindowHandle(false);
surface_ = new AcceleratedSurface;
surface_->Initialize(NULL, true);
renderer_ = [[CARenderer rendererWithCGLContext:surface_->context()