diff options
| author | Mnikolenko ProductEngine <mnikolenko@productengine.com> | 2020-07-20 17:09:04 +0300 | 
|---|---|---|
| committer | Mnikolenko ProductEngine <mnikolenko@productengine.com> | 2020-07-20 17:09:04 +0300 | 
| commit | 4d27b11a160e86b3d2f2ebb56f5b308ed6a7704a (patch) | |
| tree | 31e1df0076187ee362827a1d09802fdf3edd619a /indra/llwindow | |
| parent | 44906ac0d44d3c3d1dc6dbf0d5e90926529e108d (diff) | |
SL-13507 Viewer should log resolution of all associated displays
Diffstat (limited to 'indra/llwindow')
| -rw-r--r-- | indra/llwindow/llwindow.cpp | 2 | ||||
| -rw-r--r-- | indra/llwindow/llwindowmacosx.cpp | 30 | ||||
| -rw-r--r-- | indra/llwindow/llwindowmacosx.h | 2 | 
3 files changed, 34 insertions, 0 deletions
| diff --git a/indra/llwindow/llwindow.cpp b/indra/llwindow/llwindow.cpp index 637ed10008..5112e4d3db 100644 --- a/indra/llwindow/llwindow.cpp +++ b/indra/llwindow/llwindow.cpp @@ -268,6 +268,8 @@ std::vector<std::string> LLWindow::getDisplaysResolutionList()  {  #if LL_WINDOWS  	return LLWindowWin32::getDisplaysResolutionList(); +#elif LL_DARWIN +	return LLWindowMacOSX::getDisplaysResolutionList();  #else  	return std::vector<std::string>();  #endif diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 2604a23c85..0d0607a0bb 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -41,6 +41,7 @@  #include <OpenGL/OpenGL.h>  #include <Carbon/Carbon.h>  #include <CoreServices/CoreServices.h> +#include <CoreGraphics/CGDisplayConfiguration.h>  extern BOOL gDebugWindowProc;  BOOL gHiDPISupport = TRUE; @@ -1911,6 +1912,35 @@ void LLWindowMacOSX::interruptLanguageTextInput()  	commitCurrentPreedit(mGLView);  } +std::vector<std::string> LLWindowMacOSX::getDisplaysResolutionList() +{ +	std::vector<std::string> resolution_list; +	 +	CGDirectDisplayID display_ids[10]; +	uint32_t found_displays = 0; +	CGError err = CGGetActiveDisplayList(10, display_ids, &found_displays); +	 +	if (kCGErrorSuccess != err) +	{ +		LL_WARNS() << "Couldn't get a list of active displays" << LL_ENDL; +		return std::vector<std::string>(); +	} +	 +	for (uint32_t i = 0; i < found_displays; i++) +	{ +		S32 monitor_width = CGDisplayPixelsWide(display_ids[i]); +		S32 monitor_height = CGDisplayPixelsHigh(display_ids[i]); +		 +		std::ostringstream sstream; +		sstream << monitor_width << "x" << monitor_height;; +		std::string res = sstream.str(); +		 +		resolution_list.push_back(res); +	} +	 +	return resolution_list; +} +  //static  std::vector<std::string> LLWindowMacOSX::getDynamicFallbackFontList()  { diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index 24651027e8..bf45238c8d 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -114,6 +114,8 @@ public:  	/*virtual*/ void spawnWebBrowser(const std::string& escaped_url, bool async);  	/*virtual*/ F32 getSystemUISize(); +	static std::vector<std::string> getDisplaysResolutionList(); +  	static std::vector<std::string> getDynamicFallbackFontList();  	// Provide native key event data | 
