NVIDIA Surround 설정/해제를 간편하게 하는 방법?
전에 제가 NVIDIA GTX 660 그래픽 카드와 모니터 3대로 Surround 설정한 것을 소개했는데요.
GTX660으로 모니터 3대를 Surround로 연결(5760*1080 해상도)
; https://www.sysnet.pe.kr/0/0/484
문제는, 5760 * 1080 해상도의 단일 모니터처럼 작업하는 것이 개발자인 저로써는 너무나 불편하다는 점입니다. 제 경우에 최대한 많은 코드를 보기 위해 '세로' 영역을 확보하는 차원에서 '작업 표시줄'을 상/하단에 배치하지 않고 왼쪽에 '세로'로 띄워놓는데요. 중앙 모니터에서 주로 작업하다가 '작업 표시줄'을 이용하려면 고개를 돌리거나 마우스 포인터를 멀리까지 이동해야 하는 것이 결정적인 불편함의 하나였습니다.
그렇다고 게임 등의 프로그램을 이용할 때만 Surround 기능을 켜고 끄는 것도 녹록치 않습니다. 왜냐하면 단계가 너무 복잡하기 때문입니다.
Switching between Surround and "Standard" in a non painful way?
; https://forums.geforce.com/default/topic/523424/switching-between-surround-and-34-standard-34-in-a-non-painful-way-/
But switching all the time is an extreme pain. Let's count the steps:
1. Double-click on NVIDIA Control Panel icon.
2. Click on "Surround, PhysX".
3. Check the box.
4. Click Apply.
5. Click Apply again.
6. Rearrange the monitors because it just never ever remembers the last setup.
7. Click on "use standard resolutions".
8. Click Done.
Now that was the easy part. Now let's revert this.
9. Double-click on NVIDIA Control Panel icon.
10. Uncheck the box.
11. Click Apply.
12. Close NVIDIA Control Panel.
13. Right click on desktop.
14. Select resolution.
15. Enable second monitor (3 clicks).
16. Enable third monitor (3 clicks).
17. Click apply.
18. Click keep changes.
19. Click ok.
위의 포럼 질문에 정리된 것처럼, NVidia가 (이유는 알 수 없지만) 간단하게 체크 박스를 ON/OFF하는 식으로 만들지 않았습니다. Surround를 끄게 되면 모니터 하나만 빼고 2개의 모니터가 꺼져버려서 다시 활성화 시켜야 하고, Surround를 다시 켤 때도 1x3 모드를 선택하고 참여할 모니터를 매번 지정해야 하는 불편함이 있는 것입니다.
이 절차를 혹시 "프로그램"으로 만들어 두는 것이 가능하지 않을까 싶었습니다. 애석하게도 "NVIDIA Control Panel"의 기능을 단순화시켜주는 명령행 콘솔 프로그램은 NVIDIA에 의해 제공되지 않고 있습니다.
그나마 위안이 된다면, 개발자를 위한 SDK를 제공한다는 것인데요.
NVIDIA Driver Settings
Programming Guide
; http://developer.download.nvidia.com/NVAPI/PG-5116-001_v01_public.pdf
UTILITIES AND APIS - NVCPL.DLL API - Manual
; http://download.nvidia.com/developer/SDK/Individual_Samples/DEMOS/common/src/NvCpl/docs/NVControlPanel_API.pdf
; http://developer.download.nvidia.com/SDK/9.5/Samples/DEMOS/common/src/NvCpl/docs/NVControlPanel_API.pdf
재미(?)있게도 NVIDIA 측은 API 도움말에서 Surround 관련한 어떠한 함수 사용법도 제공하지 않고 있습니다. (심지어, API 이름조차도 Surround라는 단어를 쓰지 않고 Mosaic이라고 표현하고 있습니다.)
NvAPI_Mosaic_EnableCurrentTopo라는 API로 Surround를 ON/OFF 시킨다는 정도만 찾아냈을 뿐 모니터 지정하는 방법에 관한 것을 찾을 수는 없었습니다. (C/C++ 용 헤더 파일에 정의된 함수 선언만 가지고 사용법을 알아내기에는 시간이 아깝습니다.)
다행히 유료 유틸리티 프로그램 중에 Surround 상태에서도 각각의 모니터에 '작업 표시줄'을 띄워주는 것이 있었습니다. ^^
DisplayFusion - Multiple Monitors Made Easy!
; https://www.displayfusion.com/
$25 정도이니, 속편하게 이걸로 결정! ^^
(DisplayFusion 프로그램은 Surround를 상태 유지가 되면서 On/Off하는 기능을 제공합니다. 그런 걸로 봐서 NVIDIA의 API를 이용한 것 같은데...? 흠????)