Esempio n. 1
0
    def play(self):
        game_exe = self.game_exe
        arguments = self.game_config.get('args', '')
        using_dxvk = self.runner_config.get('dxvk')

        if using_dxvk:
            if not is_vulkan_supported():
                if not display_vulkan_error(True):
                    return {'error': 'VULKAN_NOT_FOUND'}

        if not system.path_exists(game_exe):
            return {'error': 'FILE_NOT_FOUND', 'file': game_exe}

        launch_info = {
            'env': self.get_env(os_env=False)
        }

        if 'WINEESYNC' in launch_info['env'].get('WINEESYNC') == "1":
            limit_set = is_esync_limit_set()
            wine_ver = is_version_esync(self.get_executable())

            if not limit_set and not wine_ver:
                esync_display_version_warning(True)
                esync_display_limit_warning()
                return {'error': 'ESYNC_LIMIT_NOT_SET'}
            if not is_esync_limit_set():
                esync_display_limit_warning()
                return {'error': 'ESYNC_LIMIT_NOT_SET'}
            if not wine_ver:
                if not esync_display_version_warning(True):
                    return {'error': 'NON_ESYNC_WINE_VERSION'}

        command = [self.get_executable()]

        game_exe, args, _working_dir = get_real_executable(game_exe, self.working_dir)
        command.append(game_exe)
        if args:
            command = command + args

        if arguments:
            for arg in shlex.split(arguments):
                command.append(arg)
        launch_info['command'] = command
        return launch_info
Esempio n. 2
0
File: wine.py Progetto: TRPB/lutris
    def play(self):
        game_exe = self.game_exe
        arguments = self.game_config.get("args", "")
        using_dxvk = self.runner_config.get("dxvk")

        if using_dxvk:
            if not is_vulkan_supported():
                if not display_vulkan_error(True):
                    return {"error": "VULKAN_NOT_FOUND"}

        if not system.path_exists(game_exe):
            return {"error": "FILE_NOT_FOUND", "file": game_exe}

        launch_info = {"env": self.get_env(os_env=False)}

        if launch_info["env"].get("WINEESYNC") == "1":
            limit_set = is_esync_limit_set()
            wine_ver = is_version_esync(self.get_executable())

            if not limit_set and not wine_ver:
                esync_display_version_warning(True)
                esync_display_limit_warning()
                return {"error": "ESYNC_LIMIT_NOT_SET"}
            if not is_esync_limit_set():
                esync_display_limit_warning()
                return {"error": "ESYNC_LIMIT_NOT_SET"}
            if not wine_ver:
                if not esync_display_version_warning(True):
                    return {"error": "NON_ESYNC_WINE_VERSION"}

        command = [self.get_executable()]

        game_exe, args, _working_dir = get_real_executable(
            game_exe, self.working_dir)
        command.append(game_exe)
        if args:
            command = command + args

        if arguments:
            for arg in shlex.split(arguments):
                command.append(arg)
        launch_info["command"] = command
        return launch_info
Esempio n. 3
0
 def dxvk_vulkan_callback(config):
     if not is_vulkan_supported():
         if not display_vulkan_error(False):
             return False
     return True
Esempio n. 4
0
 def dxvk_vulkan_callback(widget, option, config):
     response = True
     if not is_vulkan_supported():
         if not thread_safe_call(display_vulkan_error):
             response = False
     return widget, option, response