diff options
author | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-05 19:05:07 +0000 |
---|---|---|
committer | piman@chromium.org <piman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-10-05 19:05:07 +0000 |
commit | be172ba8194e48970d90e9d873160b259df69b96 (patch) | |
tree | 677a1fedc8a836a42de1dba22d8c0663173a0f96 /views | |
parent | 2c572bd1d4eec134ae40e00adbfa2c9d3d1ff1e7 (diff) | |
download | chromium_src-be172ba8194e48970d90e9d873160b259df69b96.zip chromium_src-be172ba8194e48970d90e9d873160b259df69b96.tar.gz chromium_src-be172ba8194e48970d90e9d873160b259df69b96.tar.bz2 |
Allow CanvasSkia to bind to an existing SkCanvas.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/8122013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104146 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views')
28 files changed, 89 insertions, 86 deletions
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_, |