Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(281)

Side by Side Diff: ui/base/native_theme/native_theme_base.cc

Issue 10701063: Cleanup gfx::Canvas now that 10562027 has landed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/base/native_theme/native_theme_android.cc ('k') | ui/compositor/layer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/base/native_theme/native_theme_base.h" 5 #include "ui/base/native_theme/native_theme_base.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
11 #include "base/memory/scoped_ptr.h"
11 #include "grit/ui_resources.h" 12 #include "grit/ui_resources.h"
12 #include "third_party/skia/include/effects/SkGradientShader.h" 13 #include "third_party/skia/include/effects/SkGradientShader.h"
13 #include "ui/base/layout.h" 14 #include "ui/base/layout.h"
14 #include "ui/base/resource/resource_bundle.h" 15 #include "ui/base/resource/resource_bundle.h"
15 #include "ui/base/ui_base_switches.h" 16 #include "ui/base/ui_base_switches.h"
16 #include "ui/gfx/canvas.h" 17 #include "ui/gfx/canvas.h"
17 #include "ui/gfx/color_utils.h" 18 #include "ui/gfx/color_utils.h"
18 #include "ui/gfx/image/image_skia.h" 19 #include "ui/gfx/image/image_skia.h"
19 #include "ui/gfx/rect.h" 20 #include "ui/gfx/rect.h"
20 #include "ui/gfx/size.h" 21 #include "ui/gfx/size.h"
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 1014
1014 void NativeThemeBase::DrawImageInt( 1015 void NativeThemeBase::DrawImageInt(
1015 SkCanvas* sk_canvas, const gfx::ImageSkia& image, 1016 SkCanvas* sk_canvas, const gfx::ImageSkia& image,
1016 int src_x, int src_y, int src_w, int src_h, 1017 int src_x, int src_y, int src_w, int src_h,
1017 int dest_x, int dest_y, int dest_w, int dest_h) const { 1018 int dest_x, int dest_y, int dest_w, int dest_h) const {
1018 // TODO(pkotwicz): Do something better and don't infer device 1019 // TODO(pkotwicz): Do something better and don't infer device
1019 // scale factor from canvas scale. 1020 // scale factor from canvas scale.
1020 SkMatrix m = sk_canvas->getTotalMatrix(); 1021 SkMatrix m = sk_canvas->getTotalMatrix();
1021 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale( 1022 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
1022 SkScalarAbs(m.getScaleX())); 1023 SkScalarAbs(m.getScaleX()));
1023 gfx::Canvas canvas(sk_canvas, device_scale_factor, false); 1024 scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
1024 canvas.DrawImageInt(image, src_x, src_y, src_w, src_h, 1025 sk_canvas, device_scale_factor));
1026 canvas->DrawImageInt(image, src_x, src_y, src_w, src_h,
1025 dest_x, dest_y, dest_w, dest_h, true); 1027 dest_x, dest_y, dest_w, dest_h, true);
1026 } 1028 }
1027 1029
1028 void NativeThemeBase::DrawTiledImage(SkCanvas* sk_canvas, 1030 void NativeThemeBase::DrawTiledImage(SkCanvas* sk_canvas,
1029 const gfx::ImageSkia& image, 1031 const gfx::ImageSkia& image,
1030 int src_x, int src_y, float tile_scale_x, float tile_scale_y, 1032 int src_x, int src_y, float tile_scale_x, float tile_scale_y,
1031 int dest_x, int dest_y, int w, int h) const { 1033 int dest_x, int dest_y, int w, int h) const {
1032 // TODO(pkotwicz): Do something better and don't infer device 1034 // TODO(pkotwicz): Do something better and don't infer device
1033 // scale factor from canvas scale. 1035 // scale factor from canvas scale.
1034 SkMatrix m = sk_canvas->getTotalMatrix(); 1036 SkMatrix m = sk_canvas->getTotalMatrix();
1035 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale( 1037 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
1036 SkScalarAbs(m.getScaleX())); 1038 SkScalarAbs(m.getScaleX()));
1037 gfx::Canvas canvas(sk_canvas, device_scale_factor, false); 1039 scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling(
1038 canvas.TileImageInt(image, src_x, src_y, tile_scale_x, 1040 sk_canvas, device_scale_factor));
1041 canvas->TileImageInt(image, src_x, src_y, tile_scale_x,
1039 tile_scale_y, dest_x, dest_y, w, h); 1042 tile_scale_y, dest_x, dest_y, w, h);
1040 } 1043 }
1041 1044
1042 SkColor NativeThemeBase::SaturateAndBrighten(SkScalar* hsv, 1045 SkColor NativeThemeBase::SaturateAndBrighten(SkScalar* hsv,
1043 SkScalar saturate_amount, 1046 SkScalar saturate_amount,
1044 SkScalar brighten_amount) const { 1047 SkScalar brighten_amount) const {
1045 SkScalar color[3]; 1048 SkScalar color[3];
1046 color[0] = hsv[0]; 1049 color[0] = hsv[0];
1047 color[1] = Clamp(hsv[1] + saturate_amount, 0.0, 1.0); 1050 color[1] = Clamp(hsv[1] + saturate_amount, 0.0, 1.0);
1048 color[2] = Clamp(hsv[2] + brighten_amount, 0.0, 1.0); 1051 color[2] = Clamp(hsv[2] + brighten_amount, 0.0, 1.0);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1117 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f); 1120 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
1118 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f); 1121 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
1119 1122
1120 if (hsv1[2] + hsv2[2] > 1.0) 1123 if (hsv1[2] + hsv2[2] > 1.0)
1121 diff = -diff; 1124 diff = -diff;
1122 1125
1123 return SaturateAndBrighten(hsv2, -0.2f, diff); 1126 return SaturateAndBrighten(hsv2, -0.2f, diff);
1124 } 1127 }
1125 1128
1126 } // namespace ui 1129 } // namespace ui
OLDNEW
« no previous file with comments | « ui/base/native_theme/native_theme_android.cc ('k') | ui/compositor/layer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698