summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-13 17:06:53 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-13 17:06:53 +0000
commit7f1fe3fad451d8809d94b19fca516a2a2134e38c (patch)
tree6954e9cf8f4bd15293f8088b4f1ae51ffd48b5bb /webkit
parent44df75248693160a9e677690f0a51e9ba3ce3b32 (diff)
downloadchromium_src-7f1fe3fad451d8809d94b19fca516a2a2134e38c.zip
chromium_src-7f1fe3fad451d8809d94b19fca516a2a2134e38c.tar.gz
chromium_src-7f1fe3fad451d8809d94b19fca516a2a2134e38c.tar.bz2
Keep the cairo clipping region in sync with the Skia one.
The PlatformCanvas now tracks this, so we don't need to have the similar code in gfx::Canvas. I moved most references of cairo_surface_t to cairo_t since the cairo_t has a transform and clip but the surface does not. Review URL: http://codereview.chromium.org/149409 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20499 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/plugins/webplugin_delegate_impl_gtk.cc20
-rw-r--r--webkit/tools/test_shell/webwidget_host_gtk.cc7
2 files changed, 13 insertions, 14 deletions
diff --git a/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc b/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
index de4a60f..7176642 100644
--- a/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
+++ b/webkit/glue/plugins/webplugin_delegate_impl_gtk.cc
@@ -174,13 +174,13 @@ void WebPluginDelegateImpl::UpdateGeometry(
}
}
-void WebPluginDelegateImpl::Paint(cairo_surface_t* context,
+void WebPluginDelegateImpl::Paint(cairo_t* context,
const gfx::Rect& rect) {
if (windowless_)
WindowlessPaint(context, rect);
}
-void WebPluginDelegateImpl::Print(cairo_surface_t* context) {
+void WebPluginDelegateImpl::Print(cairo_t* context) {
NOTIMPLEMENTED();
}
@@ -399,7 +399,7 @@ void DrawDebugRectangle(cairo_surface_t* surface,
} // namespace
#endif
-void WebPluginDelegateImpl::WindowlessPaint(cairo_surface_t* context,
+void WebPluginDelegateImpl::WindowlessPaint(cairo_t* context,
const gfx::Rect& damage_rect) {
// Compare to:
// http://mxr.mozilla.org/firefox/source/layout/generic/nsObjectFrame.cpp:
@@ -526,7 +526,8 @@ void WebPluginDelegateImpl::WindowlessPaint(cairo_surface_t* context,
// Copy the current image into the pixmap, so the plugin can draw over
// this background.
cairo_t* cairo = gdk_cairo_create(pixmap_);
- cairo_set_source_surface(cairo, context, offset_x, offset_y);
+ cairo_set_source_surface(cairo, cairo_get_target(context),
+ offset_x, offset_y);
cairo_rectangle(cairo, draw_rect.x() + offset_x, draw_rect.y() + offset_y,
draw_rect.width(), draw_rect.height());
cairo_clip(cairo);
@@ -551,13 +552,12 @@ void WebPluginDelegateImpl::WindowlessPaint(cairo_surface_t* context,
DCHECK_EQ(err, NPERR_NO_ERROR);
// Now copy the rendered image pixmap back into the drawing buffer.
- cairo = cairo_create(context);
- gdk_cairo_set_source_pixmap(cairo, pixmap_, -offset_x, -offset_y);
- cairo_rectangle(cairo, draw_rect.x(), draw_rect.y(),
+ gdk_cairo_set_source_pixmap(context, pixmap_, -offset_x, -offset_y);
+ cairo_rectangle(context, draw_rect.x(), draw_rect.y(),
draw_rect.width(), draw_rect.height());
- cairo_clip(cairo);
- cairo_paint(cairo);
- cairo_destroy(cairo);
+ cairo_clip(context);
+ cairo_paint(context);
+ cairo_destroy(context);
#ifdef DEBUG_RECTANGLES
// Draw some debugging rectangles.
diff --git a/webkit/tools/test_shell/webwidget_host_gtk.cc b/webkit/tools/test_shell/webwidget_host_gtk.cc
index dd5b311..9703213 100644
--- a/webkit/tools/test_shell/webwidget_host_gtk.cc
+++ b/webkit/tools/test_shell/webwidget_host_gtk.cc
@@ -357,11 +357,10 @@ void WebWidgetHost::Paint() {
gdk_window_begin_paint_rect(window, &grect);
// BitBlit to the gdk window.
- skia::PlatformDevice& platdev = canvas_->getTopPlatformDevice();
- skia::BitmapPlatformDevice* const bitdev =
- static_cast<skia::BitmapPlatformDevice*>(&platdev);
+ cairo_t* source_surface = canvas_->beginPlatformPaint();
cairo_t* cairo_drawable = gdk_cairo_create(window);
- cairo_set_source_surface(cairo_drawable, bitdev->surface(), 0, 0);
+ cairo_set_source_surface(cairo_drawable, cairo_get_target(source_surface),
+ 0, 0);
cairo_paint(cairo_drawable);
cairo_destroy(cairo_drawable);