Fixed: #993 Floating Point Exception in NL3D::CDriverGL::getModes on Linux
This commit is contained in:
parent
a4c6196cbf
commit
e5a13c5ab0
1 changed files with 5 additions and 4 deletions
|
@ -1200,8 +1200,9 @@ bool CDriverGL::getModes(std::vector<GfxMode> &modes)
|
|||
GfxMode mode;
|
||||
mode.Width = (uint16)ms[j]->hdisplay;
|
||||
mode.Height = (uint16)ms[j]->vdisplay;
|
||||
mode.Frequency = 1000 * ms[j]->dotclock / (ms[j]->htotal * ms[j]->vtotal);
|
||||
nldebug("3D: Mode %d: %dx%d, %d Hz", j, ms[j]->hdisplay,ms[j]->vdisplay, 1000 * ms[j]->dotclock / (ms[j]->htotal * ms[j]->vtotal));
|
||||
const uint16 pixelsCount = ms[j]->htotal * ms[j]->vtotal;
|
||||
mode.Frequency = pixelCount ? 1000 * ms[j]->dotclock / pixelCount:0;
|
||||
nldebug("3D: Mode %d: %dx%d, %d Hz", j, mode.Width, mode.Height, mode.Frequency);
|
||||
modes.push_back (mode);
|
||||
}
|
||||
XFree(ms);
|
||||
|
@ -1236,7 +1237,7 @@ bool CDriverGL::getCurrentScreenMode(GfxMode &mode)
|
|||
mode.Width = (uint16)devmode.dmPelsWidth;
|
||||
mode.Height = (uint16)devmode.dmPelsHeight;
|
||||
mode.AntiAlias = _AntiAliasing;
|
||||
|
||||
|
||||
#elif defined(NL_OS_MAC) && defined(NL_MAC_NATIVE)
|
||||
|
||||
NL3D::MAC::getCurrentScreenMode(mode);
|
||||
|
@ -1245,7 +1246,7 @@ bool CDriverGL::getCurrentScreenMode(GfxMode &mode)
|
|||
/*
|
||||
TODO this is just a hack to get the ryzom client running on mac os x x11.
|
||||
the implementation below relies on the vidmode extension which is not
|
||||
availeble on mac os x's x11. for that reason the color depth value is
|
||||
availeble on mac os x's x11. for that reason the color depth value is
|
||||
hard coded here.
|
||||
FIXME replace this hack by native cocoa color depth retrieval
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue