]> git.tdb.fi Git - libs/gui.git/blobdiff - source/graphics/windows/display.cpp
Fill in more fields of DEVMODE to avoid a crash
[libs/gui.git] / source / graphics / windows / display.cpp
index 7b616662ae9e06585c874f4e36c24af027d3f808..428abcc248f1f0fa2a613a95588078ace653fa3d 100644 (file)
@@ -44,7 +44,7 @@ Display::Display(const string &):
                        mode.index = modes.size();
                        mode.monitor = &monitor;
                        mode.rate = info.dmDisplayFrequency;
-                       if(find_matching_mode(mode))
+                       if(find_mode(mode))
                                continue;
 
                        modes.push_back(mode);
@@ -62,12 +62,16 @@ Display::~Display()
 
 void Display::set_mode(const VideoMode &requested_mode, bool)
 {
-       const VideoMode *mode = find_matching_mode(requested_mode);
+       const VideoMode *mode = find_mode(requested_mode);
        if(!mode)
                throw unsupported_video_mode(requested_mode);
 
        DEVMODE info;
+       info.dmDeviceName[0] = 0;
+       info.dmSpecVersion = DM_SPECVERSION;
+       info.dmDriverVersion = 0;
        info.dmSize = sizeof(DEVMODE);
+       info.dmDriverExtra = 0;
        info.dmFields = DM_PELSWIDTH|DM_PELSHEIGHT;
        info.dmPelsWidth = mode->width;
        info.dmPelsHeight = mode->height;