From e563931e9ff7e01dbd25ce380296fcff69c751fb Mon Sep 17 00:00:00 2001 From: Palana Date: Tue, 17 Dec 2013 18:44:02 +0100 Subject: [PATCH] filter duplicate resolutions --- obs/settings-basic-video.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/obs/settings-basic-video.cpp b/obs/settings-basic-video.cpp index d59af46e9..0891787e6 100644 --- a/obs/settings-basic-video.cpp +++ b/obs/settings-basic-video.cpp @@ -24,6 +24,7 @@ #include "platform.hpp" #include +#include using namespace std; class BasicVideoData : public BasicSettingsData { @@ -127,6 +128,14 @@ void BasicVideoData::LoadOther() window->rendererList->SetSelection(sel); } +namespace +{ + uint64_t append_uint32_t(uint64_t first, uint64_t second) + { + return (first << 32) | second; + } +} + void BasicVideoData::LoadResolutionData() { window->baseResList->Clear(); @@ -136,8 +145,12 @@ void BasicVideoData::LoadResolutionData() vector monitors; GetMonitors(monitors); - for (size_t i = 0; i < monitors.size(); i++) - AddRes(monitors[i].cx, monitors[i].cy); + unordered_set resolutions; + for (size_t i = 0; i < monitors.size(); i++) { + uint64_t res = append_uint32_t(monitors[i].cx, monitors[i].cy); + if(resolutions.emplace(res).second) + AddRes(monitors[i].cx, monitors[i].cy); + } stringstream res; res << cx << "x" << cy;