mirror of https://github.com/snes9xgit/snes9x.git
Simplify XRR config.
This commit is contained in:
parent
89b41da263
commit
3668c5c7a2
|
@ -135,9 +135,7 @@ class Snes9xConfig
|
|||
unsigned int rewind_buffer_size;
|
||||
|
||||
XRRScreenResources *xrr_screen_resources;
|
||||
XRROutputInfo *xrr_output_info;
|
||||
XRRCrtcInfo *xrr_crtc_info;
|
||||
RROutput xrr_output;
|
||||
|
||||
#ifdef USE_OPENGL
|
||||
unsigned char sync_to_vblank;
|
||||
|
|
|
@ -1596,9 +1596,9 @@ S9xQueryDrivers (void)
|
|||
|
||||
gui_config->allow_xrandr = 1;
|
||||
gui_config->xrr_screen_resources = XRRGetScreenResources (dpy, xid);
|
||||
gui_config->xrr_output = XRRGetOutputPrimary (dpy, xid);
|
||||
gui_config->xrr_output_info = XRRGetOutputInfo (dpy, gui_config->xrr_screen_resources, gui_config->xrr_output);
|
||||
gui_config->xrr_crtc_info = XRRGetCrtcInfo (dpy, gui_config->xrr_screen_resources, gui_config->xrr_output_info->crtc);
|
||||
gui_config->xrr_crtc_info = XRRGetCrtcInfo (dpy,
|
||||
gui_config->xrr_screen_resources,
|
||||
gui_config->xrr_screen_resources->crtcs[0]);
|
||||
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1055,18 +1055,9 @@ Snes9xPreferences::show (void)
|
|||
|
||||
combo = get_widget ("resolution_combo");
|
||||
|
||||
mode_indices = new unsigned int[config->xrr_output_info->nmode];
|
||||
for (int i = 0; i < config->xrr_output_info->nmode; i++)
|
||||
for (int i = 0; i < config->xrr_screen_resources->nmode; i++)
|
||||
{
|
||||
for (int j = 0; j < config->xrr_screen_resources->nmode; j++)
|
||||
{
|
||||
if (config->xrr_screen_resources->modes[j].id == config->xrr_output_info->modes[i])
|
||||
{
|
||||
mode_indices[i] = j;
|
||||
}
|
||||
}
|
||||
|
||||
XRRModeInfo *m = &config->xrr_screen_resources->modes[mode_indices[i]];
|
||||
XRRModeInfo *m = &config->xrr_screen_resources->modes[i];
|
||||
unsigned long dotClock = m->dotClock;
|
||||
if (m->modeFlags & RR_ClockDivideBy2)
|
||||
dotClock /= 2;
|
||||
|
@ -1085,7 +1076,7 @@ Snes9xPreferences::show (void)
|
|||
combo_box_append (GTK_COMBO_BOX (combo), size_string);
|
||||
}
|
||||
|
||||
if (config->xrr_index > config->xrr_output_info->nmode)
|
||||
if (config->xrr_index > config->xrr_screen_resources->nmode)
|
||||
config->xrr_index = 0;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1532,9 +1532,7 @@ Snes9xWindow::toggle_fullscreen_mode (void)
|
|||
static double XRRGetExactRefreshRate (Display *dpy, Window window)
|
||||
{
|
||||
XRRScreenResources *resources = NULL;
|
||||
XRROutputInfo *output_info = NULL;
|
||||
XRRCrtcInfo *crtc_info = NULL;
|
||||
RROutput output;
|
||||
int event_base;
|
||||
int error_base;
|
||||
int version_major;
|
||||
|
@ -1548,10 +1546,11 @@ static double XRRGetExactRefreshRate (Display *dpy, Window window)
|
|||
return refresh_rate;
|
||||
}
|
||||
|
||||
resources = XRRGetScreenResources (dpy, window);
|
||||
output = XRRGetOutputPrimary (dpy, window);
|
||||
output_info = XRRGetOutputInfo (dpy, resources, output);
|
||||
crtc_info = XRRGetCrtcInfo (dpy, resources, output_info->crtc);
|
||||
if (version_minor < 3)
|
||||
return refresh_rate;
|
||||
|
||||
resources = XRRGetScreenResourcesCurrent (dpy, window);
|
||||
crtc_info = XRRGetCrtcInfo (dpy, resources, resources->crtcs[0]);
|
||||
|
||||
for (i = 0; i < resources->nmode; i++)
|
||||
{
|
||||
|
@ -1569,7 +1568,6 @@ static double XRRGetExactRefreshRate (Display *dpy, Window window)
|
|||
}
|
||||
|
||||
XRRFreeCrtcInfo (crtc_info);
|
||||
XRRFreeOutputInfo (output_info);
|
||||
XRRFreeScreenResources (resources);
|
||||
|
||||
return refresh_rate;
|
||||
|
@ -1626,13 +1624,13 @@ Snes9xWindow::enter_fullscreen_mode (void)
|
|||
gdk_display_sync (gdk_display);
|
||||
if (XRRSetCrtcConfig (dpy,
|
||||
config->xrr_screen_resources,
|
||||
config->xrr_output_info->crtc,
|
||||
config->xrr_screen_resources->crtcs[0],
|
||||
CurrentTime,
|
||||
config->xrr_crtc_info->x,
|
||||
config->xrr_crtc_info->y,
|
||||
config->xrr_output_info->modes[config->xrr_index],
|
||||
config->xrr_screen_resources->modes[config->xrr_index].id,
|
||||
config->xrr_crtc_info->rotation,
|
||||
&config->xrr_output,
|
||||
&config->xrr_crtc_info->outputs[0],
|
||||
1) != 0)
|
||||
{
|
||||
config->change_display_resolution = 0;
|
||||
|
@ -1683,19 +1681,19 @@ Snes9xWindow::leave_fullscreen_mode (void)
|
|||
GdkDisplay *gdk_display = gtk_widget_get_display (window);
|
||||
Display *dpy = gdk_x11_display_get_xdisplay (gdk_display);
|
||||
|
||||
if (config->xrr_index > config->xrr_output_info->nmode)
|
||||
if (config->xrr_index > config->xrr_screen_resources->nmode)
|
||||
config->xrr_index = 0;
|
||||
|
||||
gdk_display_sync (gdk_display);
|
||||
XRRSetCrtcConfig (dpy,
|
||||
config->xrr_screen_resources,
|
||||
config->xrr_output_info->crtc,
|
||||
config->xrr_screen_resources->crtcs[0],
|
||||
CurrentTime,
|
||||
config->xrr_crtc_info->x,
|
||||
config->xrr_crtc_info->y,
|
||||
config->xrr_crtc_info->mode,
|
||||
config->xrr_crtc_info->rotation,
|
||||
&config->xrr_output,
|
||||
&config->xrr_crtc_info->outputs[0],
|
||||
1);
|
||||
|
||||
if (gui_config->auto_input_rate)
|
||||
|
|
Loading…
Reference in New Issue