| 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 |