SL-13507 Viewer should log resolution of all associated displays
parent
2c93c14c9d
commit
44906ac0d4
|
|
@ -263,6 +263,16 @@ std::vector<std::string> LLWindow::getDynamicFallbackFontList()
|
|||
#endif
|
||||
}
|
||||
|
||||
// static
|
||||
std::vector<std::string> LLWindow::getDisplaysResolutionList()
|
||||
{
|
||||
#if LL_WINDOWS
|
||||
return LLWindowWin32::getDisplaysResolutionList();
|
||||
#else
|
||||
return std::vector<std::string>();
|
||||
#endif
|
||||
}
|
||||
|
||||
#define UTF16_IS_HIGH_SURROGATE(U) ((U16)((U) - 0xD800) < 0x0400)
|
||||
#define UTF16_IS_LOW_SURROGATE(U) ((U16)((U) - 0xDC00) < 0x0400)
|
||||
#define UTF16_SURROGATE_PAIR_TO_UTF32(H,L) (((H) << 10) + (L) - (0xD800 << 10) - 0xDC00 + 0x00010000)
|
||||
|
|
|
|||
|
|
@ -168,6 +168,9 @@ public:
|
|||
|
||||
// Get system UI size based on DPI (for 96 DPI UI size should be 1.0)
|
||||
virtual F32 getSystemUISize() { return 1.0; }
|
||||
|
||||
static std::vector<std::string> getDisplaysResolutionList();
|
||||
|
||||
protected:
|
||||
LLWindow(LLWindowCallbacks* callbacks, BOOL fullscreen, U32 flags);
|
||||
virtual ~LLWindow();
|
||||
|
|
|
|||
|
|
@ -400,6 +400,39 @@ LLWinImm::~LLWinImm()
|
|||
}
|
||||
|
||||
|
||||
class LLMonitorInfo
|
||||
{
|
||||
public:
|
||||
|
||||
std::vector<std::string> getResolutionsList() { return mResList; }
|
||||
|
||||
LLMonitorInfo()
|
||||
{
|
||||
EnumDisplayMonitors(0, 0, MonitorEnum, (LPARAM)this);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
static BOOL CALLBACK MonitorEnum(HMONITOR hMon, HDC hdc, LPRECT lprcMonitor, LPARAM pData)
|
||||
{
|
||||
int monitor_width = lprcMonitor->right - lprcMonitor->left;
|
||||
int monitor_height = lprcMonitor->bottom - lprcMonitor->top;
|
||||
|
||||
std::ostringstream sstream;
|
||||
sstream << monitor_width << "x" << monitor_height;;
|
||||
std::string res = sstream.str();
|
||||
|
||||
LLMonitorInfo* pThis = reinterpret_cast<LLMonitorInfo*>(pData);
|
||||
pThis->mResList.push_back(res);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
std::vector<std::string> mResList;
|
||||
};
|
||||
|
||||
static LLMonitorInfo sMonitorInfo;
|
||||
|
||||
LLWindowWin32::LLWindowWin32(LLWindowCallbacks* callbacks,
|
||||
const std::string& title, const std::string& name, S32 x, S32 y, S32 width,
|
||||
S32 height, U32 flags,
|
||||
|
|
@ -4218,6 +4251,12 @@ F32 LLWindowWin32::getSystemUISize()
|
|||
return scale_value;
|
||||
}
|
||||
|
||||
//static
|
||||
std::vector<std::string> LLWindowWin32::getDisplaysResolutionList()
|
||||
{
|
||||
return sMonitorInfo.getResolutionsList();
|
||||
}
|
||||
|
||||
//static
|
||||
std::vector<std::string> LLWindowWin32::getDynamicFallbackFontList()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -114,6 +114,7 @@ public:
|
|||
|
||||
LLWindowCallbacks::DragNDropResult completeDragNDropRequest( const LLCoordGL gl_coord, const MASK mask, LLWindowCallbacks::DragNDropAction action, const std::string url );
|
||||
|
||||
static std::vector<std::string> getDisplaysResolutionList();
|
||||
static std::vector<std::string> getDynamicFallbackFontList();
|
||||
static void setDPIAwareness();
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -3490,6 +3490,12 @@ void LLAppViewer::writeSystemInfo()
|
|||
gDebugInfo["FirstRunThisInstall"] = gSavedSettings.getBOOL("FirstRunThisInstall");
|
||||
gDebugInfo["StartupState"] = LLStartUp::getStartupStateString();
|
||||
|
||||
std::vector<std::string> resolutions = gViewerWindow->getWindow()->getDisplaysResolutionList();
|
||||
for (auto res_iter : resolutions)
|
||||
{
|
||||
gDebugInfo["DisplayInfo"].append(res_iter);
|
||||
}
|
||||
|
||||
writeDebugInfo(); // Save out debug_info.log early, in case of crash.
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue