]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/windows/display.cpp
Expose a lot more information through the Monitor struct
[libs/gui.git] / source / graphics / windows / display.cpp
index ae19f57c2c3bf59de14d9ba5f509ddbbf4eb8e17..6553a8c692163772ca877e09fa1f26a8d6834271 100644 (file)
@@ -39,6 +39,7 @@ Display::Display(const string &):
                                break;
 
                        VideoMode mode(info.dmPelsWidth, info.dmPelsHeight);
+                       mode.index = modes.size();
                        mode.monitor = &monitor;
                        mode.rate = info.dmDisplayFrequency;
                        if(find_matching_mode(mode))
@@ -77,6 +78,10 @@ void Display::set_mode(const VideoMode &requested_mode, bool)
        LONG ret = ChangeDisplaySettingsEx(priv->monitors[mode->monitor->index].c_str(), &info, NULL, CDS_FULLSCREEN, NULL);
        if(ret!=DISP_CHANGE_SUCCESSFUL)
                throw unsupported_video_mode(requested_mode);
+
+       for(list<Monitor>::iterator i=monitors.begin(); i!=monitors.end(); ++i)
+               if(&*i==mode->monitor)
+                       i->current_mode = mode;
 }
 
 bool Display::process_events()