Simplify code for checking best refresh rate on linux, which I added previously.

This commit is contained in:
Deve 2014-06-25 22:18:36 +02:00
parent 9bc2203adf
commit a56d6405dc

View File

@ -264,7 +264,7 @@ bool CIrrDeviceLinux::switchToFullscreen(bool reset)
// enumerate video modes // enumerate video modes
s32 modeCount; s32 modeCount;
XF86VidModeModeInfo** modes; XF86VidModeModeInfo** modes;
float refresh_rate; float refresh_rate, refresh_rate_old;
XF86VidModeGetAllModeLines(display, screennr, &modeCount, &modes); XF86VidModeGetAllModeLines(display, screennr, &modeCount, &modes);
@ -273,22 +273,17 @@ bool CIrrDeviceLinux::switchToFullscreen(bool reset)
{ {
if (bestMode==-1 && modes[i]->hdisplay >= Width && modes[i]->vdisplay >= Height) if (bestMode==-1 && modes[i]->hdisplay >= Width && modes[i]->vdisplay >= Height)
{ {
float pixels_per_second = modes[i]->dotclock * 1000.0;
float pixels_per_frame = modes[i]->htotal * modes[i]->vtotal;
refresh_rate = pixels_per_second / pixels_per_frame;
bestMode = i; bestMode = i;
} }
else if (bestMode!=-1 && else if (bestMode!=-1 &&
modes[i]->hdisplay == modes[bestMode]->hdisplay && modes[i]->hdisplay == modes[bestMode]->hdisplay &&
modes[i]->vdisplay == modes[bestMode]->vdisplay) modes[i]->vdisplay == modes[bestMode]->vdisplay)
{ {
float pixels_per_second = modes[i]->dotclock * 1000.0; refresh_rate_old = (modes[bestMode]->dotclock * 1000.0) / (modes[bestMode]->htotal * modes[bestMode]->vtotal);
float pixels_per_frame = modes[i]->htotal * modes[i]->vtotal; refresh_rate = (modes[i]->dotclock * 1000.0) / (modes[i]->htotal * modes[i]->vtotal);
float refresh_rate_tmp = pixels_per_second / pixels_per_frame;
if (refresh_rate_tmp > refresh_rate) if (refresh_rate > refresh_rate_old)
{ {
refresh_rate = refresh_rate_tmp;
bestMode = i; bestMode = i;
} }
} }
@ -298,9 +293,6 @@ bool CIrrDeviceLinux::switchToFullscreen(bool reset)
modes[i]->hdisplay <= modes[bestMode]->hdisplay && modes[i]->hdisplay <= modes[bestMode]->hdisplay &&
modes[i]->vdisplay <= modes[bestMode]->vdisplay) modes[i]->vdisplay <= modes[bestMode]->vdisplay)
{ {
float pixels_per_second = modes[i]->dotclock * 1000.0;
float pixels_per_frame = modes[i]->htotal * modes[i]->vtotal;
refresh_rate = pixels_per_second / pixels_per_frame;
bestMode = i; bestMode = i;
} }
} }