diff options
author | twiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-26 14:28:35 +0000 |
---|---|---|
committer | twiz@chromium.org <twiz@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-05-26 14:28:35 +0000 |
commit | 62f2e80c79f7d660d7871b14287cef9082fcc32f (patch) | |
tree | 310edb9b2c0aa8409defc654979719cb4d8a4059 /content/renderer/webplugin_delegate_proxy.cc | |
parent | c89b244483969aa8859a1d4bb3396f6ceb54f875 (diff) | |
download | chromium_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.cc | 21 |
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); |