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 72330ffaf897cde720132696a0839edc77c2503b..7425755e445022fbdf22b3b365c9b3b703a53e37 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")); |
+ } |
} |
gfx::Image& ResourceBundle::GetNativeImageNamed(int resource_id, ImageRTL rtl) { |