diff options
| author | Mnikolenko Productengine <mnikolenko@productengine.com> | 2020-07-17 20:28:02 +0300 | 
|---|---|---|
| committer | Mnikolenko Productengine <mnikolenko@productengine.com> | 2020-07-17 20:28:02 +0300 | 
| commit | 44906ac0d44d3c3d1dc6dbf0d5e90926529e108d (patch) | |
| tree | 49a40bcb81815f22c21f2e90858ffefd05401e25 /indra/llwindow | |
| parent | 2c93c14c9d6cf6940169d33b806dede90e60033f (diff) | |
SL-13507 Viewer should log resolution of all associated displays
Diffstat (limited to 'indra/llwindow')
| -rw-r--r-- | indra/llwindow/llwindow.cpp | 10 | ||||
| -rw-r--r-- | indra/llwindow/llwindow.h | 3 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.cpp | 39 | ||||
| -rw-r--r-- | indra/llwindow/llwindowwin32.h | 1 | 
4 files changed, 53 insertions, 0 deletions
| diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 1b24250618..637ed10008 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -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) diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index a05ba8cbba..bb4e534b60 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -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(); diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index 0b3936f8a5..3cbba59ed7 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -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,  @@ -4219,6 +4252,12 @@ F32 LLWindowWin32::getSystemUISize()  }  //static +std::vector<std::string> LLWindowWin32::getDisplaysResolutionList() +{  +	return sMonitorInfo.getResolutionsList(); +} + +//static  std::vector<std::string> LLWindowWin32::getDynamicFallbackFontList()  {  	// Fonts previously in getFontListSans() have moved to fonts.xml. diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index 9cd16eb993..b1e8350a78 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -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: | 
