primary_monitor(0),
priv(new Private)
{
+ static ErrorDialog err_dlg(0);
+
for(unsigned i=0;; ++i)
{
DISPLAY_DEVICE adapter_dev;
break;
VideoMode mode(info.dmPelsWidth, info.dmPelsHeight);
+ mode.index = modes.size();
mode.monitor = &monitor;
mode.rate = info.dmDisplayFrequency;
if(find_matching_mode(mode))
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()