Index: ui/base/resource/resource_bundle_win.cc |
diff --git a/ui/base/resource/resource_bundle_win.cc b/ui/base/resource/resource_bundle_win.cc |
index b295b502742d43f7bf7563bafe2f1057146137db..79355d67eb6f506ec200aaf93ee6da593e1f528b 100644 |
--- a/ui/base/resource/resource_bundle_win.cc |
+++ b/ui/base/resource/resource_bundle_win.cc |
@@ -5,8 +5,10 @@ |
#include "ui/base/resource/resource_bundle_win.h" |
#include "base/logging.h" |
+#include "base/path_service.h" |
#include "ui/base/resource/resource_bundle.h" |
#include "ui/base/resource/resource_data_dll_win.h" |
+#include "ui/base/win/dpi.h" |
namespace ui { |
@@ -20,11 +22,33 @@ HINSTANCE GetCurrentResourceDLL() { |
return GetModuleHandle(NULL); |
} |
+FilePath GetResourcesPakFilePath(const std::string& pak_name) { |
+ FilePath path; |
+ if (PathService::Get(base::DIR_MODULE, &path)) |
+ return path.AppendASCII(pak_name.c_str()); |
+ return FilePath(); |
+} |
+ |
} // end anonymous namespace |
void ResourceBundle::LoadCommonResources() { |
// As a convenience, add the current resource module as a data packs. |
data_packs_.push_back(new ResourceDataDLL(GetCurrentResourceDLL())); |
+ |
+ bool use_hidpi_pak = false; |
+#if defined(ENABLE_HIDPI) |
+ // If we're running in HiDPI mode then use the 2x resource for DPI greater |
+ // than 1.5. Otherwise use the 1x resource. |
+ use_hidpi_pak = ui::GetDPIScale() > 1.5; |
+#endif |
+ |
+ if (!use_hidpi_pak) { |
+ AddDataPack(GetResourcesPakFilePath("theme_resources_standard.pak")); |
+ AddDataPack(GetResourcesPakFilePath("ui_resources_standard.pak")); |
+ } else { |
+ AddDataPack(GetResourcesPakFilePath("theme_resources_2x.pak")); |
+ AddDataPack(GetResourcesPakFilePath("ui_resources_2x.pak")); |
+ } |
} |
void ResourceBundle::LoadTestResources(const FilePath& path) { |