summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/chromeos/frame/bubble_frame_view.cc2
-rw-r--r--chrome/browser/chromeos/frame/panel_controller.cc2
-rw-r--r--chrome/browser/chromeos/login/helper.cc2
-rw-r--r--chrome/browser/chromeos/login/rounded_rect_painter.cc14
-rw-r--r--chrome/browser/chromeos/login/rounded_view.h8
-rw-r--r--chrome/browser/chromeos/login/user_view.cc2
-rw-r--r--chrome/browser/chromeos/login/username_view.cc8
-rw-r--r--chrome/browser/download/download_util.cc6
-rw-r--r--chrome/browser/tab_contents/thumbnail_generator_unittest.cc18
-rw-r--r--chrome/browser/ui/gtk/infobars/infobar_container_gtk.cc2
-rw-r--r--chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc15
-rw-r--r--chrome/browser/ui/views/aura/aura_init.cc2
-rw-r--r--chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc8
-rw-r--r--chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc2
-rw-r--r--chrome/browser/ui/views/create_application_shortcut_view.cc4
-rw-r--r--chrome/browser/ui/views/detachable_toolbar_view.cc8
-rw-r--r--chrome/browser/ui/views/download/download_item_view.cc6
-rw-r--r--chrome/browser/ui/views/frame/opaque_browser_frame_view.cc2
-rw-r--r--chrome/browser/ui/views/fullscreen_exit_bubble_views.cc2
-rw-r--r--chrome/browser/ui/views/infobars/infobar_background.cc2
-rw-r--r--chrome/browser/ui/views/infobars/translate_infobar_base.cc2
-rw-r--r--chrome/browser/ui/views/location_bar/content_setting_image_view.cc8
-rw-r--r--chrome/browser/ui/views/location_bar/location_bar_view.cc4
-rw-r--r--chrome/browser/ui/views/notifications/balloon_view.cc2
-rw-r--r--chrome/browser/ui/views/omnibox/omnibox_view_win.cc21
-rw-r--r--chrome/browser/ui/views/status_bubble_views.cc4
-rw-r--r--chrome/browser/ui/views/tabs/dragged_tab_controller.cc2
-rw-r--r--chrome/browser/ui/views/tabs/dragged_tab_view.cc4
-rw-r--r--chrome/browser/ui/views/tabs/native_view_photobooth_win.cc2
-rw-r--r--chrome/browser/ui/views/tabs/side_tab.cc8
-rw-r--r--chrome/browser/ui/views/tabs/tab.cc4
-rw-r--r--chrome/browser/ui/views/theme_helpers.cc9
-rw-r--r--chrome/browser/ui/views/theme_install_bubble_view.cc2
-rw-r--r--chrome/common/badge_util.cc3
-rw-r--r--chrome/common/extensions/extension_action.cc18
-rw-r--r--content/browser/renderer_host/backing_store_skia.cc2
-rw-r--r--content/browser/renderer_host/render_widget_host_unittest.cc3
-rw-r--r--content/browser/renderer_host/render_widget_host_view_win.cc8
-rw-r--r--skia/ext/canvas_paint_common.h18
-rw-r--r--skia/ext/canvas_paint_gtk.h10
-rw-r--r--skia/ext/canvas_paint_mac.h17
-rw-r--r--skia/ext/canvas_paint_wayland.h11
-rw-r--r--skia/ext/canvas_paint_win.h15
-rw-r--r--skia/ext/canvas_paint_x.h12
-rw-r--r--ui/aura/demo/demo_main.cc2
-rw-r--r--ui/aura/window_unittest.cc2
-rw-r--r--ui/base/clipboard/clipboard_gtk.cc2
-rw-r--r--ui/base/clipboard/clipboard_mac.mm2
-rw-r--r--ui/base/clipboard/clipboard_win.cc5
-rw-r--r--ui/gfx/canvas.cc10
-rw-r--r--ui/gfx/canvas.h4
-rw-r--r--ui/gfx/canvas_skia.cc74
-rw-r--r--ui/gfx/canvas_skia.h10
-rw-r--r--ui/gfx/canvas_skia_linux.cc20
-rw-r--r--ui/gfx/canvas_skia_mac.mm12
-rw-r--r--ui/gfx/canvas_skia_paint.h13
-rw-r--r--ui/gfx/canvas_skia_win.cc30
-rw-r--r--ui/gfx/compositor/layer.cc2
-rw-r--r--ui/gfx/compositor/layer_unittest.cc4
-rw-r--r--ui/gfx/render_text.cc10
-rw-r--r--ui/gfx/render_text_linux.cc4
-rw-r--r--ui/gfx/render_text_win.cc14
-rw-r--r--views/aura_desktop/aura_desktop_main.cc2
-rw-r--r--views/background.cc2
-rw-r--r--views/bubble/bubble_border.cc4
-rw-r--r--views/controls/button/text_button.cc16
-rw-r--r--views/controls/combobox/native_combobox_views.cc2
-rw-r--r--views/controls/focusable_border.cc2
-rw-r--r--views/controls/menu/menu_image_util_linux.cc12
-rw-r--r--views/controls/menu/menu_item_view_linux.cc4
-rw-r--r--views/controls/menu/menu_item_view_win.cc10
-rw-r--r--views/controls/menu/menu_scroll_view_container.cc8
-rw-r--r--views/controls/menu/menu_separator_win.cc4
-rw-r--r--views/controls/menu/menu_win.cc6
-rw-r--r--views/controls/menu/native_menu_win.cc12
-rw-r--r--views/controls/progress_bar.cc12
-rw-r--r--views/controls/scrollbar/native_scroll_bar_views.cc6
-rw-r--r--views/controls/tabbed_pane/native_tabbed_pane_win.cc2
-rw-r--r--views/controls/table/native_table_win.cc10
-rw-r--r--views/controls/table/table_view.cc13
-rw-r--r--views/controls/tree/tree_view.cc6
-rw-r--r--views/desktop/desktop_background.cc4
-rw-r--r--views/native_theme_painter.cc12
-rw-r--r--views/painter.cc4
-rw-r--r--views/touchui/touch_selection_controller_impl.cc6
-rw-r--r--views/view.cc2
-rw-r--r--views/view_unittest.cc2
-rw-r--r--views/widget/native_widget_win.cc8
-rw-r--r--views/widget/root_view.cc2
-rw-r--r--views/window/dialog_client_view.cc2
90 files changed, 388 insertions, 311 deletions
diff --git a/chrome/browser/chromeos/frame/bubble_frame_view.cc b/chrome/browser/chromeos/frame/bubble_frame_view.cc
index e864b80..9b77a43 100644
--- a/chrome/browser/chromeos/frame/bubble_frame_view.cc
+++ b/chrome/browser/chromeos/frame/bubble_frame_view.cc
@@ -215,7 +215,7 @@ void BubbleFrameView::OnPaint(gfx::Canvas* canvas) {
rect.set(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y()),
SkIntToScalar(bounds.right()), SkIntToScalar(bounds.bottom()));
path.addRect(rect);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
void BubbleFrameView::ButtonPressed(views::Button* sender,
diff --git a/chrome/browser/chromeos/frame/panel_controller.cc b/chrome/browser/chromeos/frame/panel_controller.cc
index a81beff..9f9731e 100644
--- a/chrome/browser/chromeos/frame/panel_controller.cc
+++ b/chrome/browser/chromeos/frame/panel_controller.cc
@@ -131,7 +131,7 @@ class TitleBackgroundPainter : public views::Painter {
paint.setShader(s);
// Need to unref shader, otherwise never deleted.
s->unref();
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
PanelController* panel_controller_;
diff --git a/chrome/browser/chromeos/login/helper.cc b/chrome/browser/chromeos/login/helper.cc
index f561899..4333af3 100644
--- a/chrome/browser/chromeos/login/helper.cc
+++ b/chrome/browser/chromeos/login/helper.cc
@@ -62,7 +62,7 @@ class BackgroundPainter : public views::Painter {
NULL);
paint.setShader(s);
s->unref();
- canvas->AsCanvasSkia()->drawRect(rect, paint);
+ canvas->GetSkCanvas()->drawRect(rect, paint);
}
private:
diff --git a/chrome/browser/chromeos/login/rounded_rect_painter.cc b/chrome/browser/chromeos/login/rounded_rect_painter.cc
index 883f1a7..cb2d4b7 100644
--- a/chrome/browser/chromeos/login/rounded_rect_painter.cc
+++ b/chrome/browser/chromeos/login/rounded_rect_painter.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -53,7 +53,7 @@ static void DrawRoundedRect(
} else {
paint.setColor(top_color);
}
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
if (stroke_color != 0) {
// Expand rect by 0.5px so resulting stroke will take the whole pixel.
@@ -66,7 +66,7 @@ static void DrawRoundedRect(
paint.setStyle(SkPaint::kStroke_Style);
paint.setStrokeWidth(SkIntToScalar(SK_Scalar1));
paint.setColor(stroke_color);
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
rect,
SkIntToScalar(corner_radius), SkIntToScalar(corner_radius),
paint);
@@ -91,7 +91,7 @@ static void DrawRoundedRectShadow(
rect.set(
SkIntToScalar(x + shadow / 2), SkIntToScalar(y + shadow / 2),
SkIntToScalar(x + w - shadow / 2), SkIntToScalar(y + h - shadow / 2));
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
rect,
SkIntToScalar(corner_radius), SkIntToScalar(corner_radius),
paint);
@@ -112,7 +112,7 @@ static void DrawRectWithBorder(int w,
if (padding > 0) {
SkPaint paint;
paint.setColor(padding_color);
- canvas->AsCanvasSkia()->drawRectCoords(
+ canvas->GetSkCanvas()->drawRectCoords(
SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(w), SkIntToScalar(h),
paint);
}
@@ -207,12 +207,12 @@ class RoundedBackground : public views::Background {
paint.setStyle(SkPaint::kFill_Style);
paint.setFlags(SkPaint::kAntiAlias_Flag);
paint.setColor(get_color());
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
// Redraw boundary region with correspoinding color.
paint.setStyle(SkPaint::kStroke_Style);
paint.setStrokeWidth(SkIntToScalar(stroke_width_));
paint.setColor(stroke_color_);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
private:
diff --git a/chrome/browser/chromeos/login/rounded_view.h b/chrome/browser/chromeos/login/rounded_view.h
index c1080d7..3be2f91 100644
--- a/chrome/browser/chromeos/login/rounded_view.h
+++ b/chrome/browser/chromeos/login/rounded_view.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -61,7 +61,7 @@ template <typename C>
void RoundedView<C>::Paint(gfx::Canvas* canvas) {
// Setup clip region.
canvas->Save();
- canvas->AsCanvasSkia()->clipPath(GetClipPath());
+ canvas->GetSkCanvas()->clipPath(GetClipPath());
// Do original painting.
C::Paint(canvas);
canvas->Restore();
@@ -112,7 +112,7 @@ void RoundedView<C>::DrawFrame(gfx::Canvas* canvas) {
view_rect.fTop -= kOriginShift;
view_rect.inset(rounded_view::kStrokeWidth, rounded_view::kStrokeWidth);
paint.setColor(rounded_view::kInnerFrameColor);
- canvas->AsCanvasSkia()->
+ canvas->GetSkCanvas()->
drawRoundRect(view_rect,
rounded_view::kCornerRadius - rounded_view::kStrokeWidth,
rounded_view::kCornerRadius - rounded_view::kStrokeWidth,
@@ -124,7 +124,7 @@ void RoundedView<C>::DrawFrame(gfx::Canvas* canvas) {
view_rect.offset(rounded_view::kStrokeWidth - kDelta,
rounded_view::kStrokeWidth - kDelta);
paint.setColor(rounded_view::kOuterFrameColor);
- canvas->AsCanvasSkia()->drawRoundRect(view_rect, rounded_view::kCornerRadius,
+ canvas->GetSkCanvas()->drawRoundRect(view_rect, rounded_view::kCornerRadius,
rounded_view::kCornerRadius, paint);
}
diff --git a/chrome/browser/chromeos/login/user_view.cc b/chrome/browser/chromeos/login/user_view.cc
index 8cca3fe..20d6313 100644
--- a/chrome/browser/chromeos/login/user_view.cc
+++ b/chrome/browser/chromeos/login/user_view.cc
@@ -52,7 +52,7 @@ class SignoutBackgroundPainter : public views::Painter {
paint.setStyle(SkPaint::kFill_Style);
paint.setFlags(SkPaint::kAntiAlias_Flag);
paint.setColor(kSignoutBackgroundColor);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
};
diff --git a/chrome/browser/chromeos/login/username_view.cc b/chrome/browser/chromeos/login/username_view.cc
index 34f657e..c2aa423 100644
--- a/chrome/browser/chromeos/login/username_view.cc
+++ b/chrome/browser/chromeos/login/username_view.cc
@@ -63,7 +63,7 @@ void UsernameView::PaintUsername(const gfx::Rect& bounds) {
margin_width_ = bounds.height() * kMarginRatio;
gfx::CanvasSkia canvas(bounds.width(), bounds.height(), false);
// Draw transparent background.
- canvas.drawColor(0);
+ canvas.sk_canvas()->drawColor(0);
// Calculate needed space.
int flags = gfx::Canvas::TEXT_ALIGN_LEFT |
@@ -108,7 +108,7 @@ void UsernameView::PaintUsername(const gfx::Rect& bounds) {
SkPaint paint;
paint.setShader(composite_shader)->unref();
- canvas.drawPaint(paint);
+ canvas.sk_canvas()->drawPaint(paint);
}
// Draw the text.
@@ -124,7 +124,7 @@ void UsernameView::PaintUsername(const gfx::Rect& bounds) {
if (use_fading_for_text) {
// Fade out only the text in the end. Use regular background.
- canvas.drawColor(kLabelBackgoundColor, SkXfermode::kSrc_Mode);
+ canvas.sk_canvas()->drawColor(kLabelBackgoundColor, SkXfermode::kSrc_Mode);
SkShader* image_shader = SkShader::CreateBitmapShader(
*text_image_,
SkShader::kRepeat_TileMode,
@@ -137,7 +137,7 @@ void UsernameView::PaintUsername(const gfx::Rect& bounds) {
SkPaint paint;
paint.setShader(composite_shader)->unref();
- canvas.drawPaint(paint);
+ canvas.sk_canvas()->drawPaint(paint);
text_image_.reset(new SkBitmap(canvas.ExtractBitmap()));
}
}
diff --git a/chrome/browser/download/download_util.cc b/chrome/browser/download/download_util.cc
index 1674371..f0db7f2 100644
--- a/chrome/browser/download/download_util.cc
+++ b/chrome/browser/download/download_util.cc
@@ -261,7 +261,7 @@ void PaintDownloadProgress(gfx::Canvas* canvas,
foreground_paint.setShader(shader);
foreground_paint.setAntiAlias(true);
shader->unref();
- canvas->AsCanvasSkia()->drawPath(path, foreground_paint);
+ canvas->GetSkCanvas()->drawPath(path, foreground_paint);
return;
}
@@ -301,7 +301,7 @@ void PaintDownloadComplete(gfx::Canvas* canvas,
PI/2) / 2 + 0.5;
canvas->SaveLayerAlpha(static_cast<int>(255.0 * opacity), complete_bounds);
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
canvas->DrawBitmapInt(*complete, complete_bounds.x(), complete_bounds.y());
canvas->Restore();
}
@@ -337,7 +337,7 @@ void PaintDownloadInterrupted(gfx::Canvas* canvas,
0.5;
canvas->SaveLayerAlpha(static_cast<int>(255.0 * opacity), complete_bounds);
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
canvas->DrawBitmapInt(*complete, complete_bounds.x(), complete_bounds.y());
canvas->Restore();
}
diff --git a/chrome/browser/tab_contents/thumbnail_generator_unittest.cc b/chrome/browser/tab_contents/thumbnail_generator_unittest.cc
index f7a4780..1eb46b8 100644
--- a/chrome/browser/tab_contents/thumbnail_generator_unittest.cc
+++ b/chrome/browser/tab_contents/thumbnail_generator_unittest.cc
@@ -221,7 +221,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, CalculateBoringScore_SingleColor) {
// Fill all pixesl in black.
canvas.FillRectInt(kBlack, 0, 0, kSize.width(), kSize.height());
- SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
// The thumbnail should deserve the highest boring score.
EXPECT_DOUBLE_EQ(1.0, ThumbnailGenerator::CalculateBoringScore(&bitmap));
}
@@ -237,7 +238,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, CalculateBoringScore_TwoColors) {
// Fill the left half pixels in white.
canvas.FillRectInt(kWhite, 0, 0, kSize.width() / 2, kSize.height());
- SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
ASSERT_EQ(kSize.width(), bitmap.width());
ASSERT_EQ(kSize.height(), bitmap.height());
// The thumbnail should be less boring because two colors are used.
@@ -247,7 +249,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, CalculateBoringScore_TwoColors) {
TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_TallerThanWide) {
// The input bitmap is vertically long.
gfx::CanvasSkia canvas(40, 90, true);
- const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
// The desired size is square.
ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
@@ -263,7 +266,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_TallerThanWide) {
TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_WiderThanTall) {
// The input bitmap is horizontally long.
gfx::CanvasSkia canvas(90, 40, true);
- const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
// The desired size is square.
ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
@@ -279,7 +283,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_WiderThanTall) {
TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NotClipped) {
// The input bitmap is square.
gfx::CanvasSkia canvas(40, 40, true);
- const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
// The desired size is square.
ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
@@ -295,7 +300,8 @@ TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NotClipped) {
TEST_F(ThumbnailGeneratorSimpleTest, GetClippedBitmap_NonSquareOutput) {
// The input bitmap is square.
gfx::CanvasSkia canvas(40, 40, true);
- const SkBitmap bitmap = skia::GetTopDevice(canvas)->accessBitmap(false);
+ SkBitmap bitmap =
+ skia::GetTopDevice(*canvas.sk_canvas())->accessBitmap(false);
// The desired size is horizontally long.
ThumbnailGenerator::ClipResult clip_result = ThumbnailGenerator::kNotClipped;
diff --git a/chrome/browser/ui/gtk/infobars/infobar_container_gtk.cc b/chrome/browser/ui/gtk/infobars/infobar_container_gtk.cc
index e42a03d..422db16 100644
--- a/chrome/browser/ui/gtk/infobars/infobar_container_gtk.cc
+++ b/chrome/browser/ui/gtk/infobars/infobar_container_gtk.cc
@@ -178,7 +178,7 @@ void InfoBarContainerGtk::PaintArrowOn(GtkWidget* widget,
paint.setShader(gradient_shader);
gradient_shader->unref();
- gfx::CanvasSkiaPaint canvas(expose, false);
+ skia::PlatformCanvasPaint canvas(expose, false);
canvas.drawPath(path, paint);
paint.setShader(NULL);
diff --git a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
index ef9b27e..1d416dc 100644
--- a/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
+++ b/chrome/browser/ui/gtk/tabs/tab_renderer_gtk.cc
@@ -419,15 +419,16 @@ void TabRendererGtk::PaintFaviconArea(GdkEventExpose* event) {
SkRect bounds;
bounds.set(favicon_bounds_.x(), favicon_bounds_.y(),
favicon_bounds_.right(), favicon_bounds_.bottom());
- canvas.saveLayerAlpha(&bounds, static_cast<int>(throb_value * 0xff),
- SkCanvas::kARGB_ClipLayer_SaveFlag);
- canvas.drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->saveLayerAlpha(
+ &bounds, static_cast<int>(throb_value * 0xff),
+ SkCanvas::kARGB_ClipLayer_SaveFlag);
+ canvas.sk_canvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
SkBitmap* active_bg = theme_service_->GetBitmapNamed(IDR_THEME_TOOLBAR);
canvas.TileImageInt(*active_bg,
x() + favicon_bounds_.x(), favicon_bounds_.y(),
favicon_bounds_.x(), favicon_bounds_.y(),
favicon_bounds_.width(), favicon_bounds_.height());
- canvas.restore();
+ canvas.sk_canvas()->restore();
}
}
@@ -655,7 +656,7 @@ cairo_surface_t* TabRendererGtk::PaintToSurface() {
gfx::CanvasSkia canvas(width(), height(), false);
Paint(&canvas);
return cairo_surface_reference(cairo_get_target(
- skia::BeginPlatformPaint(&canvas)));
+ skia::BeginPlatformPaint(canvas.sk_canvas())));
}
void TabRendererGtk::SchedulePaint() {
@@ -887,8 +888,8 @@ void TabRendererGtk::PaintTabBackground(gfx::Canvas* canvas) {
if (throb_value > 0) {
canvas->SaveLayerAlpha(static_cast<int>(throb_value * 0xff),
gfx::Rect(width(), height()));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255,
- SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255,
+ SkXfermode::kClear_Mode);
PaintActiveTabBackground(canvas);
canvas->Restore();
}
diff --git a/chrome/browser/ui/views/aura/aura_init.cc b/chrome/browser/ui/views/aura/aura_init.cc
index ce8064a..d5cf9df 100644
--- a/chrome/browser/ui/views/aura/aura_init.cc
+++ b/chrome/browser/ui/views/aura/aura_init.cc
@@ -48,7 +48,7 @@ class DemoWindowDelegate : public aura::WindowDelegate {
virtual void OnCaptureLost() OVERRIDE {
}
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
- canvas->AsCanvasSkia()->drawColor(color_, SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(color_, SkXfermode::kSrc_Mode);
}
virtual void OnWindowDestroying() OVERRIDE {
}
diff --git a/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc b/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
index 35bb187..5b7238a 100644
--- a/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
+++ b/chrome/browser/ui/views/autocomplete/autocomplete_popup_contents_view.cc
@@ -520,7 +520,7 @@ void AutocompletePopupContentsView::OnMouseExited(
// AutocompletePopupContentsView, protected:
void AutocompletePopupContentsView::PaintResultViews(gfx::CanvasSkia* canvas) {
- canvas->drawColor(AutocompleteResultView::GetColor(
+ canvas->sk_canvas()->drawColor(AutocompleteResultView::GetColor(
AutocompleteResultView::NORMAL, AutocompleteResultView::BACKGROUND));
View::PaintChildren(canvas);
}
@@ -570,7 +570,7 @@ void AutocompletePopupContentsView::OnPaint(gfx::Canvas* canvas) {
paint.setAntiAlias(true);
SkShader* shader = SkShader::CreateBitmapShader(
- contents_canvas.getDevice()->accessBitmap(false),
+ contents_canvas.sk_canvas()->getDevice()->accessBitmap(false),
SkShader::kClamp_TileMode,
SkShader::kClamp_TileMode);
paint.setShader(shader);
@@ -578,7 +578,7 @@ void AutocompletePopupContentsView::OnPaint(gfx::Canvas* canvas) {
gfx::Path path;
MakeContentsPath(&path, GetContentsBounds());
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
// Now we paint the border, so it will be alpha-blended atop the contents.
// This looks slightly better in the corners than drawing the contents atop
@@ -644,7 +644,7 @@ void AutocompletePopupContentsView::MakeCanvasTransparent(
// Allow the window blur effect to show through the popup background.
SkAlpha alpha = GetThemeProvider()->ShouldUseNativeFrame() ?
kGlassPopupAlpha : kOpaquePopupAlpha;
- canvas->AsCanvasSkia()->drawColor(SkColorSetA(
+ canvas->GetSkCanvas()->drawColor(SkColorSetA(
AutocompleteResultView::GetColor(AutocompleteResultView::NORMAL,
AutocompleteResultView::BACKGROUND), alpha), SkXfermode::kDstIn_Mode);
}
diff --git a/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc b/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc
index 01d0997..55d3e5b 100644
--- a/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc
+++ b/chrome/browser/ui/views/autocomplete/autocomplete_result_view.cc
@@ -522,7 +522,7 @@ void AutocompleteResultView::Layout() {
void AutocompleteResultView::OnPaint(gfx::Canvas* canvas) {
const ResultViewState state = GetState();
if (state != NORMAL)
- canvas->AsCanvasSkia()->drawColor(GetColor(state, BACKGROUND));
+ canvas->GetSkCanvas()->drawColor(GetColor(state, BACKGROUND));
// Paint the icon.
canvas->DrawBitmapInt(*GetIcon(), GetMirroredXForRect(icon_bounds_),
diff --git a/chrome/browser/ui/views/create_application_shortcut_view.cc b/chrome/browser/ui/views/create_application_shortcut_view.cc
index 9c6c252..cc345a0 100644
--- a/chrome/browser/ui/views/create_application_shortcut_view.cc
+++ b/chrome/browser/ui/views/create_application_shortcut_view.cc
@@ -176,7 +176,7 @@ void AppInfoView::OnPaint(gfx::Canvas* canvas) {
border_paint.setAntiAlias(true);
border_paint.setARGB(0xFF, 0xC8, 0xC8, 0xC8);
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
border_rect, SkIntToScalar(2), SkIntToScalar(2), border_paint);
SkRect inner_rect = {
@@ -189,7 +189,7 @@ void AppInfoView::OnPaint(gfx::Canvas* canvas) {
SkPaint inner_paint;
inner_paint.setAntiAlias(true);
inner_paint.setARGB(0xFF, 0xF8, 0xF8, 0xF8);
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
inner_rect, SkDoubleToScalar(1.5), SkDoubleToScalar(1.5), inner_paint);
}
diff --git a/chrome/browser/ui/views/detachable_toolbar_view.cc b/chrome/browser/ui/views/detachable_toolbar_view.cc
index 04aa0d5..60c09e0 100644
--- a/chrome/browser/ui/views/detachable_toolbar_view.cc
+++ b/chrome/browser/ui/views/detachable_toolbar_view.cc
@@ -70,7 +70,7 @@ void DetachableToolbarView::PaintContentAreaBackground(
paint.setAntiAlias(true);
paint.setColor(theme_provider->GetColor(ThemeService::COLOR_TOOLBAR));
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
rect, SkDoubleToScalar(roundness), SkDoubleToScalar(roundness), paint);
}
@@ -85,7 +85,7 @@ void DetachableToolbarView::PaintContentAreaBorder(
border_paint.setAlpha(96);
border_paint.setAntiAlias(true);
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
rect, SkDoubleToScalar(roundness), SkDoubleToScalar(roundness),
border_paint);
}
@@ -106,7 +106,7 @@ void DetachableToolbarView::PaintVerticalDivider(
SkIntToScalar(vertical_padding + 1),
SkIntToScalar(x + 1),
SkIntToScalar(height / 2) };
- canvas->AsCanvasSkia()->drawRect(rc, paint);
+ canvas->GetSkCanvas()->drawRect(rc, paint);
// Draw the lower half of the divider.
SkPaint paint_down;
@@ -116,5 +116,5 @@ void DetachableToolbarView::PaintVerticalDivider(
SkIntToScalar(height / 2),
SkIntToScalar(x + 1),
SkIntToScalar(height - vertical_padding) };
- canvas->AsCanvasSkia()->drawRect(rc_down, paint_down);
+ canvas->GetSkCanvas()->drawRect(rc_down, paint_down);
}
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc
index 33951dd..b7ffde5 100644
--- a/chrome/browser/ui/views/download/download_item_view.cc
+++ b/chrome/browser/ui/views/download/download_item_view.cc
@@ -773,7 +773,7 @@ void DownloadItemView::OnPaint(gfx::Canvas* canvas) {
if (body_hover_animation_->GetCurrentValue() > 0) {
canvas->SaveLayerAlpha(
static_cast<int>(body_hover_animation_->GetCurrentValue() * 255));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
int x = kLeftPadding;
PaintBitmaps(canvas,
@@ -807,8 +807,8 @@ void DownloadItemView::OnPaint(gfx::Canvas* canvas) {
if (drop_hover_animation_->GetCurrentValue() > 0) {
canvas->SaveLayerAlpha(
static_cast<int>(drop_hover_animation_->GetCurrentValue() * 255));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255,
- SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255,
+ SkXfermode::kClear_Mode);
PaintBitmaps(canvas,
drop_down_image_set->top, drop_down_image_set->center,
diff --git a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
index 100b5fa..14e1d47 100644
--- a/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
+++ b/chrome/browser/ui/views/frame/opaque_browser_frame_view.cc
@@ -802,7 +802,7 @@ void OpaqueBrowserFrameView::PaintToolbarBackground(gfx::Canvas* canvas) {
canvas->SaveLayerAlpha(
255, gfx::Rect(x - kClientEdgeThickness, y, w + kClientEdgeThickness * 3,
h));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
SkColor theme_toolbar_color =
tp->GetColor(ThemeService::COLOR_TOOLBAR);
diff --git a/chrome/browser/ui/views/fullscreen_exit_bubble_views.cc b/chrome/browser/ui/views/fullscreen_exit_bubble_views.cc
index 2716050..06051ddc6 100644
--- a/chrome/browser/ui/views/fullscreen_exit_bubble_views.cc
+++ b/chrome/browser/ui/views/fullscreen_exit_bubble_views.cc
@@ -96,7 +96,7 @@ void FullscreenExitBubbleViews::FullscreenExitView::OnPaint(
paint.setStyle(SkPaint::kFill_Style);
paint.setFlags(SkPaint::kAntiAlias_Flag);
paint.setColor(SK_ColorBLACK);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
// FullscreenExitBubbleViews ---------------------------------------------------
diff --git a/chrome/browser/ui/views/infobars/infobar_background.cc b/chrome/browser/ui/views/infobars/infobar_background.cc
index e28e1ac..5822faa 100644
--- a/chrome/browser/ui/views/infobars/infobar_background.cc
+++ b/chrome/browser/ui/views/infobars/infobar_background.cc
@@ -39,7 +39,7 @@ void InfoBarBackground::Paint(gfx::Canvas* canvas, views::View* view) const {
gradient_shader->unref();
InfoBarView* infobar = static_cast<InfoBarView*>(view);
- gfx::CanvasSkia* canvas_skia = canvas->AsCanvasSkia();
+ SkCanvas* canvas_skia = canvas->GetSkCanvas();
canvas_skia->drawPath(infobar->fill_path(), paint);
paint.setShader(NULL);
diff --git a/chrome/browser/ui/views/infobars/translate_infobar_base.cc b/chrome/browser/ui/views/infobars/translate_infobar_base.cc
index c47ea3c..0e5b896 100644
--- a/chrome/browser/ui/views/infobars/translate_infobar_base.cc
+++ b/chrome/browser/ui/views/infobars/translate_infobar_base.cc
@@ -130,7 +130,7 @@ void TranslateInfoBarBase::FadeBackground(gfx::Canvas* canvas,
// Draw the background into an offscreen buffer with alpha value per animation
// value, then blend it back into the current canvas.
canvas->SaveLayerAlpha(static_cast<int>(animation_value * 255));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255, SkXfermode::kClear_Mode);
background.Paint(canvas, this);
canvas->Restore();
}
diff --git a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
index 4eca62a..11c1835 100644
--- a/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
+++ b/chrome/browser/ui/views/location_bar/content_setting_image_view.cc
@@ -202,15 +202,15 @@ void ContentSettingImageView::OnPaintBackground(gfx::Canvas* canvas) {
SkSafeUnref(paint.getShader());
SkRect color_rect;
color_rect.iset(0, 0, width() - 1, height() - 1);
- canvas->AsCanvasSkia()->drawRoundRect(color_rect, kBoxCornerRadius,
- kBoxCornerRadius, paint);
+ canvas->GetSkCanvas()->drawRoundRect(color_rect, kBoxCornerRadius,
+ kBoxCornerRadius, paint);
SkPaint outer_paint;
outer_paint.setStyle(SkPaint::kStroke_Style);
outer_paint.setColor(kBorderColor);
color_rect.inset(SkIntToScalar(kEdgeThickness),
SkIntToScalar(kEdgeThickness));
- canvas->AsCanvasSkia()->drawRoundRect(color_rect, kBoxCornerRadius,
- kBoxCornerRadius, outer_paint);
+ canvas->GetSkCanvas()->drawRoundRect(color_rect, kBoxCornerRadius,
+ kBoxCornerRadius, outer_paint);
}
void ContentSettingImageView::BubbleClosing(Bubble* bubble,
diff --git a/chrome/browser/ui/views/location_bar/location_bar_view.cc b/chrome/browser/ui/views/location_bar/location_bar_view.cc
index 66fefaa..9eba4ae 100644
--- a/chrome/browser/ui/views/location_bar/location_bar_view.cc
+++ b/chrome/browser/ui/views/location_bar/location_bar_view.cc
@@ -744,8 +744,8 @@ void LocationBarView::OnPaint(gfx::Canvas* canvas) {
const SkScalar radius(SkIntToScalar(
views::BubbleBorder::GetCornerRadius()));
bounds.Inset(kNormalHorizontalEdgeThickness, 0);
- canvas->AsCanvasSkia()->drawRoundRect(gfx::RectToSkRect(bounds), radius,
- radius, paint);
+ canvas->GetSkCanvas()->drawRoundRect(gfx::RectToSkRect(bounds), radius,
+ radius, paint);
} else {
canvas->FillRectInt(color, bounds.x(), bounds.y(), bounds.width(),
bounds.height());
diff --git a/chrome/browser/ui/views/notifications/balloon_view.cc b/chrome/browser/ui/views/notifications/balloon_view.cc
index 62f3f31..d9ee107 100644
--- a/chrome/browser/ui/views/notifications/balloon_view.cc
+++ b/chrome/browser/ui/views/notifications/balloon_view.cc
@@ -476,7 +476,7 @@ void BalloonViewImpl::OnPaint(gfx::Canvas* canvas) {
SkPaint paint;
paint.setAntiAlias(true);
paint.setColor(kControlBarBackgroundColor);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
// Draw a 1-pixel gray line between the content and the menu bar.
int line_width = GetTotalWidth() - kLeftMargin - kRightMargin;
diff --git a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc
index e5503dc..3f3777b 100644
--- a/chrome/browser/ui/views/omnibox/omnibox_view_win.cc
+++ b/chrome/browser/ui/views/omnibox/omnibox_view_win.cc
@@ -2275,7 +2275,8 @@ void OmniboxViewWin::DrawSlashForInsecureScheme(HDC hdc,
// it to fully transparent so any antialiasing will look nice when painted
// atop the edit.
gfx::CanvasSkia canvas(scheme_rect.Width(), scheme_rect.Height(), false);
- canvas.getDevice()->accessBitmap(true).eraseARGB(0, 0, 0, 0);
+ SkCanvas* sk_canvas = canvas.sk_canvas();
+ sk_canvas->getDevice()->accessBitmap(true).eraseARGB(0, 0, 0, 0);
// Calculate the start and end of the stroke, which are just the lower left
// and upper right corners of the canvas, inset by the radius of the endcap
@@ -2299,26 +2300,26 @@ void OmniboxViewWin::DrawSlashForInsecureScheme(HDC hdc,
SkIntToScalar(scheme_rect.Height()) };
// Draw the unselected portion of the stroke.
- canvas.save();
+ sk_canvas->save();
if (selection_rect.isEmpty() ||
- canvas.clipRect(selection_rect, SkRegion::kDifference_Op)) {
+ sk_canvas->clipRect(selection_rect, SkRegion::kDifference_Op)) {
paint.setColor(LocationBarView::GetColor(security_level_,
LocationBarView::SECURITY_TEXT));
- canvas.drawLine(start_point.fX, start_point.fY,
- end_point.fX, end_point.fY, paint);
+ sk_canvas->drawLine(start_point.fX, start_point.fY,
+ end_point.fX, end_point.fY, paint);
}
- canvas.restore();
+ sk_canvas->restore();
// Draw the selected portion of the stroke.
- if (!selection_rect.isEmpty() && canvas.clipRect(selection_rect)) {
+ if (!selection_rect.isEmpty() && sk_canvas->clipRect(selection_rect)) {
paint.setColor(LocationBarView::GetColor(security_level_,
LocationBarView::SELECTED_TEXT));
- canvas.drawLine(start_point.fX, start_point.fY,
- end_point.fX, end_point.fY, paint);
+ sk_canvas->drawLine(start_point.fX, start_point.fY,
+ end_point.fX, end_point.fY, paint);
}
// Now copy what we drew to the target HDC.
- skia::DrawToNativeContext(&canvas, hdc,
+ skia::DrawToNativeContext(sk_canvas, hdc,
scheme_rect.left + canvas_paint_clip_rect.left - canvas_clip_rect.left,
std::max(scheme_rect.top, client_rect.top) + canvas_paint_clip_rect.top -
canvas_clip_rect.top, &canvas_paint_clip_rect);
diff --git a/chrome/browser/ui/views/status_bubble_views.cc b/chrome/browser/ui/views/status_bubble_views.cc
index 3ed7dc2..6940c8f 100644
--- a/chrome/browser/ui/views/status_bubble_views.cc
+++ b/chrome/browser/ui/views/status_bubble_views.cc
@@ -412,7 +412,7 @@ void StatusBubbleViews::StatusView::OnPaint(gfx::Canvas* canvas) {
SkPaint shadow_paint;
shadow_paint.setFlags(SkPaint::kAntiAlias_Flag);
shadow_paint.setColor(kShadowColor);
- canvas->AsCanvasSkia()->drawPath(shadow_path, shadow_paint);
+ canvas->GetSkCanvas()->drawPath(shadow_path, shadow_paint);
// Draw the bubble.
rect.set(SkIntToScalar(kShadowThickness),
@@ -421,7 +421,7 @@ void StatusBubbleViews::StatusView::OnPaint(gfx::Canvas* canvas) {
SkIntToScalar(height - kShadowThickness));
SkPath path;
path.addRoundRect(rect, rad, SkPath::kCW_Direction);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
// Draw highlight text and then the text body. In order to make sure the text
// is aligned to the right on RTL UIs, we mirror the text bounds if the
diff --git a/chrome/browser/ui/views/tabs/dragged_tab_controller.cc b/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
index 00d9a5c..96352684 100644
--- a/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
+++ b/chrome/browser/ui/views/tabs/dragged_tab_controller.cc
@@ -84,7 +84,7 @@ class DockView : public views::View {
SkPaint paint;
paint.setColor(SkColorSetRGB(108, 108, 108));
paint.setStyle(SkPaint::kFill_Style);
- canvas->AsCanvasSkia()->drawRoundRect(
+ canvas->GetSkCanvas()->drawRoundRect(
outer_rect, SkIntToScalar(kRoundedRectRadius),
SkIntToScalar(kRoundedRectRadius), paint);
diff --git a/chrome/browser/ui/views/tabs/dragged_tab_view.cc b/chrome/browser/ui/views/tabs/dragged_tab_view.cc
index 4958632..995a061 100644
--- a/chrome/browser/ui/views/tabs/dragged_tab_view.cc
+++ b/chrome/browser/ui/views/tabs/dragged_tab_view.cc
@@ -137,7 +137,7 @@ void DraggedTabView::PaintDetachedView(gfx::Canvas* canvas) {
gfx::Size ps = GetPreferredSize();
gfx::CanvasSkia scale_canvas(ps.width(), ps.height(), false);
SkBitmap& bitmap_device = const_cast<SkBitmap&>(
- skia::GetTopDevice(scale_canvas)->accessBitmap(true));
+ skia::GetTopDevice(*scale_canvas.sk_canvas())->accessBitmap(true));
bitmap_device.eraseARGB(0, 0, 0, 0);
int tab_height = renderer_bounds_.back().height();
@@ -178,7 +178,7 @@ void DraggedTabView::PaintDetachedView(gfx::Canvas* canvas) {
rc.fTop = 0;
rc.fRight = SkIntToScalar(ps.width());
rc.fBottom = SkIntToScalar(ps.height());
- canvas->AsCanvasSkia()->drawRect(rc, paint);
+ canvas->GetSkCanvas()->drawRect(rc, paint);
}
void DraggedTabView::PaintFocusRect(gfx::Canvas* canvas) {
diff --git a/chrome/browser/ui/views/tabs/native_view_photobooth_win.cc b/chrome/browser/ui/views/tabs/native_view_photobooth_win.cc
index c545d44..550acb8 100644
--- a/chrome/browser/ui/views/tabs/native_view_photobooth_win.cc
+++ b/chrome/browser/ui/views/tabs/native_view_photobooth_win.cc
@@ -110,7 +110,7 @@ void NativeViewPhotoboothWin::PaintScreenshotIntoCanvas(
SRCCOPY);
// Windows screws up the alpha channel on all text it draws, and so we need
// to call makeOpaque _after_ the blit to correct for this.
- skia::MakeOpaque(canvas->AsCanvasSkia(), target_bounds.x(),
+ skia::MakeOpaque(canvas->GetSkCanvas(), target_bounds.x(),
target_bounds.y(), target_bounds.width(),
target_bounds.height());
ReleaseDC(current_hwnd_, source_dc);
diff --git a/chrome/browser/ui/views/tabs/side_tab.cc b/chrome/browser/ui/views/tabs/side_tab.cc
index dd1213a..335d8a9 100644
--- a/chrome/browser/ui/views/tabs/side_tab.cc
+++ b/chrome/browser/ui/views/tabs/side_tab.cc
@@ -85,10 +85,10 @@ void SideTab::OnPaint(gfx::Canvas* canvas) {
paint.setAntiAlias(true);
SkRect border_rect = { SkIntToScalar(0), SkIntToScalar(0),
SkIntToScalar(width()), SkIntToScalar(height()) };
- canvas->AsCanvasSkia()->drawRoundRect(border_rect,
- SkIntToScalar(kRoundRectRadius),
- SkIntToScalar(kRoundRectRadius),
- paint);
+ canvas->GetSkCanvas()->drawRoundRect(border_rect,
+ SkIntToScalar(kRoundRectRadius),
+ SkIntToScalar(kRoundRectRadius),
+ paint);
}
if (ShouldShowIcon())
diff --git a/chrome/browser/ui/views/tabs/tab.cc b/chrome/browser/ui/views/tabs/tab.cc
index 5bd6fef..4ab41fe 100644
--- a/chrome/browser/ui/views/tabs/tab.cc
+++ b/chrome/browser/ui/views/tabs/tab.cc
@@ -359,8 +359,8 @@ void Tab::PaintTabBackground(gfx::Canvas* canvas) {
if (throb_value > 0) {
canvas->SaveLayerAlpha(static_cast<int>(throb_value * 0xff),
gfx::Rect(width(), height()));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255,
- SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255,
+ SkXfermode::kClear_Mode);
PaintActiveTabBackground(canvas);
canvas->Restore();
}
diff --git a/chrome/browser/ui/views/theme_helpers.cc b/chrome/browser/ui/views/theme_helpers.cc
index 1708049..e81d875 100644
--- a/chrome/browser/ui/views/theme_helpers.cc
+++ b/chrome/browser/ui/views/theme_helpers.cc
@@ -31,7 +31,7 @@ void GetRebarGradientColors(int width, int x1, int x2,
// On Windows XP+, if using a Theme, we can ask the theme to render the
// gradient for us.
if (!theme.IsThemeNull()) {
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
HDC dc = scoped_platform_paint.GetPlatformSurface();
RECT rect = { 0, 0, width, 1 };
theme.DrawThemeBackground(dc, 0, 0, &rect, NULL);
@@ -56,14 +56,15 @@ void GetRebarGradientColors(int width, int x1, int x2,
// the gradient.
gradient_shader->unref();
paint.setStyle(SkPaint::kFill_Style);
- canvas.drawRectCoords(SkIntToScalar(0), SkIntToScalar(0),
- SkIntToScalar(width), SkIntToScalar(1), paint);
+ canvas.sk_canvas()->drawRectCoords(
+ SkIntToScalar(0), SkIntToScalar(0),
+ SkIntToScalar(width), SkIntToScalar(1), paint);
}
// Extract the color values from the selected pixels
// The | in the following operations forces the alpha to 0xFF. This is
// needed as windows sets the alpha to 0 when it renders.
- SkDevice* device = skia::GetTopDevice(canvas);
+ SkDevice* device = skia::GetTopDevice(*canvas.sk_canvas());
const SkBitmap& bitmap = device->accessBitmap(false);
SkAutoLockPixels lock(bitmap);
diff --git a/chrome/browser/ui/views/theme_install_bubble_view.cc b/chrome/browser/ui/views/theme_install_bubble_view.cc
index 67c26f7..79c52e3 100644
--- a/chrome/browser/ui/views/theme_install_bubble_view.cc
+++ b/chrome/browser/ui/views/theme_install_bubble_view.cc
@@ -129,7 +129,7 @@ void ThemeInstallBubbleView::OnPaint(gfx::Canvas* canvas) {
SkIntToScalar(height()));
SkPath path;
path.addRoundRect(rect, rad, SkPath::kCW_Direction);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
int text_width = views::Label::font().GetStringWidth(text_);
gfx::Rect body_bounds(kTextHorizPadding / 2, 0, text_width, height());
diff --git a/chrome/common/badge_util.cc b/chrome/common/badge_util.cc
index 4649726..3175de8 100644
--- a/chrome/common/badge_util.cc
+++ b/chrome/common/badge_util.cc
@@ -92,7 +92,8 @@ SkBitmap DrawBadgeIconOverlay(const SkBitmap& icon,
// add 'font_size - 1' to the height.
SkScalar x = (badge_width - text_width)/2;
SkScalar y = (icon.height() - font_size)/2 + font_size - 1;
- canvas->drawText(badge_text.c_str(), badge_text.size(), x, y, *paint);
+ canvas->sk_canvas()->drawText(
+ badge_text.c_str(), badge_text.size(), x, y, *paint);
// Return the generated image.
return canvas->ExtractBitmap();
diff --git a/chrome/common/extensions/extension_action.cc b/chrome/common/extensions/extension_action.cc
index d9afab8..284da0e 100644
--- a/chrome/common/extensions/extension_action.cc
+++ b/chrome/common/extensions/extension_action.cc
@@ -159,8 +159,8 @@ void ExtensionAction::PaintBadge(gfx::Canvas* canvas,
rect_paint.setStyle(SkPaint::kFill_Style);
rect_paint.setAntiAlias(true);
rect_paint.setColor(background_color);
- canvas->AsCanvasSkia()->drawRoundRect(rect, SkIntToScalar(2),
- SkIntToScalar(2), rect_paint);
+ canvas->GetSkCanvas()->drawRoundRect(rect, SkIntToScalar(2),
+ SkIntToScalar(2), rect_paint);
// Overlay the gradient. It is stretchy, so we do this in three parts.
ResourceBundle& resource_bundle = ResourceBundle::GetSharedInstance();
@@ -171,24 +171,24 @@ void ExtensionAction::PaintBadge(gfx::Canvas* canvas,
SkBitmap* gradient_center = resource_bundle.GetBitmapNamed(
IDR_BROWSER_ACTION_BADGE_CENTER);
- canvas->AsCanvasSkia()->drawBitmap(*gradient_left, rect.fLeft, rect.fTop);
+ canvas->GetSkCanvas()->drawBitmap(*gradient_left, rect.fLeft, rect.fTop);
canvas->TileImageInt(*gradient_center,
SkScalarFloor(rect.fLeft) + gradient_left->width(),
SkScalarFloor(rect.fTop),
SkScalarFloor(rect.width()) - gradient_left->width() -
gradient_right->width(),
SkScalarFloor(rect.height()));
- canvas->AsCanvasSkia()->drawBitmap(*gradient_right,
+ canvas->GetSkCanvas()->drawBitmap(*gradient_right,
rect.fRight - SkIntToScalar(gradient_right->width()), rect.fTop);
// Finally, draw the text centered within the badge. We set a clip in case the
// text was too large.
rect.fLeft += kPadding;
rect.fRight -= kPadding;
- canvas->AsCanvasSkia()->clipRect(rect);
- canvas->AsCanvasSkia()->drawText(text.c_str(), text.size(),
- rect.fLeft + (rect.width() - text_width) / 2,
- rect.fTop + kTextSize + kTopTextPadding,
- *text_paint);
+ canvas->GetSkCanvas()->clipRect(rect);
+ canvas->GetSkCanvas()->drawText(text.c_str(), text.size(),
+ rect.fLeft + (rect.width() - text_width) / 2,
+ rect.fTop + kTextSize + kTopTextPadding,
+ *text_paint);
canvas->Restore();
}
diff --git a/content/browser/renderer_host/backing_store_skia.cc b/content/browser/renderer_host/backing_store_skia.cc
index 56dfc86..1c04363 100644
--- a/content/browser/renderer_host/backing_store_skia.cc
+++ b/content/browser/renderer_host/backing_store_skia.cc
@@ -31,7 +31,7 @@ BackingStoreSkia::~BackingStoreSkia() {
void BackingStoreSkia::SkiaShowRect(const gfx::Point& point,
gfx::Canvas* canvas) {
- canvas->AsCanvasSkia()->drawBitmap(bitmap_,
+ canvas->GetSkCanvas()->drawBitmap(bitmap_,
SkIntToScalar(point.x()), SkIntToScalar(point.y()));
}
diff --git a/content/browser/renderer_host/render_widget_host_unittest.cc b/content/browser/renderer_host/render_widget_host_unittest.cc
index 6b9397c..4f74039 100644
--- a/content/browser/renderer_host/render_widget_host_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_unittest.cc
@@ -431,7 +431,8 @@ TEST_F(RenderWidgetHostTest, Background) {
canvas.FillRectInt(SK_ColorWHITE, 2, 0, 2, 2);
canvas.FillRectInt(SK_ColorWHITE, 0, 2, 2, 2);
canvas.FillRectInt(SK_ColorBLACK, 2, 2, 2, 2);
- const SkBitmap& background = canvas.getDevice()->accessBitmap(false);
+ const SkBitmap& background =
+ canvas.sk_canvas()->getDevice()->accessBitmap(false);
// Set the background and make sure we get back a copy.
view->SetBackground(background);
diff --git a/content/browser/renderer_host/render_widget_host_view_win.cc b/content/browser/renderer_host/render_widget_host_view_win.cc
index 15beefb..ff9d53f 100644
--- a/content/browser/renderer_host/render_widget_host_view_win.cc
+++ b/content/browser/renderer_host/render_widget_host_view_win.cc
@@ -162,7 +162,7 @@ void DrawDeemphasized(const SkColor& color,
HDC paint_dc) {
gfx::CanvasSkia canvas(paint_rect.width(), paint_rect.height(), true);
{
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
HDC dc = scoped_platform_paint.GetPlatformSurface();
BitBlt(dc,
0,
@@ -175,7 +175,7 @@ void DrawDeemphasized(const SkColor& color,
SRCCOPY);
}
canvas.FillRectInt(color, 0, 0, paint_rect.width(), paint_rect.height());
- skia::DrawToNativeContext(&canvas, paint_dc, paint_rect.x(),
+ skia::DrawToNativeContext(canvas.sk_canvas(), paint_dc, paint_rect.x(),
paint_rect.y(), NULL);
}
@@ -966,8 +966,8 @@ void RenderWidgetHostViewWin::DrawBackground(const RECT& dirty_rect,
dc_rect.right - dc_rect.left,
dc_rect.bottom - dc_rect.top);
- skia::DrawToNativeContext(&canvas, *dc, dirty_rect.left, dirty_rect.top,
- NULL);
+ skia::DrawToNativeContext(canvas.sk_canvas(), *dc, dirty_rect.left,
+ dirty_rect.top, NULL);
} else {
HBRUSH white_brush = reinterpret_cast<HBRUSH>(GetStockObject(WHITE_BRUSH));
dc->FillRect(&dirty_rect, white_brush);
diff --git a/skia/ext/canvas_paint_common.h b/skia/ext/canvas_paint_common.h
new file mode 100644
index 0000000..6eed3f4
--- /dev/null
+++ b/skia/ext/canvas_paint_common.h
@@ -0,0 +1,18 @@
+// Copyright (c) 2011 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.
+
+#ifndef SKIA_EXT_CANVAS_PAINT_COMMON_H_
+#define SKIA_EXT_CANVAS_PAINT_COMMON_H_
+#pragma once
+
+namespace skia {
+class PlatformCanvas;
+
+template<class T> inline PlatformCanvas* GetPlatformCanvas(T* t) {
+ return t;
+}
+
+} // namespace skia
+
+#endif // SKIA_EXT_CANVAS_PAINT_COMMON_H_
diff --git a/skia/ext/canvas_paint_gtk.h b/skia/ext/canvas_paint_gtk.h
index fca12ca..ade49af 100644
--- a/skia/ext/canvas_paint_gtk.h
+++ b/skia/ext/canvas_paint_gtk.h
@@ -8,6 +8,7 @@
#pragma once
#include "base/logging.h"
+#include "skia/ext/canvas_paint_common.h"
#include "skia/ext/platform_canvas.h"
#include <gdk/gdk.h>
@@ -39,7 +40,7 @@ class CanvasPaintT : public T {
virtual ~CanvasPaintT() {
if (!is_empty()) {
- T::restoreToCount(1);
+ GetPlatformCanvas(this)->restoreToCount(1);
// Blit the dirty rect to the window.
CHECK(window_);
@@ -83,16 +84,17 @@ class CanvasPaintT : public T {
private:
void init(bool opaque) {
GdkRectangle bounds = rectangle();
- if (!T::initialize(bounds.width, bounds.height, opaque, NULL)) {
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ if (!canvas->initialize(bounds.width, bounds.height, opaque, NULL)) {
// Cause a deliberate crash;
CHECK(false);
}
// Need to translate so that the dirty region appears at the origin of the
// surface.
- T::translate(-SkIntToScalar(bounds.x), -SkIntToScalar(bounds.y));
+ canvas->translate(-SkIntToScalar(bounds.x), -SkIntToScalar(bounds.y));
- context_ = BeginPlatformPaint(this);
+ context_ = BeginPlatformPaint(canvas);
}
cairo_t* context_;
diff --git a/skia/ext/canvas_paint_mac.h b/skia/ext/canvas_paint_mac.h
index c4f45b2..d679116 100644
--- a/skia/ext/canvas_paint_mac.h
+++ b/skia/ext/canvas_paint_mac.h
@@ -1,5 +1,5 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -7,6 +7,7 @@
#define SKIA_EXT_CANVAS_PAINT_MAC_H_
#pragma once
+#include "skia/ext/canvas_paint_common.h"
#include "skia/ext/platform_canvas.h"
#import <Cocoa/Cocoa.h>
@@ -36,7 +37,7 @@ class CanvasPaintT : public T {
virtual ~CanvasPaintT() {
if (!is_empty()) {
- T::restoreToCount(1);
+ GetPlatformCanvas(this)->restoreToCount(1);
// Blit the dirty rect to the current context.
CGImageRef image = CGBitmapContextCreateImage(context_);
@@ -81,18 +82,20 @@ class CanvasPaintT : public T {
private:
void init(bool opaque) {
- if (!T::initialize(rectangle_.size.width, rectangle_.size.height,
- opaque, NULL)) {
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ if (!canvas->initialize(rectangle_.size.width,
+ rectangle_.size.height,
+ opaque, NULL)) {
// Cause a deliberate crash;
*(volatile char*) 0 = 0;
}
// Need to translate so that the dirty region appears at the origin of the
// surface.
- T::translate(-SkDoubleToScalar(rectangle_.origin.x),
- -SkDoubleToScalar(rectangle_.origin.y));
+ canvas->translate(-SkDoubleToScalar(rectangle_.origin.x),
+ -SkDoubleToScalar(rectangle_.origin.y));
- context_ = GetBitmapContext(GetTopDevice(*this));
+ context_ = GetBitmapContext(GetTopDevice(*canvas));
}
CGContext* context_;
diff --git a/skia/ext/canvas_paint_wayland.h b/skia/ext/canvas_paint_wayland.h
index 2afdb01..eca3665 100644
--- a/skia/ext/canvas_paint_wayland.h
+++ b/skia/ext/canvas_paint_wayland.h
@@ -7,6 +7,7 @@
#pragma once
#include "base/logging.h"
+#include "skia/ext/canvas_paint_common.h"
#include "skia/ext/platform_canvas.h"
namespace skia {
@@ -39,7 +40,8 @@ class CanvasPaintT : public T {
virtual ~CanvasPaintT() {
if (!is_empty()) {
- T::restoreToCount(1);
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ canvas->restoreToCount(1);
// Blit the dirty rect to the window.
CHECK(cairo_window_surface_);
@@ -79,16 +81,17 @@ class CanvasPaintT : public T {
private:
void init(bool opaque) {
- if (!T::initialize(region_->width, region_->height, opaque, NULL)) {
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ if (!canvas->initialize(region_->width, region_->height, opaque, NULL)) {
// Cause a deliberate crash;
CHECK(false);
}
// Need to translate so that the dirty region appears at the origin of the
// surface.
- T::translate(-SkIntToScalar(region_->x), -SkIntToScalar(region_->y));
+ canvas->translate(-SkIntToScalar(region_->x), -SkIntToScalar(region_->y));
- context_ = BeginPlatformPaint(this);
+ context_ = BeginPlatformPaint(canvas);
}
cairo_t* context_;
diff --git a/skia/ext/canvas_paint_win.h b/skia/ext/canvas_paint_win.h
index 5fe22fc..9610025 100644
--- a/skia/ext/canvas_paint_win.h
+++ b/skia/ext/canvas_paint_win.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -6,6 +6,7 @@
#define SKIA_EXT_CANVAS_PAINT_WIN_H_
#pragma once
+#include "skia/ext/canvas_paint_common.h"
#include "skia/ext/platform_canvas.h"
namespace skia {
@@ -60,9 +61,10 @@ class CanvasPaintT : public T {
virtual ~CanvasPaintT() {
if (!isEmpty()) {
- restoreToCount(1);
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ canvas->restoreToCount(1);
// Commit the drawing to the screen
- skia::DrawToNativeContext(this, paint_dc_, ps_.rcPaint.left,
+ skia::DrawToNativeContext(canvas, paint_dc_, ps_.rcPaint.left,
ps_.rcPaint.top, NULL);
}
if (for_paint_)
@@ -100,21 +102,22 @@ class CanvasPaintT : public T {
}
void init(bool opaque) {
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
// FIXME(brettw) for ClearType, we probably want to expand the bounds of
// painting by one pixel so that the boundaries will be correct (ClearType
// text can depend on the adjacent pixel). Then we would paint just the
// inset pixels to the screen.
const int width = ps_.rcPaint.right - ps_.rcPaint.left;
const int height = ps_.rcPaint.bottom - ps_.rcPaint.top;
- if (!initialize(width, height, opaque, NULL)) {
+ if (!canvas->initialize(width, height, opaque, NULL)) {
// Cause a deliberate crash;
*(char*) 0 = 0;
}
// This will bring the canvas into the screen coordinate system for the
// dirty rect
- translate(SkIntToScalar(-ps_.rcPaint.left),
- SkIntToScalar(-ps_.rcPaint.top));
+ canvas->translate(SkIntToScalar(-ps_.rcPaint.left),
+ SkIntToScalar(-ps_.rcPaint.top));
}
// If true, this canvas was created for a BeginPaint.
diff --git a/skia/ext/canvas_paint_x.h b/skia/ext/canvas_paint_x.h
index a9f51d2..e8e3c68 100644
--- a/skia/ext/canvas_paint_x.h
+++ b/skia/ext/canvas_paint_x.h
@@ -7,6 +7,7 @@
#pragma once
#include "base/logging.h"
+#include "skia/ext/canvas_paint_common.h"
#include "skia/ext/platform_canvas.h"
#include <cairo/cairo.h>
@@ -41,7 +42,8 @@ class CanvasPaintT : public T {
virtual ~CanvasPaintT() {
if (!is_empty()) {
- T::restoreToCount(1);
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ canvas->restoreToCount(1);
// Blit the dirty rect to the window.
CHECK(cairo_window_surface_);
@@ -81,16 +83,18 @@ class CanvasPaintT : public T {
private:
void init(bool opaque) {
- if (!T::initialize(region_->width, region_->height, opaque, NULL)) {
+ PlatformCanvas* canvas = GetPlatformCanvas(this);
+ if (!canvas->initialize(region_->width, region_->height, opaque, NULL)) {
// Cause a deliberate crash;
CHECK(false);
}
// Need to translate so that the dirty region appears at the origin of the
// surface.
- T::translate(-SkDoubleToScalar(region_->x), -SkDoubleToScalar(region_->y));
+ canvas->translate(-SkDoubleToScalar(region_->x),
+ -SkDoubleToScalar(region_->y));
- context_ = BeginPlatformPaint(this);
+ context_ = BeginPlatformPaint(canvas);
}
cairo_t* context_;
diff --git a/ui/aura/demo/demo_main.cc b/ui/aura/demo/demo_main.cc
index acd7a78..9bdff64 100644
--- a/ui/aura/demo/demo_main.cc
+++ b/ui/aura/demo/demo_main.cc
@@ -51,7 +51,7 @@ class DemoWindowDelegate : public aura::WindowDelegate {
virtual void OnLostActive() OVERRIDE {}
virtual void OnCaptureLost() OVERRIDE {}
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
- canvas->AsCanvasSkia()->drawColor(color_, SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(color_, SkXfermode::kSrc_Mode);
}
virtual void OnWindowDestroying() OVERRIDE {}
virtual void OnWindowDestroyed() OVERRIDE {}
diff --git a/ui/aura/window_unittest.cc b/ui/aura/window_unittest.cc
index d1c0ac5..600751d 100644
--- a/ui/aura/window_unittest.cc
+++ b/ui/aura/window_unittest.cc
@@ -162,7 +162,7 @@ class TestWindowDelegate : public WindowDelegateImpl {
delete this;
}
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
- canvas->AsCanvasSkia()->drawColor(color_, SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(color_, SkXfermode::kSrc_Mode);
}
private:
diff --git a/ui/base/clipboard/clipboard_gtk.cc b/ui/base/clipboard/clipboard_gtk.cc
index 46c3b165..439390b 100644
--- a/ui/base/clipboard/clipboard_gtk.cc
+++ b/ui/base/clipboard/clipboard_gtk.cc
@@ -391,7 +391,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
gdk_pixbuf_get_height(pixbuf.get()),
false);
{
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
cairo_t* context = scoped_platform_paint.GetPlatformSurface();
gdk_cairo_set_source_pixbuf(context, pixbuf.get(), 0.0, 0.0);
cairo_paint(context);
diff --git a/ui/base/clipboard/clipboard_mac.mm b/ui/base/clipboard/clipboard_mac.mm
index 0437e6a..fc5fbbc 100644
--- a/ui/base/clipboard/clipboard_mac.mm
+++ b/ui/base/clipboard/clipboard_mac.mm
@@ -258,7 +258,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
gfx::CanvasSkia canvas(width, height, false);
{
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
CGContextRef gc = scoped_platform_paint.GetPlatformSurface();
NSGraphicsContext* cocoa_gc =
[NSGraphicsContext graphicsContextWithGraphicsPort:gc flipped:NO];
diff --git a/ui/base/clipboard/clipboard_win.cc b/ui/base/clipboard/clipboard_win.cc
index b86b36c..2191494 100644
--- a/ui/base/clipboard/clipboard_win.cc
+++ b/ui/base/clipboard/clipboard_win.cc
@@ -490,7 +490,7 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
gfx::CanvasSkia canvas(bitmap->bmiHeader.biWidth, bitmap->bmiHeader.biHeight,
false);
{
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
HDC dc = scoped_platform_paint.GetPlatformSurface();
::SetDIBitsToDevice(dc, 0, 0, bitmap->bmiHeader.biWidth,
bitmap->bmiHeader.biHeight, 0, 0, 0,
@@ -505,7 +505,8 @@ SkBitmap Clipboard::ReadImage(Buffer buffer) const {
// we assume the alpha channel contains garbage and force the bitmap to be
// opaque as well. Note that this heuristic will fail on a transparent bitmap
// containing only black pixels...
- const SkBitmap& device_bitmap = canvas.getDevice()->accessBitmap(true);
+ const SkBitmap& device_bitmap =
+ canvas.sk_canvas()->getDevice()->accessBitmap(true);
{
SkAutoLockPixels lock(device_bitmap);
bool has_invalid_alpha_channel = bitmap->bmiHeader.biBitCount < 32 ||
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc
index e787aab..2ac1718 100644
--- a/ui/gfx/canvas.cc
+++ b/ui/gfx/canvas.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -14,4 +14,12 @@ const CanvasSkia* Canvas::AsCanvasSkia() const {
return NULL;
}
+SkCanvas* Canvas::GetSkCanvas() {
+ return NULL;
+}
+
+const SkCanvas* Canvas::GetSkCanvas() const {
+ return NULL;
+}
+
} // namespace gfx;
diff --git a/ui/gfx/canvas.h b/ui/gfx/canvas.h
index 5fa067e..38ad3ac 100644
--- a/ui/gfx/canvas.h
+++ b/ui/gfx/canvas.h
@@ -15,6 +15,8 @@
#include "ui/base/ui_export.h"
#include "ui/gfx/native_widget_types.h"
+class SkCanvas;
+
namespace ui {
class Transform;
@@ -233,6 +235,8 @@ class UI_EXPORT Canvas {
// A quick and dirty way to obtain the underlying SkCanvas.
virtual CanvasSkia* AsCanvasSkia();
virtual const CanvasSkia* AsCanvasSkia() const;
+ virtual SkCanvas* GetSkCanvas();
+ virtual const SkCanvas* GetSkCanvas() const;
};
class UI_EXPORT CanvasPaint {
diff --git a/ui/gfx/canvas_skia.cc b/ui/gfx/canvas_skia.cc
index 9083d1d..c93dd09 100644
--- a/ui/gfx/canvas_skia.cc
+++ b/ui/gfx/canvas_skia.cc
@@ -47,6 +47,25 @@ namespace gfx {
////////////////////////////////////////////////////////////////////////////////
// CanvasSkia, public:
+CanvasSkia::CanvasSkia(int width, int height, bool is_opaque)
+ : owned_canvas_(new skia::PlatformCanvas(width, height, is_opaque)),
+ canvas_(owned_canvas_.get()) {
+}
+
+CanvasSkia::CanvasSkia()
+ : owned_canvas_(new skia::PlatformCanvas()),
+ canvas_(owned_canvas_.get()) {
+}
+
+CanvasSkia::CanvasSkia(SkCanvas* canvas)
+ : owned_canvas_(),
+ canvas_(canvas) {
+ DCHECK(canvas);
+}
+
+CanvasSkia::~CanvasSkia() {
+}
+
// static
int CanvasSkia::DefaultCanvasTextAlignment() {
if (!base::i18n::IsRTL())
@@ -55,7 +74,7 @@ int CanvasSkia::DefaultCanvasTextAlignment() {
}
SkBitmap CanvasSkia::ExtractBitmap() const {
- const SkBitmap& device_bitmap = getDevice()->accessBitmap(false);
+ const SkBitmap& device_bitmap = canvas_->getDevice()->accessBitmap(false);
// Make a bitmap to return, and a canvas to draw into it. We don't just want
// to call extractSubset or the copy constructor, since we want an actual copy
@@ -69,11 +88,11 @@ SkBitmap CanvasSkia::ExtractBitmap() const {
// CanvasSkia, Canvas implementation:
void CanvasSkia::Save() {
- save();
+ canvas_->save();
}
void CanvasSkia::SaveLayerAlpha(uint8 alpha) {
- saveLayerAlpha(NULL, alpha);
+ canvas_->saveLayerAlpha(NULL, alpha);
}
@@ -83,26 +102,26 @@ void CanvasSkia::SaveLayerAlpha(uint8 alpha, const gfx::Rect& layer_bounds) {
SkIntToScalar(layer_bounds.y()),
SkIntToScalar(layer_bounds.right()),
SkIntToScalar(layer_bounds.bottom()));
- saveLayerAlpha(&bounds, alpha);
+ canvas_->saveLayerAlpha(&bounds, alpha);
}
void CanvasSkia::Restore() {
- restore();
+ canvas_->restore();
}
bool CanvasSkia::ClipRectInt(int x, int y, int w, int h) {
SkRect new_clip;
new_clip.set(SkIntToScalar(x), SkIntToScalar(y),
SkIntToScalar(x + w), SkIntToScalar(y + h));
- return clipRect(new_clip);
+ return canvas_->clipRect(new_clip);
}
void CanvasSkia::TranslateInt(int x, int y) {
- translate(SkIntToScalar(x), SkIntToScalar(y));
+ canvas_->translate(SkIntToScalar(x), SkIntToScalar(y));
}
void CanvasSkia::ScaleInt(int x, int y) {
- scale(SkIntToScalar(x), SkIntToScalar(y));
+ canvas_->scale(SkIntToScalar(x), SkIntToScalar(y));
}
void CanvasSkia::FillRectInt(const SkColor& color, int x, int y, int w, int h) {
@@ -149,7 +168,7 @@ void CanvasSkia::DrawRectInt(const SkColor& color,
void CanvasSkia::DrawRectInt(int x, int y, int w, int h, const SkPaint& paint) {
SkIRect rc = { x, y, x + w, y + h };
- drawIRect(rc, paint);
+ canvas_->drawIRect(rc, paint);
}
void CanvasSkia::DrawLineInt(const SkColor& color,
@@ -158,8 +177,8 @@ void CanvasSkia::DrawLineInt(const SkColor& color,
SkPaint paint;
paint.setColor(color);
paint.setStrokeWidth(SkIntToScalar(1));
- drawLine(SkIntToScalar(x1), SkIntToScalar(y1), SkIntToScalar(x2),
- SkIntToScalar(y2), paint);
+ canvas_->drawLine(SkIntToScalar(x1), SkIntToScalar(y1), SkIntToScalar(x2),
+ SkIntToScalar(y2), paint);
}
void CanvasSkia::DrawFocusRect(int x, int y, int width, int height) {
@@ -207,13 +226,13 @@ void CanvasSkia::DrawFocusRect(int x, int y, int width, int height) {
}
void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap, int x, int y) {
- drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y));
+ canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y));
}
void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap,
int x, int y,
const SkPaint& paint) {
- drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), &paint);
+ canvas_->drawBitmap(bitmap, SkIntToScalar(x), SkIntToScalar(y), &paint);
}
void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap,
@@ -249,7 +268,7 @@ void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap,
// Workaround for apparent bug in Skia that causes image to occasionally
// shift.
SkIRect src_rect = { src_x, src_y, src_x + src_w, src_y + src_h };
- drawBitmapRect(bitmap, &src_rect, dest_rect, &paint);
+ canvas_->drawBitmapRect(bitmap, &src_rect, dest_rect, &paint);
return;
}
@@ -275,7 +294,7 @@ void CanvasSkia::DrawBitmapInt(const SkBitmap& bitmap,
shader->unref();
// The rect will be filled by the bitmap.
- drawRect(dest_rect, p);
+ canvas_->drawRect(dest_rect, p);
}
void CanvasSkia::DrawStringInt(const string16& text,
@@ -316,24 +335,25 @@ void CanvasSkia::TileImageInt(const SkBitmap& bitmap,
// CreateBitmapShader returns a Shader with a reference count of one, we
// need to unref after paint takes ownership of the shader.
shader->unref();
- save();
- translate(SkIntToScalar(dest_x - src_x), SkIntToScalar(dest_y - src_y));
+ canvas_->save();
+ canvas_->translate(SkIntToScalar(dest_x - src_x),
+ SkIntToScalar(dest_y - src_y));
ClipRectInt(src_x, src_y, w, h);
- drawPaint(paint);
- restore();
+ canvas_->drawPaint(paint);
+ canvas_->restore();
}
gfx::NativeDrawingContext CanvasSkia::BeginPlatformPaint() {
- return skia::BeginPlatformPaint(this);
+ return skia::BeginPlatformPaint(canvas_);
}
void CanvasSkia::EndPlatformPaint() {
- skia::EndPlatformPaint(this);
+ skia::EndPlatformPaint(canvas_);
}
#if !defined(OS_MACOSX)
void CanvasSkia::Transform(const ui::Transform& transform) {
- concat(transform.matrix());
+ canvas_->concat(transform.matrix());
}
#endif
@@ -345,12 +365,20 @@ const CanvasSkia* CanvasSkia::AsCanvasSkia() const {
return this;
}
+SkCanvas* CanvasSkia::GetSkCanvas() {
+ return canvas_;
+}
+
+const SkCanvas* CanvasSkia::GetSkCanvas() const {
+ return canvas_;
+}
+
////////////////////////////////////////////////////////////////////////////////
// CanvasSkia, private:
bool CanvasSkia::IntersectsClipRectInt(int x, int y, int w, int h) {
SkRect clip;
- return getClipBounds(&clip) &&
+ return canvas_->getClipBounds(&clip) &&
clip.intersect(SkIntToScalar(x), SkIntToScalar(y), SkIntToScalar(x + w),
SkIntToScalar(y + h));
}
diff --git a/ui/gfx/canvas_skia.h b/ui/gfx/canvas_skia.h
index e7ec18b..b315af9 100644
--- a/ui/gfx/canvas_skia.h
+++ b/ui/gfx/canvas_skia.h
@@ -7,6 +7,7 @@
#pragma once
#include "base/basictypes.h"
+#include "base/memory/scoped_ptr.h"
#include "base/string16.h"
#include "skia/ext/platform_canvas.h"
#include "ui/gfx/canvas.h"
@@ -34,7 +35,7 @@ class Canvas;
// source and destination colors are combined. Unless otherwise specified,
// the variant that does not take a SkXfermode::Mode uses a transfer mode
// of kSrcOver_Mode.
-class UI_EXPORT CanvasSkia : public skia::PlatformCanvas, public Canvas {
+class UI_EXPORT CanvasSkia : public Canvas {
public:
enum TruncateFadeMode {
TruncateFadeTail,
@@ -47,6 +48,7 @@ class UI_EXPORT CanvasSkia : public skia::PlatformCanvas, public Canvas {
CanvasSkia();
CanvasSkia(int width, int height, bool is_opaque);
+ explicit CanvasSkia(SkCanvas* canvas);
virtual ~CanvasSkia();
@@ -163,6 +165,10 @@ class UI_EXPORT CanvasSkia : public skia::PlatformCanvas, public Canvas {
virtual ui::TextureID GetTextureID();
virtual CanvasSkia* AsCanvasSkia();
virtual const CanvasSkia* AsCanvasSkia() const;
+ virtual SkCanvas* GetSkCanvas();
+ virtual const SkCanvas* GetSkCanvas() const;
+ SkCanvas* sk_canvas() const { return canvas_; }
+ skia::PlatformCanvas* platform_canvas() const { return owned_canvas_.get(); }
private:
// Test whether the provided rectangle intersects the current clip rect.
@@ -179,6 +185,8 @@ class UI_EXPORT CanvasSkia : public skia::PlatformCanvas, public Canvas {
int flags);
#endif
+ scoped_ptr<skia::PlatformCanvas> owned_canvas_;
+ SkCanvas* canvas_;
DISALLOW_COPY_AND_ASSIGN(CanvasSkia);
};
diff --git a/ui/gfx/canvas_skia_linux.cc b/ui/gfx/canvas_skia_linux.cc
index 882b381..8101dfa 100644
--- a/ui/gfx/canvas_skia_linux.cc
+++ b/ui/gfx/canvas_skia_linux.cc
@@ -93,7 +93,7 @@ DrawStringContext::DrawStringContext(gfx::CanvasSkia* canvas,
text_direction_(base::i18n::GetFirstStrongCharacterDirection(text)) {
DCHECK(!bounds_.IsEmpty());
- cr_ = skia::BeginPlatformPaint(canvas_);
+ cr_ = skia::BeginPlatformPaint(canvas_->sk_canvas());
layout_ = pango_cairo_create_layout(cr_);
gfx::SetupPangoLayout(
@@ -120,7 +120,7 @@ DrawStringContext::DrawStringContext(gfx::CanvasSkia* canvas,
DrawStringContext::~DrawStringContext() {
cairo_restore(cr_);
- skia::EndPlatformPaint(canvas_);
+ skia::EndPlatformPaint(canvas_->sk_canvas());
g_object_unref(layout_);
// NOTE: BeginPlatformPaint returned its surface, we shouldn't destroy it.
}
@@ -176,7 +176,7 @@ void DrawStringContext::DrawWithHalo(const SkColor& text_color,
0, 0, bounds_.width() + 2, bounds_.height() + 2);
{
- skia::ScopedPlatformPaint scoped_platform_paint(&text_canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(text_canvas.sk_canvas());
cairo_t* text_cr = scoped_platform_paint.GetPlatformSurface();
// TODO: The current approach (stroking the text path to generate the halo
@@ -216,7 +216,7 @@ void DrawStringContext::DrawWithHalo(const SkColor& text_color,
}
const SkBitmap& text_bitmap = const_cast<SkBitmap&>(
- skia::GetTopDevice(text_canvas)->accessBitmap(false));
+ skia::GetTopDevice(*text_canvas.sk_canvas())->accessBitmap(false));
canvas_->DrawBitmapInt(text_bitmap, text_x_ - 1, text_y_ - 1);
}
@@ -237,16 +237,6 @@ void DrawStringContext::DrawUnderline(cairo_t* cr, double extra_edge_width) {
namespace gfx {
-CanvasSkia::CanvasSkia(int width, int height, bool is_opaque)
- : skia::PlatformCanvas(width, height, is_opaque) {
-}
-
-CanvasSkia::CanvasSkia() : skia::PlatformCanvas() {
-}
-
-CanvasSkia::~CanvasSkia() {
-}
-
// static
void CanvasSkia::SizeStringInt(const string16& text,
const gfx::Font& font,
@@ -338,7 +328,7 @@ void CanvasSkia::DrawGdkPixbuf(GdkPixbuf* pixbuf, int x, int y) {
return;
}
- skia::ScopedPlatformPaint scoped_platform_paint(this);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
cairo_t* cr = scoped_platform_paint.GetPlatformSurface();
gdk_cairo_set_source_pixbuf(cr, pixbuf, x, y);
cairo_paint(cr);
diff --git a/ui/gfx/canvas_skia_mac.mm b/ui/gfx/canvas_skia_mac.mm
index 6d40d0c..a20f92a 100644
--- a/ui/gfx/canvas_skia_mac.mm
+++ b/ui/gfx/canvas_skia_mac.mm
@@ -15,16 +15,6 @@
namespace gfx {
-CanvasSkia::CanvasSkia(int width, int height, bool is_opaque)
- : skia::PlatformCanvas(width, height, is_opaque) {
-}
-
-CanvasSkia::CanvasSkia() : skia::PlatformCanvas() {
-}
-
-CanvasSkia::~CanvasSkia() {
-}
-
// static
void CanvasSkia::SizeStringInt(const string16& text,
const gfx::Font& font,
@@ -48,7 +38,7 @@ void CanvasSkia::DrawStringInt(const string16& text,
if (!IntersectsClipRectInt(x, y, w, h))
return;
- skia::ScopedPlatformPaint scoped_platform_paint(this);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
CGContextRef context = scoped_platform_paint.GetPlatformSurface();
CGContextSaveGState(context);
diff --git a/ui/gfx/canvas_skia_paint.h b/ui/gfx/canvas_skia_paint.h
index 1d67b37..9d1ce8a 100644
--- a/ui/gfx/canvas_skia_paint.h
+++ b/ui/gfx/canvas_skia_paint.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -12,6 +12,17 @@
// Define a gfx::CanvasSkiaPaint type that wraps our gfx::Canvas like the
// skia::PlatformCanvasPaint wraps PlatformCanvas.
+namespace skia {
+
+template<> inline
+PlatformCanvas* GetPlatformCanvas(skia::CanvasPaintT<gfx::CanvasSkia>* canvas) {
+ PlatformCanvas* platform_canvas = canvas->platform_canvas();
+ DCHECK(platform_canvas);
+ return platform_canvas;
+}
+
+} // namespace skia
+
namespace gfx {
typedef skia::CanvasPaintT<CanvasSkia> CanvasSkiaPaint;
diff --git a/ui/gfx/canvas_skia_win.cc b/ui/gfx/canvas_skia_win.cc
index e71fefd..07c08d5 100644
--- a/ui/gfx/canvas_skia_win.cc
+++ b/ui/gfx/canvas_skia_win.cc
@@ -281,16 +281,6 @@ void DivideRect(const gfx::Rect& rect,
namespace gfx {
-CanvasSkia::CanvasSkia(int width, int height, bool is_opaque)
- : skia::PlatformCanvas(width, height, is_opaque) {
-}
-
-CanvasSkia::CanvasSkia() : skia::PlatformCanvas() {
-}
-
-CanvasSkia::~CanvasSkia() {
-}
-
// static
void CanvasSkia::SizeStringInt(const string16& text,
const gfx::Font& font,
@@ -336,7 +326,7 @@ void CanvasSkia::DrawStringInt(const string16& text,
int x, int y, int w, int h,
int flags) {
SkRect fclip;
- if (!getClipBounds(&fclip))
+ if (!canvas_->getClipBounds(&fclip))
return;
RECT text_bounds = { x, y, x + w, y + h };
SkIRect clip;
@@ -354,7 +344,7 @@ void CanvasSkia::DrawStringInt(const string16& text,
HDC dc;
HFONT old_font;
{
- skia::ScopedPlatformPaint scoped_platform_paint(this);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
dc = scoped_platform_paint.GetPlatformSurface();
SetBkMode(dc, TRANSPARENT);
old_font = (HFONT)SelectObject(dc, font);
@@ -373,7 +363,7 @@ void CanvasSkia::DrawStringInt(const string16& text,
// Windows will have cleared the alpha channel of the text we drew. Assume
// we're drawing to an opaque surface, or at least the text rect area is
// opaque.
- skia::MakeOpaque(this, clip.fLeft, clip.fTop, clip.width(),
+ skia::MakeOpaque(canvas_, clip.fLeft, clip.fTop, clip.width(),
clip.height());
}
@@ -438,11 +428,11 @@ void CanvasSkia::DrawStringWithHalo(const string16& text,
// opaque. We have to do this first since pixelShouldGetHalo will check for
// 0 to see if a pixel has been modified to transparent, and black text that
// Windows draw will look transparent to it!
- skia::MakeOpaque(&text_canvas, 0, 0, w + 2, h + 2);
+ skia::MakeOpaque(text_canvas.sk_canvas(), 0, 0, w + 2, h + 2);
uint32_t halo_premul = SkPreMultiplyColor(halo_color);
SkBitmap& text_bitmap = const_cast<SkBitmap&>(
- skia::GetTopDevice(text_canvas)->accessBitmap(true));
+ skia::GetTopDevice(*text_canvas.sk_canvas())->accessBitmap(true));
for (int cur_y = 0; cur_y < h + 2; cur_y++) {
uint32_t* text_row = text_bitmap.getAddr32(0, cur_y);
for (int cur_x = 0; cur_x < w + 2; cur_x++) {
@@ -541,7 +531,7 @@ void CanvasSkia::DrawFadeTruncatingString(
// Move the origin to |display_rect.origin()|. This simplifies all the
// drawing so that both the source and destination can be (0,0).
- save(kMatrix_SaveFlag);
+ canvas_->save(SkCanvas::kMatrix_SaveFlag);
TranslateInt(display_rect.x(), display_rect.y());
gfx::Rect solid_part(gfx::Point(), display_rect.size());
@@ -565,7 +555,7 @@ void CanvasSkia::DrawFadeTruncatingString(
display_rect.width(), display_rect.height(), false));
{
- skia::ScopedPlatformPaint scoped_platform_paint(this);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas_);
HDC hdc = scoped_platform_paint.GetPlatformSurface();
if (is_truncating_head)
DrawTextGradientPart(hdc, gradient_canvas.get(), text, color,
@@ -578,15 +568,15 @@ void CanvasSkia::DrawFadeTruncatingString(
}
// Draw the solid part.
- save(kClip_SaveFlag);
+ canvas_->save(SkCanvas::kClip_SaveFlag);
ClipRectInt(solid_part.x(), solid_part.y(),
solid_part.width(), solid_part.height());
DrawStringInt(text, font, color,
text_rect.x(), text_rect.y(),
text_rect.width(), text_rect.height(),
flags);
- restore();
- restore();
+ canvas_->restore();
+ canvas_->restore();
}
} // namespace gfx
diff --git a/ui/gfx/compositor/layer.cc b/ui/gfx/compositor/layer.cc
index e0a3a3a..af3514fc 100644
--- a/ui/gfx/compositor/layer.cc
+++ b/ui/gfx/compositor/layer.cc
@@ -293,7 +293,7 @@ void Layer::UpdateLayerCanvas() {
draw_rect.width(), draw_rect.height(), false));
canvas->TranslateInt(-draw_rect.x(), -draw_rect.y());
delegate_->OnPaintLayer(canvas.get());
- SetCanvas(*canvas->AsCanvasSkia(), draw_rect.origin());
+ SetCanvas(*canvas->GetSkCanvas(), draw_rect.origin());
}
void Layer::RecomputeHole() {
diff --git a/ui/gfx/compositor/layer_unittest.cc b/ui/gfx/compositor/layer_unittest.cc
index 0c839dd..df9405f 100644
--- a/ui/gfx/compositor/layer_unittest.cc
+++ b/ui/gfx/compositor/layer_unittest.cc
@@ -71,7 +71,7 @@ class LayerWithRealCompositorTest : public testing::Test {
scoped_ptr<gfx::Canvas> canvas(CreateCanvasForLayer(layer));
canvas->FillRectInt(color, 0, 0, layer->bounds().width(),
layer->bounds().height());
- layer->SetCanvas(*canvas->AsCanvasSkia(), layer->bounds().origin());
+ layer->SetCanvas(*canvas->GetSkCanvas(), layer->bounds().origin());
}
void DrawTree(Layer* root) {
@@ -238,7 +238,7 @@ class LayerWithDelegateTest : public testing::Test {
scoped_ptr<gfx::Canvas> canvas(CreateCanvasForLayer(layer));
canvas->FillRectInt(color, 0, 0, layer->bounds().width(),
layer->bounds().height());
- layer->SetCanvas(*canvas->AsCanvasSkia(), layer->bounds().origin());
+ layer->SetCanvas(canvas->GetSkCanvas(), layer->bounds().origin());
}
void DrawTree(Layer* root) {
diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc
index 5de4260..001b4b2 100644
--- a/ui/gfx/render_text.cc
+++ b/ui/gfx/render_text.cc
@@ -352,11 +352,11 @@ void RenderText::Draw(Canvas* canvas) {
paint.setStyle(SkPaint::kFill_Style);
paint.setColor(i->foreground);
paint.setStrokeWidth(kStrikeWidth);
- canvas->AsCanvasSkia()->drawLine(SkIntToScalar(bounds.x()),
- SkIntToScalar(bounds.bottom()),
- SkIntToScalar(bounds.right()),
- SkIntToScalar(bounds.y()),
- paint);
+ canvas->GetSkCanvas()->drawLine(SkIntToScalar(bounds.x()),
+ SkIntToScalar(bounds.bottom()),
+ SkIntToScalar(bounds.right()),
+ SkIntToScalar(bounds.y()),
+ paint);
}
bounds.set_x(bounds.x() + bounds.width());
diff --git a/ui/gfx/render_text_linux.cc b/ui/gfx/render_text_linux.cc
index d744a94..92af95e 100644
--- a/ui/gfx/render_text_linux.cc
+++ b/ui/gfx/render_text_linux.cc
@@ -94,7 +94,7 @@ void RenderTextLinux::Draw(Canvas* canvas) {
Rect bounds(display_rect());
// Clip the canvas to the text display area.
- CanvasSkia* canvas_skia = canvas->AsCanvasSkia();
+ SkCanvas* canvas_skia = canvas->GetSkCanvas();
skia::ScopedPlatformPaint scoped_platform_paint(canvas_skia);
cairo_t* cr = scoped_platform_paint.GetPlatformSurface();
@@ -498,7 +498,7 @@ SelectionModel RenderTextLinux::RightSelectionModelByWord(
PangoLayout* RenderTextLinux::EnsureLayout() {
if (layout_ == NULL) {
CanvasSkia canvas(display_rect().width(), display_rect().height(), false);
- skia::ScopedPlatformPaint scoped_platform_paint(&canvas);
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas.sk_canvas());
cairo_t* cr = scoped_platform_paint.GetPlatformSurface();
layout_ = pango_cairo_create_layout(cr);
diff --git a/ui/gfx/render_text_win.cc b/ui/gfx/render_text_win.cc
index f6b983d..114a963 100644
--- a/ui/gfx/render_text_win.cc
+++ b/ui/gfx/render_text_win.cc
@@ -100,7 +100,7 @@ int RenderTextWin::GetStringWidth() {
}
void RenderTextWin::Draw(Canvas* canvas) {
- skia::ScopedPlatformPaint scoped_platform_paint(canvas->AsCanvasSkia());
+ skia::ScopedPlatformPaint scoped_platform_paint(canvas->GetSkCanvas());
HDC hdc = scoped_platform_paint.GetPlatformSurface();
int saved_dc = SaveDC(hdc);
DrawSelection(canvas);
@@ -590,7 +590,7 @@ void RenderTextWin::DrawVisualText(Canvas* canvas) {
if (text().empty())
return;
- CanvasSkia* canvas_skia = canvas->AsCanvasSkia();
+ SkCanvas* canvas_skia = canvas->GetSkCanvas();
skia::ScopedPlatformPaint scoped_platform_paint(canvas_skia);
Point offset(ToViewPoint(Point()));
@@ -645,11 +645,11 @@ void RenderTextWin::DrawVisualText(Canvas* canvas) {
strike.setStyle(SkPaint::kFill_Style);
strike.setColor(run->foreground);
strike.setStrokeWidth(kStrikeWidth);
- canvas->AsCanvasSkia()->drawLine(SkIntToScalar(bounds.x()),
- SkIntToScalar(bounds.bottom()),
- SkIntToScalar(bounds.right()),
- SkIntToScalar(bounds.y()),
- strike);
+ canvas->GetSkCanvas()->drawLine(SkIntToScalar(bounds.x()),
+ SkIntToScalar(bounds.bottom()),
+ SkIntToScalar(bounds.right()),
+ SkIntToScalar(bounds.y()),
+ strike);
}
offset.Offset(run->width, 0);
}
diff --git a/views/aura_desktop/aura_desktop_main.cc b/views/aura_desktop/aura_desktop_main.cc
index 2cd2bc6..3516f2a 100644
--- a/views/aura_desktop/aura_desktop_main.cc
+++ b/views/aura_desktop/aura_desktop_main.cc
@@ -56,7 +56,7 @@ class DemoWindowDelegate : public aura::WindowDelegate {
virtual void OnLostActive() OVERRIDE {}
virtual void OnCaptureLost() OVERRIDE {}
virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE {
- canvas->AsCanvasSkia()->drawColor(color_, SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(color_, SkXfermode::kSrc_Mode);
}
virtual void OnWindowDestroying() OVERRIDE {
}
diff --git a/views/background.cc b/views/background.cc
index f9eb2135..fa79793 100644
--- a/views/background.cc
+++ b/views/background.cc
@@ -25,7 +25,7 @@ class SolidBackground : public Background {
void Paint(gfx::Canvas* canvas, View* view) const {
// Fill the background. Note that we don't constrain to the bounds as
// canvas is already clipped for us.
- canvas->AsCanvasSkia()->drawColor(get_color());
+ canvas->GetSkCanvas()->drawColor(get_color());
}
private:
diff --git a/views/bubble/bubble_border.cc b/views/bubble/bubble_border.cc
index 80e1bc8..871e669 100644
--- a/views/bubble/bubble_border.cc
+++ b/views/bubble/bubble_border.cc
@@ -423,7 +423,7 @@ void BubbleBorder::DrawArrowInterior(gfx::Canvas* canvas,
else
path.lineTo(SkIntToScalar(tip_x + shift_x), SkIntToScalar(tip_y - shift_y));
path.close();
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
/////////////////////////
@@ -444,7 +444,7 @@ void BubbleBackground::Paint(gfx::Canvas* canvas, views::View* view) const {
SkIntToScalar(bounds.right()), SkIntToScalar(bounds.bottom()));
SkScalar radius = SkIntToScalar(BubbleBorder::GetCornerRadius());
path.addRoundRect(rect, radius, radius);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
} // namespace views
diff --git a/views/controls/button/text_button.cc b/views/controls/button/text_button.cc
index 5dc5787..bd1ad86 100644
--- a/views/controls/button/text_button.cc
+++ b/views/controls/button/text_button.cc
@@ -141,8 +141,8 @@ void TextButtonBorder::Paint(const View& view, gfx::Canvas* canvas) const {
// handle the case of having a non-NULL |normal_set_|.
canvas->SaveLayerAlpha(static_cast<uint8>(
button->GetAnimation()->CurrentValueBetween(0, 255)));
- canvas->AsCanvasSkia()->drawARGB(0, 255, 255, 255,
- SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawARGB(0, 255, 255, 255,
+ SkXfermode::kClear_Mode);
Paint(view, canvas, *set);
canvas->Restore();
} else {
@@ -213,7 +213,6 @@ void TextButtonNativeThemeBorder::Paint(const View& view,
const TextButtonBase* tb = static_cast<const TextButton*>(&view);
const gfx::NativeTheme* native_theme = gfx::NativeTheme::instance();
gfx::NativeTheme::Part part = delegate_->GetThemePart();
- gfx::CanvasSkia* skia_canvas = canvas->AsCanvasSkia();
gfx::Rect rect(delegate_->GetThemePaintRect());
if (tb->show_multiple_icon_states() &&
@@ -223,19 +222,20 @@ void TextButtonNativeThemeBorder::Paint(const View& view,
gfx::NativeTheme::ExtraParams prev_extra;
gfx::NativeTheme::State prev_state =
delegate_->GetBackgroundThemeState(&prev_extra);
- native_theme->Paint(skia_canvas, part, prev_state, rect, prev_extra);
+ native_theme->Paint(
+ canvas->GetSkCanvas(), part, prev_state, rect, prev_extra);
// Composite foreground state above it.
gfx::NativeTheme::ExtraParams extra;
gfx::NativeTheme::State state = delegate_->GetForegroundThemeState(&extra);
int alpha = delegate_->GetThemeAnimation()->CurrentValueBetween(0, 255);
- skia_canvas->SaveLayerAlpha(static_cast<uint8>(alpha));
- native_theme->Paint(skia_canvas, part, state, rect, extra);
- skia_canvas->Restore();
+ canvas->SaveLayerAlpha(static_cast<uint8>(alpha));
+ native_theme->Paint(canvas->GetSkCanvas(), part, state, rect, extra);
+ canvas->Restore();
} else {
gfx::NativeTheme::ExtraParams extra;
gfx::NativeTheme::State state = delegate_->GetThemeState(&extra);
- native_theme->Paint(skia_canvas, part, state, rect, extra);
+ native_theme->Paint(canvas->GetSkCanvas(), part, state, rect, extra);
}
}
diff --git a/views/controls/combobox/native_combobox_views.cc b/views/controls/combobox/native_combobox_views.cc
index 132d63b..ab676d1 100644
--- a/views/controls/combobox/native_combobox_views.cc
+++ b/views/controls/combobox/native_combobox_views.cc
@@ -294,7 +294,7 @@ void NativeComboboxViews::DrawArrow(gfx::Canvas* canvas,
path.lineTo(SkIntToScalar(tip_x + shift_x), SkIntToScalar(tip_y + shift_y));
path.lineTo(SkIntToScalar(tip_x - shift_x), SkIntToScalar(tip_y + shift_y));
path.close();
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
diff --git a/views/controls/focusable_border.cc b/views/controls/focusable_border.cc
index 8c5e6b6..a1aa667 100644
--- a/views/controls/focusable_border.cc
+++ b/views/controls/focusable_border.cc
@@ -60,7 +60,7 @@ void FocusableBorder::Paint(const View& view, gfx::Canvas* canvas) const {
paint.setColor(has_focus_ ? kFocusedBorderColor : kDefaultBorderColor);
paint.setStrokeWidth(SkIntToScalar(has_focus_ ? 2 : 1));
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
void FocusableBorder::GetInsets(gfx::Insets* insets) const {
diff --git a/views/controls/menu/menu_image_util_linux.cc b/views/controls/menu/menu_image_util_linux.cc
index b2f5d97..f3e3e3a 100644
--- a/views/controls/menu/menu_image_util_linux.cc
+++ b/views/controls/menu/menu_image_util_linux.cc
@@ -47,13 +47,13 @@ SkBitmap* CreateRadioButtonImage(bool selected) {
paint.setShader(shader);
shader->unref();
int radius = kIndicatorSize / 2;
- canvas.drawCircle(radius, radius, radius, paint);
+ canvas.sk_canvas()->drawCircle(radius, radius, radius, paint);
paint.setStrokeWidth(SkIntToScalar(0));
paint.setShader(NULL);
paint.setStyle(SkPaint::kStroke_Style);
paint.setColor(kBaseStroke);
- canvas.drawCircle(radius, radius, radius, paint);
+ canvas.sk_canvas()->drawCircle(radius, radius, radius, paint);
if (selected) {
SkPoint selected_gradient_points[2];
@@ -69,15 +69,15 @@ SkBitmap* CreateRadioButtonImage(bool selected) {
paint.setShader(shader);
shader->unref();
paint.setStyle(SkPaint::kFill_Style);
- canvas.drawCircle(radius, radius,
- kSelectedIndicatorSize / 2, paint);
+ canvas.sk_canvas()->drawCircle(radius, radius,
+ kSelectedIndicatorSize / 2, paint);
paint.setStrokeWidth(SkIntToScalar(0));
paint.setShader(NULL);
paint.setStyle(SkPaint::kStroke_Style);
paint.setColor(kIndicatorStroke);
- canvas.drawCircle(radius, radius,
- kSelectedIndicatorSize / 2, paint);
+ canvas.sk_canvas()->drawCircle(radius, radius,
+ kSelectedIndicatorSize / 2, paint);
}
return new SkBitmap(canvas.ExtractBitmap());
}
diff --git a/views/controls/menu/menu_item_view_linux.cc b/views/controls/menu/menu_item_view_linux.cc
index c64e320..2b04004 100644
--- a/views/controls/menu/menu_item_view_linux.cc
+++ b/views/controls/menu/menu_item_view_linux.cc
@@ -68,8 +68,8 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
// only need the background when we want it to look different, as when we're
// selected.
if (render_selection)
- canvas->AsCanvasSkia()->drawColor(kSelectedBackgroundColor,
- SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(kSelectedBackgroundColor,
+ SkXfermode::kSrc_Mode);
// Render the check.
if (type_ == CHECKBOX && GetDelegate()->IsItemChecked(GetCommand())) {
diff --git a/views/controls/menu/menu_item_view_win.cc b/views/controls/menu/menu_item_view_win.cc
index cea5c4c..9e04cdc 100644
--- a/views/controls/menu/menu_item_view_win.cc
+++ b/views/controls/menu/menu_item_view_win.cc
@@ -66,7 +66,7 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
height());
AdjustBoundsForRTLUI(&gutter_bounds);
NativeTheme::ExtraParams extra;
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuPopupGutter,
NativeTheme::kNormal,
gutter_bounds,
@@ -79,7 +79,7 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
NativeTheme::ExtraParams extra;
extra.menu_item.is_selected = render_selection;
AdjustBoundsForRTLUI(&item_bounds);
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuItemBackground, control_state, item_bounds, extra);
}
@@ -144,7 +144,7 @@ void MenuItemView::PaintButton(gfx::Canvas* canvas, PaintButtonMode mode) {
gfx::NativeTheme::ExtraParams extra;
extra.menu_arrow.pointing_right = !base::i18n::IsRTL();
extra.menu_arrow.is_selected = render_selection;
- gfx::NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ gfx::NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
gfx::NativeTheme::kMenuPopupArrow, control_state, arrow_bounds, extra);
}
}
@@ -174,13 +174,13 @@ void MenuItemView::PaintCheck(gfx::Canvas* canvas,
// Draw the background.
gfx::Rect bg_bounds(0, 0, icon_x + icon_width, height());
AdjustBoundsForRTLUI(&bg_bounds);
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuCheckBackground, state, bg_bounds, extra);
// And the check.
gfx::Rect icon_bounds(icon_x / 2, icon_y, icon_width, icon_height);
AdjustBoundsForRTLUI(&icon_bounds);
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuCheck, state, bg_bounds, extra);
}
diff --git a/views/controls/menu/menu_scroll_view_container.cc b/views/controls/menu/menu_scroll_view_container.cc
index 1d3fcdd..cb52b41 100644
--- a/views/controls/menu/menu_scroll_view_container.cc
+++ b/views/controls/menu/menu_scroll_view_container.cc
@@ -86,7 +86,7 @@ class MenuScrollButton : public View {
gfx::Rect item_bounds(0, 0, width(), height());
NativeTheme::ExtraParams extra;
extra.menu_item.is_selected = false;
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuItemBackground,
NativeTheme::kNormal, item_bounds, extra);
SkColor arrow_color = color_utils::GetSysSkColor(COLOR_MENUTEXT);
@@ -186,7 +186,7 @@ void MenuScrollViewContainer::OnPaintBackground(gfx::Canvas* canvas) {
HDC dc = canvas->BeginPlatformPaint();
gfx::Rect bounds(0, 0, width(), height());
NativeTheme::ExtraParams extra;
- NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
NativeTheme::kMenuPopupBackground, NativeTheme::kNormal, bounds, extra);
canvas->EndPlatformPaint();
#elif defined(OS_CHROMEOS)
@@ -219,8 +219,8 @@ void MenuScrollViewContainer::OnPaintBackground(gfx::Canvas* canvas) {
canvas->DrawRectInt(0, 0, width(), height(), paint);
#else
// This is the same as COLOR_TOOLBAR.
- canvas->AsCanvasSkia()->drawColor(SkColorSetRGB(210, 225, 246),
- SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(SkColorSetRGB(210, 225, 246),
+ SkXfermode::kSrc_Mode);
#endif
}
diff --git a/views/controls/menu/menu_separator_win.cc b/views/controls/menu/menu_separator_win.cc
index e089149..01acaa8 100644
--- a/views/controls/menu/menu_separator_win.cc
+++ b/views/controls/menu/menu_separator_win.cc
@@ -28,7 +28,7 @@ void MenuSeparator::OnPaint(gfx::Canvas* canvas) {
config.gutter_to_label - config.gutter_width, 0,
config.gutter_width, height());
gfx::NativeTheme::ExtraParams extra;
- theme->Paint(canvas->AsCanvasSkia(), gfx::NativeTheme::kMenuPopupGutter,
+ theme->Paint(canvas->GetSkCanvas(), gfx::NativeTheme::kMenuPopupGutter,
gfx::NativeTheme::kNormal, gutter_bounds, extra);
start_x = gutter_bounds.x() + config.gutter_width;
}
@@ -36,7 +36,7 @@ void MenuSeparator::OnPaint(gfx::Canvas* canvas) {
gfx::Rect separator_bounds(start_x, 0, width(), height());
gfx::NativeTheme::ExtraParams extra;
extra.menu_separator.has_gutter = config.render_gutter;
- theme->Paint(canvas->AsCanvasSkia(), gfx::NativeTheme::kMenuPopupSeparator,
+ theme->Paint(canvas->GetSkCanvas(), gfx::NativeTheme::kMenuPopupSeparator,
gfx::NativeTheme::kNormal, separator_bounds, extra);
}
diff --git a/views/controls/menu/menu_win.cc b/views/controls/menu/menu_win.cc
index 5c1d487..10d1119 100644
--- a/views/controls/menu/menu_win.cc
+++ b/views/controls/menu/menu_win.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -186,10 +186,10 @@ class MenuHostWindow : public ui::WindowImpl {
// by the label.
if (data->icon.width() != 0 && data->icon.height() != 0) {
gfx::CanvasSkia canvas(data->icon.width(), data->icon.height(), false);
- canvas.drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
canvas.DrawBitmapInt(data->icon, 0, 0);
skia::DrawToNativeContext(
- &canvas, hDC, lpdis->rcItem.left + kItemLeftMargin,
+ canvas.sk_canvas(), hDC, lpdis->rcItem.left + kItemLeftMargin,
lpdis->rcItem.top + (lpdis->rcItem.bottom - lpdis->rcItem.top -
data->icon.height()) / 2, NULL);
}
diff --git a/views/controls/menu/native_menu_win.cc b/views/controls/menu/native_menu_win.cc
index 9cb765a..acab371 100644
--- a/views/controls/menu/native_menu_win.cc
+++ b/views/controls/menu/native_menu_win.cc
@@ -250,10 +250,11 @@ class NativeMenuWin::MenuHostWindow {
// We currently don't support items with both icons and checkboxes.
DCHECK(type != ui::MenuModel::TYPE_CHECK);
gfx::CanvasSkia canvas(icon.width(), icon.height(), false);
- canvas.drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
canvas.DrawBitmapInt(icon, 0, 0);
skia::DrawToNativeContext(
- &canvas, dc, draw_item_struct->rcItem.left + kItemLeftMargin,
+ canvas.sk_canvas(), dc,
+ draw_item_struct->rcItem.left + kItemLeftMargin,
draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom -
draw_item_struct->rcItem.top - icon.height()) / 2, NULL);
} else if (type == ui::MenuModel::TYPE_CHECK &&
@@ -280,12 +281,13 @@ class NativeMenuWin::MenuHostWindow {
// Draw the background and the check.
NativeTheme::instance()->Paint(
- &canvas, NativeTheme::kMenuCheckBackground, state, bounds, extra);
+ canvas.sk_canvas(), NativeTheme::kMenuCheckBackground,
+ state, bounds, extra);
NativeTheme::instance()->Paint(
- &canvas, NativeTheme::kMenuCheck, state, bounds, extra);
+ canvas.sk_canvas(), NativeTheme::kMenuCheck, state, bounds, extra);
// Draw checkbox to menu.
- skia::DrawToNativeContext(&canvas, dc,
+ skia::DrawToNativeContext(canvas.sk_canvas(), dc,
draw_item_struct->rcItem.left + kItemLeftMargin,
draw_item_struct->rcItem.top + (draw_item_struct->rcItem.bottom -
draw_item_struct->rcItem.top - config.check_height) / 2, NULL);
diff --git a/views/controls/progress_bar.cc b/views/controls/progress_bar.cc
index 7cdebdb..0d70b7b 100644
--- a/views/controls/progress_bar.cc
+++ b/views/controls/progress_bar.cc
@@ -85,7 +85,7 @@ void FillRoundRect(gfx::Canvas* canvas,
// Need to unref shader, otherwise never deleted.
s->unref();
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
void FillRoundRect(gfx::Canvas* canvas,
@@ -106,7 +106,7 @@ void FillRoundRect(gfx::Canvas* canvas,
paint.setStyle(SkPaint::kFill_Style);
paint.setFlags(SkPaint::kAntiAlias_Flag);
paint.setColor(gradient_start_color);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
}
@@ -124,7 +124,7 @@ void StrokeRoundRect(gfx::Canvas* canvas,
paint.setStyle(SkPaint::kStroke_Style);
paint.setFlags(SkPaint::kAntiAlias_Flag);
paint.setStrokeWidth(SkIntToScalar(stroke_width));
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
} // namespace
@@ -222,7 +222,7 @@ void ProgressBar::OnPaint(gfx::Canvas* canvas) {
// Draw inner stroke and shadow if wide enough.
if (progress_width > 2 * kBorderWidth) {
- canvas->AsCanvasSkia()->save();
+ canvas->GetSkCanvas()->save();
SkPath inner_path;
AddRoundRectPathWithPadding(
@@ -230,7 +230,7 @@ void ProgressBar::OnPaint(gfx::Canvas* canvas) {
kCornerRadius,
SkIntToScalar(kBorderWidth),
&inner_path);
- canvas->AsCanvasSkia()->clipPath(inner_path);
+ canvas->GetSkCanvas()->clipPath(inner_path);
// Draw bar inner stroke
StrokeRoundRect(canvas,
@@ -248,7 +248,7 @@ void ProgressBar::OnPaint(gfx::Canvas* canvas) {
bar_inner_shadow_color,
kBorderWidth);
- canvas->AsCanvasSkia()->restore();
+ canvas->GetSkCanvas()->restore();
}
// Draw bar stroke
diff --git a/views/controls/scrollbar/native_scroll_bar_views.cc b/views/controls/scrollbar/native_scroll_bar_views.cc
index ac1bc89..f007b50 100644
--- a/views/controls/scrollbar/native_scroll_bar_views.cc
+++ b/views/controls/scrollbar/native_scroll_bar_views.cc
@@ -98,7 +98,7 @@ void ScrollBarButton::OnPaint(gfx::Canvas* canvas) {
gfx::Rect bounds;
bounds.set_size(GetPreferredSize());
- native_theme->Paint(canvas->AsCanvasSkia(),
+ native_theme->Paint(canvas->GetSkCanvas(),
GetNativeThemePart(),
GetNativeThemeState(),
bounds,
@@ -183,7 +183,7 @@ gfx::Size ScrollBarThumb::GetPreferredSize() {
void ScrollBarThumb::OnPaint(gfx::Canvas* canvas) {
const gfx::NativeTheme* native_theme = gfx::NativeTheme::instance();
- native_theme->Paint(canvas->AsCanvasSkia(),
+ native_theme->Paint(canvas->GetSkCanvas(),
GetNativeThemePart(),
GetNativeThemeState(),
GetLocalBounds(),
@@ -302,7 +302,7 @@ void NativeScrollBarViews::OnPaint(gfx::Canvas* canvas) {
params_.scrollbar_track.track_height = bounds.height();
- native_theme->Paint(canvas->AsCanvasSkia(),
+ native_theme->Paint(canvas->GetSkCanvas(),
part_,
state_,
bounds,
diff --git a/views/controls/tabbed_pane/native_tabbed_pane_win.cc b/views/controls/tabbed_pane/native_tabbed_pane_win.cc
index 455e8fb..773761d 100644
--- a/views/controls/tabbed_pane/native_tabbed_pane_win.cc
+++ b/views/controls/tabbed_pane/native_tabbed_pane_win.cc
@@ -41,7 +41,7 @@ class TabBackground : public Background {
gfx::Rect r(0, 0, view->width(), view->height());
gfx::NativeTheme::ExtraParams extra;
gfx::NativeTheme::instance()->Paint(
- canvas->AsCanvasSkia(), gfx::NativeTheme::kTabPanelBackground,
+ canvas->GetSkCanvas(), gfx::NativeTheme::kTabPanelBackground,
gfx::NativeTheme::kNormal, r, extra);
}
diff --git a/views/controls/table/native_table_win.cc b/views/controls/table/native_table_win.cc
index 6f8472c..91d46c9 100644
--- a/views/controls/table/native_table_win.cc
+++ b/views/controls/table/native_table_win.cc
@@ -395,7 +395,7 @@ void NativeTableWin::CreateNativeControl() {
// rect does not include the icon).
gfx::CanvasSkia canvas(kImageSize, kImageSize, false);
// Make the background completely transparent.
- canvas.drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
{
base::win::ScopedHICON empty_icon(
IconUtil::CreateHICONFromSkBitmap(canvas.ExtractBitmap()));
@@ -533,7 +533,7 @@ LRESULT NativeTableWin::OnCustomDraw(NMLVCUSTOMDRAW* draw_info) {
// NOTE: This may be invoked without the ListView filling in the
// background (or rather windows paints background, then invokes
// this twice). As such, we always fill in the background.
- canvas.drawColor(
+ canvas.sk_canvas()->drawColor(
skia::COLORREFToSkColor(GetSysColor(bg_color_index)),
SkXfermode::kSrc_Mode);
// + 1 for padding (we declared the image as 18x18 in the list-
@@ -551,9 +551,9 @@ LRESULT NativeTableWin::OnCustomDraw(NMLVCUSTOMDRAW* draw_info) {
(intersection.right - intersection.left);
to_draw.bottom = to_draw.top +
(intersection.bottom - intersection.top);
- skia::DrawToNativeContext(&canvas, draw_info->nmcd.hdc,
- intersection.left, intersection.top,
- &to_draw);
+ skia::DrawToNativeContext(canvas.sk_canvas(), draw_info->nmcd.hdc,
+ intersection.left, intersection.top,
+ &to_draw);
r = CDRF_SKIPDEFAULT;
}
}
diff --git a/views/controls/table/table_view.cc b/views/controls/table/table_view.cc
index ec81df8..5ee978c 100644
--- a/views/controls/table/table_view.cc
+++ b/views/controls/table/table_view.cc
@@ -807,7 +807,7 @@ HWND TableView::CreateNativeControl(HWND parent_container) {
// rect does not include the icon).
gfx::CanvasSkia canvas(kImageSize, kImageSize, false);
// Make the background completely transparent.
- canvas.drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
{
base::win::ScopedHICON empty_icon(
IconUtil::CreateHICONFromSkBitmap(canvas.ExtractBitmap()));
@@ -1157,7 +1157,8 @@ void TableView::PaintAltText() {
canvas.DrawStringWithHalo(alt_text_, font, SK_ColorDKGRAY, SK_ColorWHITE, 1,
1, bounds.width() - 2, bounds.height() - 2,
gfx::CanvasSkia::DefaultCanvasTextAlignment());
- skia::DrawToNativeContext(&canvas, dc, bounds.x(), bounds.y(), NULL);
+ skia::DrawToNativeContext(
+ canvas.sk_canvas(), dc, bounds.x(), bounds.y(), NULL);
ReleaseDC(GetNativeControlHWND(), dc);
}
@@ -1255,7 +1256,7 @@ LRESULT TableView::OnCustomDraw(NMLVCUSTOMDRAW* draw_info) {
// NOTE: This may be invoked without the ListView filling in the
// background (or rather windows paints background, then invokes
// this twice). As such, we always fill in the background.
- canvas.drawColor(
+ canvas.sk_canvas()->drawColor(
skia::COLORREFToSkColor(GetSysColor(bg_color_index)),
SkXfermode::kSrc_Mode);
// + 1 for padding (we declared the image as 18x18 in the list-
@@ -1273,9 +1274,9 @@ LRESULT TableView::OnCustomDraw(NMLVCUSTOMDRAW* draw_info) {
(intersection.right - intersection.left);
to_draw.bottom = to_draw.top +
(intersection.bottom - intersection.top);
- skia::DrawToNativeContext(&canvas, draw_info->nmcd.hdc,
- intersection.left, intersection.top,
- &to_draw);
+ skia::DrawToNativeContext(canvas.sk_canvas(), draw_info->nmcd.hdc,
+ intersection.left, intersection.top,
+ &to_draw);
r = CDRF_SKIPDEFAULT;
}
}
diff --git a/views/controls/tree/tree_view.cc b/views/controls/tree/tree_view.cc
index 078ee20..80313ed 100644
--- a/views/controls/tree/tree_view.cc
+++ b/views/controls/tree/tree_view.cc
@@ -699,7 +699,7 @@ HIMAGELIST TreeView::CreateImageList() {
model_images[i].height() != height) {
gfx::CanvasSkia canvas(width, height, false);
// Make the background completely transparent.
- canvas.drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas.sk_canvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
// Draw our icons into this canvas.
int height_offset = (height - model_images[i].height()) / 2;
@@ -752,7 +752,7 @@ LRESULT CALLBACK TreeView::TreeWndProc(HWND window,
if (canvas.isEmpty())
return 0;
- HDC dc = skia::BeginPlatformPaint(&canvas);
+ HDC dc = skia::BeginPlatformPaint(canvas.sk_canvas());
if (base::i18n::IsRTL()) {
// gfx::CanvasSkia ends up configuring the DC with a mode of
// GM_ADVANCED. For some reason a graphics mode of ADVANCED triggers
@@ -786,7 +786,7 @@ LRESULT CALLBACK TreeView::TreeWndProc(HWND window,
// over we copy the right bits.
SetViewportOrgEx(dc, 0, 0, NULL);
}
- skia::EndPlatformPaint(&canvas);
+ skia::EndPlatformPaint(canvas.sk_canvas());
return 0;
}
diff --git a/views/desktop/desktop_background.cc b/views/desktop/desktop_background.cc
index a6d7a64..89399e1 100644
--- a/views/desktop/desktop_background.cc
+++ b/views/desktop/desktop_background.cc
@@ -37,7 +37,7 @@ void DesktopBackground::Paint(gfx::Canvas* canvas, View* view) const {
path.close();
paint.setColor(SK_ColorGREEN);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
// Paint the shining sun.
@@ -47,7 +47,7 @@ void DesktopBackground::Paint(gfx::Canvas* canvas, View* view) const {
path.close();
paint.setColor(SK_ColorYELLOW);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
}
diff --git a/views/native_theme_painter.cc b/views/native_theme_painter.cc
index 71bb71b..584667b9 100644
--- a/views/native_theme_painter.cc
+++ b/views/native_theme_painter.cc
@@ -28,7 +28,6 @@ gfx::Size NativeThemePainter::GetPreferredSize() {
void NativeThemePainter::Paint(int w, int h, gfx::Canvas* canvas) {
const gfx::NativeTheme* native_theme = gfx::NativeTheme::instance();
gfx::NativeTheme::Part part = delegate_->GetThemePart();
- gfx::CanvasSkia* skia_canvas = canvas->AsCanvasSkia();
gfx::Rect rect(0, 0, w, h);
if (delegate_->GetThemeAnimation() != NULL &&
@@ -37,19 +36,20 @@ void NativeThemePainter::Paint(int w, int h, gfx::Canvas* canvas) {
gfx::NativeTheme::ExtraParams prev_extra;
gfx::NativeTheme::State prev_state =
delegate_->GetBackgroundThemeState(&prev_extra);
- native_theme->Paint(skia_canvas, part, prev_state, rect, prev_extra);
+ native_theme->Paint(
+ canvas->GetSkCanvas(), part, prev_state, rect, prev_extra);
// Composite foreground state above it.
gfx::NativeTheme::ExtraParams extra;
gfx::NativeTheme::State state = delegate_->GetForegroundThemeState(&extra);
int alpha = delegate_->GetThemeAnimation()->CurrentValueBetween(0, 255);
- skia_canvas->SaveLayerAlpha(static_cast<uint8>(alpha));
- native_theme->Paint(skia_canvas, part, state, rect, extra);
- skia_canvas->Restore();
+ canvas->SaveLayerAlpha(static_cast<uint8>(alpha));
+ native_theme->Paint(canvas->GetSkCanvas(), part, state, rect, extra);
+ canvas->Restore();
} else {
gfx::NativeTheme::ExtraParams extra;
gfx::NativeTheme::State state = delegate_->GetThemeState(&extra);
- native_theme->Paint(skia_canvas, part, state, rect, extra);
+ native_theme->Paint(canvas->GetSkCanvas(), part, state, rect, extra);
}
}
diff --git a/views/painter.cc b/views/painter.cc
index 5a82bff..f39317d 100644
--- a/views/painter.cc
+++ b/views/painter.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2011 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.
@@ -44,7 +44,7 @@ class GradientPainter : public Painter {
// Need to unref shader, otherwise never deleted.
s->unref();
- canvas->AsCanvasSkia()->drawRectCoords(
+ canvas->GetSkCanvas()->drawRectCoords(
SkIntToScalar(0), SkIntToScalar(0), SkIntToScalar(w), SkIntToScalar(h),
paint);
}
diff --git a/views/touchui/touch_selection_controller_impl.cc b/views/touchui/touch_selection_controller_impl.cc
index 2711690..d62a0c0 100644
--- a/views/touchui/touch_selection_controller_impl.cc
+++ b/views/touchui/touch_selection_controller_impl.cc
@@ -81,7 +81,7 @@ void PaintCircle(const Circle& circle, gfx::Canvas* canvas) {
SkIntToScalar(bounds.right()), SkIntToScalar(bounds.bottom()));
SkScalar radius = SkIntToScalar(circle.radius);
path.addRoundRect(rect, radius, radius);
- canvas->AsCanvasSkia()->drawPath(path, paint);
+ canvas->GetSkCanvas()->drawPath(path, paint);
}
// The points may not match exactly, since the selection range computation may
@@ -278,8 +278,8 @@ class TouchSelectionControllerImpl::TouchContextMenuView
canvas->DrawRectInt(0, 0, width(), height(), paint);
#else
// This is the same as COLOR_TOOLBAR.
- canvas->AsCanvasSkia()->drawColor(SkColorSetRGB(210, 225, 246),
- SkXfermode::kSrc_Mode);
+ canvas->GetSkCanvas()->drawColor(SkColorSetRGB(210, 225, 246),
+ SkXfermode::kSrc_Mode);
#endif
}
diff --git a/views/view.cc b/views/view.cc
index e53d3e4..ffca496 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -1137,7 +1137,7 @@ void View::UpdateChildLayerBounds(const gfx::Point& offset) {
}
void View::OnPaintLayer(gfx::Canvas* canvas) {
- canvas->AsCanvasSkia()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
PaintCommon(canvas);
}
diff --git a/views/view_unittest.cc b/views/view_unittest.cc
index bb99bf9a..c6bfab2 100644
--- a/views/view_unittest.cc
+++ b/views/view_unittest.cc
@@ -400,7 +400,7 @@ TEST_F(ViewTest, TouchEvent) {
////////////////////////////////////////////////////////////////////////////////
void TestView::Paint(gfx::Canvas* canvas) {
- canvas->AsCanvasSkia()->getClipBounds(&last_clip_);
+ canvas->GetSkCanvas()->getClipBounds(&last_clip_);
}
void TestView::SchedulePaintInRect(const gfx::Rect& rect) {
diff --git a/views/widget/native_widget_win.cc b/views/widget/native_widget_win.cc
index 9290f4b..24c1d38 100644
--- a/views/widget/native_widget_win.cc
+++ b/views/widget/native_widget_win.cc
@@ -2309,25 +2309,25 @@ void NativeWidgetWin::RedrawLayeredWindowContents() {
return;
// We need to clip to the dirty rect ourselves.
- layered_window_contents_->save(SkCanvas::kClip_SaveFlag);
+ layered_window_contents_->sk_canvas()->save(SkCanvas::kClip_SaveFlag);
layered_window_contents_->ClipRectInt(invalid_rect_.x(),
invalid_rect_.y(),
invalid_rect_.width(),
invalid_rect_.height());
GetWidget()->GetRootView()->Paint(layered_window_contents_.get());
- layered_window_contents_->restore();
+ layered_window_contents_->sk_canvas()->restore();
RECT wr;
GetWindowRect(&wr);
SIZE size = {wr.right - wr.left, wr.bottom - wr.top};
POINT position = {wr.left, wr.top};
- HDC dib_dc = skia::BeginPlatformPaint(layered_window_contents_.get());
+ HDC dib_dc = skia::BeginPlatformPaint(layered_window_contents_->sk_canvas());
POINT zero = {0, 0};
BLENDFUNCTION blend = {AC_SRC_OVER, 0, layered_alpha_, AC_SRC_ALPHA};
UpdateLayeredWindow(hwnd(), NULL, &position, &size, dib_dc, &zero,
RGB(0xFF, 0xFF, 0xFF), &blend, ULW_ALPHA);
invalid_rect_.SetRect(0, 0, 0, 0);
- skia::EndPlatformPaint(layered_window_contents_.get());
+ skia::EndPlatformPaint(layered_window_contents_->sk_canvas());
}
void NativeWidgetWin::LockUpdates() {
diff --git a/views/widget/root_view.cc b/views/widget/root_view.cc
index 7c69e96..1d60945 100644
--- a/views/widget/root_view.cc
+++ b/views/widget/root_view.cc
@@ -418,7 +418,7 @@ void RootView::ViewHierarchyChanged(bool is_add, View* parent, View* child) {
void RootView::OnPaint(gfx::Canvas* canvas) {
#if !defined(TOUCH_UI)
- canvas->AsCanvasSkia()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
+ canvas->GetSkCanvas()->drawColor(SK_ColorBLACK, SkXfermode::kClear_Mode);
#endif
}
diff --git a/views/window/dialog_client_view.cc b/views/window/dialog_client_view.cc
index 8a43145..a3bdb63 100644
--- a/views/window/dialog_client_view.cc
+++ b/views/window/dialog_client_view.cc
@@ -449,7 +449,7 @@ void DialogClientView::PaintSizeBox(gfx::Canvas* canvas) {
size_box_bounds_.set_x(size_box_bounds_.right() - gripper_size.width());
size_box_bounds_.set_y(size_box_bounds_.bottom() - gripper_size.height());
- gfx::NativeTheme::instance()->Paint(canvas->AsCanvasSkia(),
+ gfx::NativeTheme::instance()->Paint(canvas->GetSkCanvas(),
gfx::NativeTheme::kWindowResizeGripper,
gfx::NativeTheme::kNormal,
size_box_bounds_,