Skip to content

Commit d3496fd

Browse files
committed
drm: fix drm_set_refresh when rotated
1 parent dd45be8 commit d3496fd

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

src/drm.cpp

+11-3
Original file line numberDiff line numberDiff line change
@@ -1286,17 +1286,25 @@ bool drm_set_mode( struct drm_t *drm, const drmModeModeInfo *mode )
12861286

12871287
bool drm_set_refresh( struct drm_t *drm, int refresh )
12881288
{
1289+
int width = g_nOutputWidth;
1290+
int height = g_nOutputHeight;
1291+
if ( g_bRotated ) {
1292+
int tmp = width;
1293+
width = height;
1294+
height = tmp;
1295+
}
1296+
12891297
drmModeConnector *connector = drm->connector->connector;
1290-
const drmModeModeInfo *existing_mode = find_mode(connector, g_nOutputWidth, g_nOutputHeight, refresh);
1291-
drmModeModeInfo mode;
1298+
const drmModeModeInfo *existing_mode = find_mode(connector, width, height, refresh);
1299+
drmModeModeInfo mode = {0};
12921300
if ( existing_mode )
12931301
{
12941302
mode = *existing_mode;
12951303
}
12961304
else
12971305
{
12981306
/* TODO: check refresh is within the EDID limits */
1299-
generate_cvt_mode( &mode, g_nOutputWidth, g_nOutputHeight, refresh, true, false );
1307+
generate_cvt_mode( &mode, width, height, refresh, true, false );
13001308
}
13011309

13021310
return drm_set_mode(drm, &mode);

0 commit comments

Comments
 (0)