Skip to content

Commit 2a06f50

Browse files
committed
handle custom resolutions
1 parent aea77ba commit 2a06f50

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

src/m64py/core/vidext.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,22 +39,21 @@
3939
try:
4040
if not SDL_WasInit(SDL_INIT_VIDEO):
4141
SDL_InitSubSystem(SDL_INIT_VIDEO)
42+
MODES = []
4243
if SDL2:
43-
MODES = []
4444
display = SDL_DisplayMode()
4545
for mode in range(SDL_GetNumDisplayModes(0)):
4646
ret = SDL_GetDisplayMode(0, mode, ctypes.byref(display))
47-
MODES.append((display.w, display.h))
47+
if (display.w, display.h) not in MODES:
48+
MODES.append((display.w, display.h))
4849
else:
49-
MODES = [(mode.w, mode.h) for mode in SDL_ListModes(
50-
None, SDL_FULLSCREEN|SDL_HWSURFACE)]
50+
for mode in SDL_ListModes(None, SDL_FULLSCREEN|SDL_HWSURFACE):
51+
if (mode.w, mode.h) not in MODES:
52+
MODES.append((mode.w, mode.h))
5153
if SDL_WasInit(SDL_INIT_VIDEO):
5254
SDL_QuitSubSystem(SDL_INIT_VIDEO)
5355
except Exception as err:
5456
log.warn(str(err))
55-
MODES = [(1920, 1440), (1600, 1200), (1400, 1050),
56-
(1280, 960), (1152, 864), (1024, 768),
57-
(800, 600), (640, 480), (320, 240)]
5857

5958

6059
class Video():

src/m64py/frontend/settings.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,15 +307,19 @@ def set_plugins(self):
307307
self.set_section(combo, button, settings)
308308

309309
def set_resolution(self):
310+
width = self.core.config.get_parameter("ScreenWidth")
311+
height = self.core.config.get_parameter("ScreenHeight")
312+
if (width, height) not in MODES:
313+
MODES.append((width, height))
314+
310315
self.comboResolution.clear()
311316
for mode in MODES:
312-
width, height = mode
317+
w, h = mode
313318
self.comboResolution.addItem(
314-
"%sx%s" % (width, height), (width, height))
319+
"%sx%s" % (w, h), (w, h))
315320

316-
width = self.core.config.get_parameter("ScreenWidth")
317-
height = self.core.config.get_parameter("ScreenHeight")
318-
index = self.comboResolution.findText("%sx%s" % (width, height))
321+
index = self.comboResolution.findText(
322+
"%sx%s" % (width, height), Qt.MatchExactly)
319323
if index == -1: index = 0
320324
self.comboResolution.setCurrentIndex(index)
321325
self.comboResolution.setEnabled(not self.parent.vidext)

0 commit comments

Comments
 (0)