OLD | NEW |
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/resource/resource_bundle_win.h" | 5 #include "ui/base/resource/resource_bundle_win.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
10 #include "skia/ext/image_operations.h" | 10 #include "skia/ext/image_operations.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 | 58 |
59 gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id, ImageRTL rtl) { | 59 gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id, ImageRTL rtl) { |
60 // Flipped image is not used on Windows. | 60 // Flipped image is not used on Windows. |
61 DCHECK_EQ(rtl, RTL_DISABLED); | 61 DCHECK_EQ(rtl, RTL_DISABLED); |
62 | 62 |
63 // Windows only uses SkBitmap for gfx::Image, so this is the same as | 63 // Windows only uses SkBitmap for gfx::Image, so this is the same as |
64 // GetImageNamed. | 64 // GetImageNamed. |
65 return GetImageNamed(resource_id); | 65 return GetImageNamed(resource_id); |
66 } | 66 } |
67 | 67 |
68 // static | |
69 SkBitmap ResourceBundle::PlatformScaleImage(const SkBitmap& image, | |
70 float loaded_image_scale, | |
71 float desired_bitmap_scale) { | |
72 if (!gfx::IsHighDPIEnabled()) | |
73 return SkBitmap(); | |
74 | |
75 // On Windows we can have multiple device scales like 1/1.25/1.5/2, etc. | |
76 // We only have 1x and 2x data packs. We need to scale the bitmaps | |
77 // accordingly. | |
78 if (loaded_image_scale == desired_bitmap_scale) | |
79 return image; | |
80 | |
81 SkBitmap scaled_image; | |
82 gfx::Size unscaled_size(image.width(), image.height()); | |
83 gfx::Size scaled_size = ToCeiledSize( | |
84 gfx::ScaleSize(unscaled_size, | |
85 desired_bitmap_scale / loaded_image_scale)); | |
86 scaled_image = skia::ImageOperations::Resize( | |
87 image, | |
88 skia::ImageOperations::RESIZE_LANCZOS3, | |
89 scaled_size.width(), | |
90 scaled_size.height()); | |
91 DCHECK_EQ(scaled_image.width(), scaled_size.width()); | |
92 DCHECK_EQ(scaled_image.height(), scaled_size.height()); | |
93 return scaled_image; | |
94 } | |
95 | |
96 void SetResourcesDataDLL(HINSTANCE handle) { | 68 void SetResourcesDataDLL(HINSTANCE handle) { |
97 resources_data_dll = handle; | 69 resources_data_dll = handle; |
98 } | 70 } |
99 | 71 |
100 HICON LoadThemeIconFromResourcesDataDLL(int icon_id) { | 72 HICON LoadThemeIconFromResourcesDataDLL(int icon_id) { |
101 return ::LoadIcon(GetCurrentResourceDLL(), MAKEINTRESOURCE(icon_id)); | 73 return ::LoadIcon(GetCurrentResourceDLL(), MAKEINTRESOURCE(icon_id)); |
102 } | 74 } |
103 | 75 |
104 } // namespace ui; | 76 } // namespace ui; |
OLD | NEW |