2025-07-22 23:28:13 -04:00
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
2025-07-22 23:23:14 -04:00
# include "qt_path_util.h"
# include <QDesktopServices>
# include <QString>
# include <QUrl>
# include "common/fs/fs.h"
# include "common/fs/path_util.h"
2025-08-30 19:48:13 -04:00
# include "qt_common/qt_frontend_util.h"
2025-07-22 23:23:14 -04:00
# include <fmt/format.h>
2025-08-30 19:48:13 -04:00
namespace QtCommon : : Path {
bool OpenShaderCache ( u64 program_id , QObject * parent )
2025-07-22 23:23:14 -04:00
{
const auto shader_cache_dir = Common : : FS : : GetEdenPath ( Common : : FS : : EdenPath : : ShaderDir ) ;
const auto shader_cache_folder_path { shader_cache_dir / fmt : : format ( " {:016x} " , program_id ) } ;
if ( ! Common : : FS : : CreateDirs ( shader_cache_folder_path ) ) {
2025-08-30 19:48:13 -04:00
QtCommon : : Frontend : : ShowMessage ( QMessageBox : : Warning , " Error Opening Shader Cache " , " Failed to create or open shader cache for this title, ensure your app data directory has write permissions. " , QMessageBox : : Ok , parent ) ;
2025-07-22 23:23:14 -04:00
}
const auto shader_path_string { Common : : FS : : PathToUTF8String ( shader_cache_folder_path ) } ;
const auto qt_shader_cache_path = QString : : fromStdString ( shader_path_string ) ;
return QDesktopServices : : openUrl ( QUrl : : fromLocalFile ( qt_shader_cache_path ) ) ;
}
2025-08-30 19:48:13 -04:00
}