diff --git a/bin/launch-options.py b/bin/launch-options.py index 2ed19fa17d066c1914a32cfca428ad795905ff48..81fe529ba522bf793b5a463470e8c7a98cef369e 100755 --- a/bin/launch-options.py +++ b/bin/launch-options.py @@ -626,6 +626,29 @@ class Gui: row += 1 + label = Gtk.Label.new('SDL 2') + self.grid.attach(label, 0, row, 1, 1) + + self.sdl2_dynapi_combo = Gtk.ComboBoxText.new() + self.sdl2_dynapi_combo.append(None, "Don't override") + self.sdl2_dynapi_combo.append('1', 'Use runtime copy') + self.sdl2_dynapi_combo.append('sdl2-compat', 'Use sdl2-compat') + self.sdl2_dynapi_combo.set_active(0) + self.grid.attach(self.sdl2_dynapi_combo, 1, row, 2, 1) + + row += 1 + + label = Gtk.Label.new('SDL 3') + self.grid.attach(label, 0, row, 1, 1) + + self.sdl3_dynapi_combo = Gtk.ComboBoxText.new() + self.sdl3_dynapi_combo.append(None, "Don't override") + self.sdl3_dynapi_combo.append('1', 'Use runtime copy') + self.sdl3_dynapi_combo.set_active(0) + self.grid.attach(self.sdl3_dynapi_combo, 1, row, 2, 1) + + row += 1 + label = Gtk.Label.new('Graphics stack') self.grid.attach(label, 0, row, 1, 1) @@ -1260,10 +1283,14 @@ class Gui: if self._changing_container_runtime: self._changing_container_runtime = False + # These widgets are features of pressure-vessel, and are + # applicable if and only if we are going to use it. widgets = [ self.graphics_provider_combo, self.layered_runtime_combo, self.remove_game_overlay_combo, + self.sdl2_dynapi_combo, + self.sdl3_dynapi_combo, self.share_home_combo, self.share_pid_combo, self.vulkan_layers_combo, @@ -1830,6 +1857,18 @@ class Gui: environ['SDL_VIDEODRIVER'] = value environ['SDL_VIDEO_DRIVER'] = value + value = self.sdl2_dynapi_combo.get_active_id() + + if value is not None: + environ.pop('SDL_DYNAMIC_API', None) + environ['STEAM_COMPAT_RUNTIME_SDL2'] = value + + value = self.sdl3_dynapi_combo.get_active_id() + + if value is not None: + environ.pop('SDL3_DYNAMIC_API', None) + environ['STEAM_COMPAT_RUNTIME_SDL3'] = value + if self.debug_check.get_active(): environ['STEAM_LINUX_RUNTIME_VERBOSE'] = '1' environ['G_MESSAGES_DEBUG'] = 'all'