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

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

Issue 10790128: Revert 147915 - Cleanup gfx::Canvas now that 10562027 has landed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 5 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"
12 #include "grit/ui_resources.h" 11 #include "grit/ui_resources.h"
13 #include "third_party/skia/include/effects/SkGradientShader.h" 12 #include "third_party/skia/include/effects/SkGradientShader.h"
14 #include "ui/base/layout.h" 13 #include "ui/base/layout.h"
15 #include "ui/base/resource/resource_bundle.h" 14 #include "ui/base/resource/resource_bundle.h"
16 #include "ui/base/ui_base_switches.h" 15 #include "ui/base/ui_base_switches.h"
17 #include "ui/gfx/canvas.h" 16 #include "ui/gfx/canvas.h"
18 #include "ui/gfx/color_utils.h" 17 #include "ui/gfx/color_utils.h"
19 #include "ui/gfx/image/image_skia.h" 18 #include "ui/gfx/image/image_skia.h"
20 #include "ui/gfx/rect.h" 19 #include "ui/gfx/rect.h"
21 #include "ui/gfx/size.h" 20 #include "ui/gfx/size.h"
(...skipping 992 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 1013
1015 void NativeThemeBase::DrawImageInt( 1014 void NativeThemeBase::DrawImageInt(
1016 SkCanvas* sk_canvas, const gfx::ImageSkia& image, 1015 SkCanvas* sk_canvas, const gfx::ImageSkia& image,
1017 int src_x, int src_y, int src_w, int src_h, 1016 int src_x, int src_y, int src_w, int src_h,
1018 int dest_x, int dest_y, int dest_w, int dest_h) const { 1017 int dest_x, int dest_y, int dest_w, int dest_h) const {
1019 // TODO(pkotwicz): Do something better and don't infer device 1018 // TODO(pkotwicz): Do something better and don't infer device
1020 // scale factor from canvas scale. 1019 // scale factor from canvas scale.
1021 SkMatrix m = sk_canvas->getTotalMatrix(); 1020 SkMatrix m = sk_canvas->getTotalMatrix();
1022 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale( 1021 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
1023 SkScalarAbs(m.getScaleX())); 1022 SkScalarAbs(m.getScaleX()));
1024 scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling( 1023 gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
1025 sk_canvas, device_scale_factor)); 1024 canvas.DrawImageInt(image, src_x, src_y, src_w, src_h,
1026 canvas->DrawImageInt(image, src_x, src_y, src_w, src_h,
1027 dest_x, dest_y, dest_w, dest_h, true); 1025 dest_x, dest_y, dest_w, dest_h, true);
1028 } 1026 }
1029 1027
1030 void NativeThemeBase::DrawTiledImage(SkCanvas* sk_canvas, 1028 void NativeThemeBase::DrawTiledImage(SkCanvas* sk_canvas,
1031 const gfx::ImageSkia& image, 1029 const gfx::ImageSkia& image,
1032 int src_x, int src_y, float tile_scale_x, float tile_scale_y, 1030 int src_x, int src_y, float tile_scale_x, float tile_scale_y,
1033 int dest_x, int dest_y, int w, int h) const { 1031 int dest_x, int dest_y, int w, int h) const {
1034 // TODO(pkotwicz): Do something better and don't infer device 1032 // TODO(pkotwicz): Do something better and don't infer device
1035 // scale factor from canvas scale. 1033 // scale factor from canvas scale.
1036 SkMatrix m = sk_canvas->getTotalMatrix(); 1034 SkMatrix m = sk_canvas->getTotalMatrix();
1037 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale( 1035 ui::ScaleFactor device_scale_factor = ui::GetScaleFactorFromScale(
1038 SkScalarAbs(m.getScaleX())); 1036 SkScalarAbs(m.getScaleX()));
1039 scoped_ptr<gfx::Canvas> canvas(gfx::Canvas::CreateCanvasWithoutScaling( 1037 gfx::Canvas canvas(sk_canvas, device_scale_factor, false);
1040 sk_canvas, device_scale_factor)); 1038 canvas.TileImageInt(image, src_x, src_y, tile_scale_x,
1041 canvas->TileImageInt(image, src_x, src_y, tile_scale_x,
1042 tile_scale_y, dest_x, dest_y, w, h); 1039 tile_scale_y, dest_x, dest_y, w, h);
1043 } 1040 }
1044 1041
1045 SkColor NativeThemeBase::SaturateAndBrighten(SkScalar* hsv, 1042 SkColor NativeThemeBase::SaturateAndBrighten(SkScalar* hsv,
1046 SkScalar saturate_amount, 1043 SkScalar saturate_amount,
1047 SkScalar brighten_amount) const { 1044 SkScalar brighten_amount) const {
1048 SkScalar color[3]; 1045 SkScalar color[3];
1049 color[0] = hsv[0]; 1046 color[0] = hsv[0];
1050 color[1] = Clamp(hsv[1] + saturate_amount, 0.0, 1.0); 1047 color[1] = Clamp(hsv[1] + saturate_amount, 0.0, 1.0);
1051 color[2] = Clamp(hsv[2] + brighten_amount, 0.0, 1.0); 1048 color[2] = Clamp(hsv[2] + brighten_amount, 0.0, 1.0);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f); 1117 SkScalar min_diff = Clamp((hsv1[1] + hsv2[1]) * 1.2f, 0.28f, 0.5f);
1121 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f); 1118 SkScalar diff = Clamp(fabs(hsv1[2] - hsv2[2]) / 2, min_diff, 0.5f);
1122 1119
1123 if (hsv1[2] + hsv2[2] > 1.0) 1120 if (hsv1[2] + hsv2[2] > 1.0)
1124 diff = -diff; 1121 diff = -diff;
1125 1122
1126 return SaturateAndBrighten(hsv2, -0.2f, diff); 1123 return SaturateAndBrighten(hsv2, -0.2f, diff);
1127 } 1124 }
1128 1125
1129 } // namespace ui 1126 } // 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