Browse Source

remove fps requirement for drm connector selection (#2468)

pull/2471/head
Crydsch 3 years ago
committed by GitHub
parent
commit
b2c2b5ee21
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 14 deletions
  1. +13
    -14
      src/rcore.c

+ 13
- 14
src/rcore.c View File

@ -6591,7 +6591,7 @@ static int FindNearestConnectorMode(const drmModeConnector *connector, uint widt
TRACELOG(LOG_TRACE, "DISPLAY: DRM mode: %d %ux%u@%u %s", i, mode->hdisplay, mode->vdisplay, mode->vrefresh, TRACELOG(LOG_TRACE, "DISPLAY: DRM mode: %d %ux%u@%u %s", i, mode->hdisplay, mode->vdisplay, mode->vrefresh,
(mode->flags & DRM_MODE_FLAG_INTERLACE) ? "interlaced" : "progressive"); (mode->flags & DRM_MODE_FLAG_INTERLACE) ? "interlaced" : "progressive");
if ((mode->hdisplay < width) || (mode->vdisplay < height) || (mode->vrefresh < fps))
if ((mode->hdisplay < width) || (mode->vdisplay < height))
{ {
TRACELOG(LOG_TRACE, "DISPLAY: DRM mode is too small"); TRACELOG(LOG_TRACE, "DISPLAY: DRM mode is too small");
continue; continue;
@ -6603,23 +6603,22 @@ static int FindNearestConnectorMode(const drmModeConnector *connector, uint widt
continue; continue;
} }
if (p">(mode->hdisplay >= width) && (mode->vdisplay >= height) && (mode->vrefresh >= fps))
if (n">nearestIndex < 0)
{ {
k">const int widthDiff = mode->hdisplay - width;
const int heightDiff = mode->vdisplay - height;
const int fpsDiff = mode->vrefresh - fps;
n">nearestIndex = i;
continue;
}
if (nearestIndex < 0)
{
nearestIndex = i;
continue;
}
const int widthDiff = abs(mode->hdisplay - width);
const int heightDiff = abs(mode->vdisplay - height);
const int fpsDiff = abs(mode->vrefresh - fps);
const int nearestWidthDiff = CORE.Window.connector->modes[nearestIndex].hdisplay - width;
const int nearestHeightDiff = CORE.Window.connector->modes[nearestIndex].vdisplay - height;
const int nearestFpsDiff = CORE.Window.connector->modes[nearestIndex].vrefresh - fps;
const int nearestWidthDiff = abs(CORE.Window.connector->modes[nearestIndex].hdisplay - width);
const int nearestHeightDiff = abs(CORE.Window.connector->modes[nearestIndex].vdisplay - height);
const int nearestFpsDiff = abs(CORE.Window.connector->modes[nearestIndex].vrefresh - fps);
if ((widthDiff < nearestWidthDiff) || (heightDiff < nearestHeightDiff) || (fpsDiff < nearestFpsDiff)) nearestIndex = i;
if ((widthDiff < nearestWidthDiff) || (heightDiff < nearestHeightDiff) || (fpsDiff < nearestFpsDiff)) {
nearestIndex = i;
} }
} }

Loading…
Cancel
Save