summaryrefslogtreecommitdiffstats
path: root/content/renderer/webplugin_delegate_proxy.cc
diff options
context:
space:
mode:
authortwiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-26 14:28:35 +0000
committertwiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-05-26 14:28:35 +0000
commit62f2e80c79f7d660d7871b14287cef9082fcc32f (patch)
tree310edb9b2c0aa8409defc654979719cb4d8a4059 /content/renderer/webplugin_delegate_proxy.cc
parentc89b244483969aa8859a1d4bb3396f6ceb54f875 (diff)
downloadchromium_src-62f2e80c79f7d660d7871b14287cef9082fcc32f.zip
chromium_src-62f2e80c79f7d660d7871b14287cef9082fcc32f.tar.gz
chromium_src-62f2e80c79f7d660d7871b14287cef9082fcc32f.tar.bz2
This change implements a first pass in the effort to remove the dependency of PlatformDevice within Chrome. The Skia library now provides multiple back-ends for the SkDevice class, so PlatformDevice's inheritance of SkDevice, and the assumption of instances of PlatformDevice limits the use of these new back-ends.
A new set of helper functions is provided for the PlatformDevice entry points. Upon construction of a PlatformDevice, a pointer to the interface is cached in the parent SkDevice's SkMetaData. The new helper functions forward calls to the interface cached in the metadata. BUG=NONE TEST=NONE Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=86625 Reverted: http://src.chromium.org/viewvc/chrome?view=rev&revision=86625 Review URL: http://codereview.chromium.org/7019013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86823 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/webplugin_delegate_proxy.cc')
-rw-r--r--content/renderer/webplugin_delegate_proxy.cc21
1 files changed, 11 insertions, 10 deletions
diff --git a/content/renderer/webplugin_delegate_proxy.cc b/content/renderer/webplugin_delegate_proxy.cc
index d9a71d2..c91c2d1 100644
--- a/content/renderer/webplugin_delegate_proxy.cc
+++ b/content/renderer/webplugin_delegate_proxy.cc
@@ -728,7 +728,9 @@ void WebPluginDelegateProxy::Paint(WebKit::WebCanvas* canvas,
// We're using the native OS APIs from here on out.
#if WEBKIT_USING_SKIA
- gfx::NativeDrawingContext context = skia::BeginPlatformPaint(canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas);
+ gfx::NativeDrawingContext context =
+ scoped_platform_paint.GetPlatformSurface();
#elif WEBKIT_USING_CG
gfx::NativeDrawingContext context = canvas;
#endif
@@ -764,10 +766,6 @@ void WebPluginDelegateProxy::Paint(WebKit::WebCanvas* canvas,
invalidate_pending_ = false;
Send(new PluginMsg_DidPaint(instance_id_));
}
-
-#if WEBKIT_USING_SKIA
- skia::EndPlatformPaint(canvas);
-#endif
}
bool WebPluginDelegateProxy::BackgroundChanged(
@@ -850,8 +848,10 @@ bool WebPluginDelegateProxy::BackgroundChanged(
int page_start_x = content_rect.x() - context_offset_x;
int page_start_y = content_rect.y() - context_offset_y;
- CGContextRef bg_context =
- background_store_canvas_->getTopPlatformDevice().GetBitmapContext();
+ skia::ScopedPlatformPaint scoped_platform_paint(
+ background_store_canvas_.get());
+ CGContextRef bg_context = scoped_platform_paint.GetPlatformSurface();
+
DCHECK_EQ(CGBitmapContextGetBitsPerPixel(context),
CGBitmapContextGetBitsPerPixel(bg_context));
const unsigned char* bg_bytes = static_cast<const unsigned char*>(
@@ -869,9 +869,10 @@ bool WebPluginDelegateProxy::BackgroundChanged(
int page_start_x = static_cast<int>(page_x_double);
int page_start_y = static_cast<int>(page_y_double);
- skia::PlatformDevice& device =
- background_store_canvas_->getTopPlatformDevice();
- cairo_surface_t* bg_surface = cairo_get_target(device.BeginPlatformPaint());
+ skia::ScopedPlatformPaint scoped_platform_paint(
+ background_store_canvas_.get());
+ cairo_surface_t* bg_surface =cairo_get_target(
+ scoped_platform_paint.GetPlatformSurface());
DCHECK_EQ(cairo_surface_get_type(bg_surface), CAIRO_SURFACE_TYPE_IMAGE);
DCHECK_EQ(cairo_image_surface_get_format(bg_surface), CAIRO_FORMAT_ARGB32);
cairo_surface_flush(bg_surface);