Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
266338a7c9 | ||
|
90156eea4c | ||
|
071c01c235 | ||
|
de06ffb0f7 | ||
|
8a7de35e3f | ||
|
121296834a | ||
|
bbb24d8c7e |
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Aktiviere Fs Zugriff-Logs",
|
"SettingsTabLoggingEnableFsAccessLogs": "Aktiviere Fs Zugriff-Logs",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Globaler Zugriff-Log-Modus:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Globaler Zugriff-Log-Modus:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Entwickleroptionen (WARNUNG: Beeinträchtigt die Leistung)",
|
"SettingsTabLoggingDeveloperOptions": "Entwickleroptionen (WARNUNG: Beeinträchtigt die Leistung)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL Logstufe:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Keine",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Keine",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Fehler",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Fehler",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Verlangsamungen",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Verlangsamungen",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Alle",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Alle",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Aktiviere Debug-Log",
|
"SettingsTabLoggingEnableDebugLogs": "Aktiviere Debug-Log",
|
||||||
"SettingsTabInput": "Eingabe",
|
"SettingsTabInput": "Eingabe",
|
||||||
"SettingsTabInputEnableDockedMode": "Docked Modus",
|
"SettingsTabInputEnableDockedMode": "Docked Modus",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Ενεργοποίηση Καταγραφής Πρόσβασης FS",
|
"SettingsTabLoggingEnableFsAccessLogs": "Ενεργοποίηση Καταγραφής Πρόσβασης FS",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Λειτουργία Καταγραφής Καθολικής Πρόσβασης FS:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Λειτουργία Καταγραφής Καθολικής Πρόσβασης FS:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Επιλογές Προγραμματιστή (ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η απόδοση Θα μειωθεί)",
|
"SettingsTabLoggingDeveloperOptions": "Επιλογές Προγραμματιστή (ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Η απόδοση Θα μειωθεί)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Επίπεδο Καταγραφής OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Κανένα",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Κανένα",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Σφάλμα",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Σφάλμα",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Επιβραδύνσεις",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Επιβραδύνσεις",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Όλα",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Όλα",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Ενεργοποίηση Αρχείων Καταγραφής Εντοπισμού Σφαλμάτων",
|
"SettingsTabLoggingEnableDebugLogs": "Ενεργοποίηση Αρχείων Καταγραφής Εντοπισμού Σφαλμάτων",
|
||||||
"SettingsTabInput": "Χειρισμός",
|
"SettingsTabInput": "Χειρισμός",
|
||||||
"SettingsTabInputEnableDockedMode": "Ενεργοποίηση Docked Mode",
|
"SettingsTabInputEnableDockedMode": "Ενεργοποίηση Docked Mode",
|
||||||
|
@@ -157,11 +157,11 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Enable Fs Access Logs",
|
"SettingsTabLoggingEnableFsAccessLogs": "Enable Fs Access Logs",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Global Access Log Mode:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Global Access Log Mode:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Developer Options (WARNING: Will reduce performance)",
|
"SettingsTabLoggingDeveloperOptions": "Developer Options (WARNING: Will reduce performance)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL Log Level:",
|
"SettingsTabLoggingGraphicsBackendLogLevel": "Graphics Backend Log Level:",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "None",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "None",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Error",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Error",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Slowdowns",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Slowdowns",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "All",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "All",
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
|
"SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
|
||||||
"SettingsTabInput": "Input",
|
"SettingsTabInput": "Input",
|
||||||
"SettingsTabInputEnableDockedMode": "Docked Mode",
|
"SettingsTabInputEnableDockedMode": "Docked Mode",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Habilitar registros de Fs Access",
|
"SettingsTabLoggingEnableFsAccessLogs": "Habilitar registros de Fs Access",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Modo de registros Fs Global Access:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Modo de registros Fs Global Access:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Opciones de desarrollador (ADVERTENCIA: empeorarán el rendimiento)",
|
"SettingsTabLoggingDeveloperOptions": "Opciones de desarrollador (ADVERTENCIA: empeorarán el rendimiento)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Nivel de registro de OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Nada",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Nada",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Errores",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Errores",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Ralentizaciones",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Ralentizaciones",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todo",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Todo",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Habilitar registros de debug",
|
"SettingsTabLoggingEnableDebugLogs": "Habilitar registros de debug",
|
||||||
"SettingsTabInput": "Entrada",
|
"SettingsTabInput": "Entrada",
|
||||||
"SettingsTabInputEnableDockedMode": "Modo dock/TV",
|
"SettingsTabInputEnableDockedMode": "Modo dock/TV",
|
||||||
|
@@ -150,11 +150,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Activer les journaux des accès au système de fichiers",
|
"SettingsTabLoggingEnableFsAccessLogs": "Activer les journaux des accès au système de fichiers",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Niveau des journaux des accès au système de fichiers:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Niveau des journaux des accès au système de fichiers:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Options développeur (ATTENTION: Cela peut réduire les performances)",
|
"SettingsTabLoggingDeveloperOptions": "Options développeur (ATTENTION: Cela peut réduire les performances)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Niveau des journaux OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Aucun",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Aucun",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Erreur",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Erreur",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Ralentissements",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Ralentissements",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tout",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Tout",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Activer les journaux de debug",
|
"SettingsTabLoggingEnableDebugLogs": "Activer les journaux de debug",
|
||||||
"SettingsTabInput": "Contrôles",
|
"SettingsTabInput": "Contrôles",
|
||||||
"SettingsTabInputEnableDockedMode": "Active le mode station d'accueil",
|
"SettingsTabInputEnableDockedMode": "Active le mode station d'accueil",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Attiva Fs Access Logs",
|
"SettingsTabLoggingEnableFsAccessLogs": "Attiva Fs Access Logs",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Modalità log accesso globale Fs:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Modalità log accesso globale Fs:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Opzioni da sviluppatore (AVVISO: Ridurrà le prestazioni)",
|
"SettingsTabLoggingDeveloperOptions": "Opzioni da sviluppatore (AVVISO: Ridurrà le prestazioni)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Livello di log OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Nessuno",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Nessuno",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Errore",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Errore",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Rallentamenti",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Rallentamenti",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Tutto",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Tutto",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Attiva logs di debug",
|
"SettingsTabLoggingEnableDebugLogs": "Attiva logs di debug",
|
||||||
"SettingsTabInput": "Input",
|
"SettingsTabInput": "Input",
|
||||||
"SettingsTabInputEnableDockedMode": "Attiva modalità TV",
|
"SettingsTabInputEnableDockedMode": "Attiva modalità TV",
|
||||||
@@ -558,8 +557,8 @@
|
|||||||
"SettingsSelectThemeFileDialogTitle" : "Seleziona file del tema",
|
"SettingsSelectThemeFileDialogTitle" : "Seleziona file del tema",
|
||||||
"SettingsXamlThemeFile" : "File del tema xaml",
|
"SettingsXamlThemeFile" : "File del tema xaml",
|
||||||
"SettingsTabHotkeysResScaleUpHotkey": "Aumentare la risoluzione:",
|
"SettingsTabHotkeysResScaleUpHotkey": "Aumentare la risoluzione:",
|
||||||
"SettingsTabHotkeysResScaleDownHotkey": "Diminuire la risoluzione:"
|
"SettingsTabHotkeysResScaleDownHotkey": "Diminuire la risoluzione:",
|
||||||
"AvatarWindowTitle": "Gestisci account - Avatar"
|
"AvatarWindowTitle": "Gestisci account - Avatar",
|
||||||
"Amiibo": "Amiibo",
|
"Amiibo": "Amiibo",
|
||||||
"Unknown": "Sconosciuto",
|
"Unknown": "Sconosciuto",
|
||||||
"Usage": "Utilizzo",
|
"Usage": "Utilizzo",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Fs アクセスログを有効",
|
"SettingsTabLoggingEnableFsAccessLogs": "Fs アクセスログを有効",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs グローバルアクセスログモード:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs グローバルアクセスログモード:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "開発者オプション (警告: パフォーマンスが低下します)",
|
"SettingsTabLoggingDeveloperOptions": "開発者オプション (警告: パフォーマンスが低下します)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL ログレベル:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "なし",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "なし",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "エラー",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "エラー",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "パフォーマンス低下",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "パフォーマンス低下",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "すべて",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "すべて",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "デバッグログを有効",
|
"SettingsTabLoggingEnableDebugLogs": "デバッグログを有効",
|
||||||
"SettingsTabInput": "入力",
|
"SettingsTabInput": "入力",
|
||||||
"SettingsTabInputEnableDockedMode": "ドッキングモード",
|
"SettingsTabInputEnableDockedMode": "ドッキングモード",
|
||||||
|
@@ -156,11 +156,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Fs 액세스 로그 켜기",
|
"SettingsTabLoggingEnableFsAccessLogs": "Fs 액세스 로그 켜기",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs 전역 액세스 로그 모드 :",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs 전역 액세스 로그 모드 :",
|
||||||
"SettingsTabLoggingDeveloperOptions": "개발자 옵션 (경고 : 성능이 저하됩니다.)",
|
"SettingsTabLoggingDeveloperOptions": "개발자 옵션 (경고 : 성능이 저하됩니다.)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL 로그 수준 :",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "없음",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "없음",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "오류",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "오류",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "감속",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "감속",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "모두",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "모두",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "디버그 로그 사용",
|
"SettingsTabLoggingEnableDebugLogs": "디버그 로그 사용",
|
||||||
"SettingsTabInput": "입력",
|
"SettingsTabInput": "입력",
|
||||||
"SettingsTabInputEnableDockedMode": "도킹 모드 활성화",
|
"SettingsTabInputEnableDockedMode": "도킹 모드 활성화",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Włącz Logi Dostępu do Systemu Plików",
|
"SettingsTabLoggingEnableFsAccessLogs": "Włącz Logi Dostępu do Systemu Plików",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Tryb Globalnych Logów Systemu Plików:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Tryb Globalnych Logów Systemu Plików:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Opcje programistyczne (OSTRZEŻENIE: Zmniejszą wydajność)",
|
"SettingsTabLoggingDeveloperOptions": "Opcje programistyczne (OSTRZEŻENIE: Zmniejszą wydajność)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Poziom Logów OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Żadne",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Żadne",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Błędy",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Błędy",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Spowolnienia",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Spowolnienia",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Wszystkie",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Wszystkie",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Włącz Logi Debugowania",
|
"SettingsTabLoggingEnableDebugLogs": "Włącz Logi Debugowania",
|
||||||
"SettingsTabInput": "Sterowanie",
|
"SettingsTabInput": "Sterowanie",
|
||||||
"SettingsTabInputEnableDockedMode": "Tryb Zadokowany",
|
"SettingsTabInputEnableDockedMode": "Tryb Zadokowany",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Habilitar logs de acesso ao sistema de arquivos",
|
"SettingsTabLoggingEnableFsAccessLogs": "Habilitar logs de acesso ao sistema de arquivos",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Modo global de logs do sistema de arquivos:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Modo global de logs do sistema de arquivos:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Opções do desenvolvedor (AVISO: Vai reduzir a performance)",
|
"SettingsTabLoggingDeveloperOptions": "Opções do desenvolvedor (AVISO: Vai reduzir a performance)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Nível de log do OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Nenhum",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Nenhum",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Erro",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Erro",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Lentidão",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Lentidão",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Todos",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Todos",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Habilitar logs de depuração",
|
"SettingsTabLoggingEnableDebugLogs": "Habilitar logs de depuração",
|
||||||
"SettingsTabInput": "Controle",
|
"SettingsTabInput": "Controle",
|
||||||
"SettingsTabInputEnableDockedMode": "Habilitar modo TV",
|
"SettingsTabInputEnableDockedMode": "Habilitar modo TV",
|
||||||
|
@@ -156,11 +156,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Включить журналы доступа Fs",
|
"SettingsTabLoggingEnableFsAccessLogs": "Включить журналы доступа Fs",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Режим журнала глобального доступа Fs:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Режим журнала глобального доступа Fs:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Параметры разработчика (ВНИМАНИЕ: снизит производительность)",
|
"SettingsTabLoggingDeveloperOptions": "Параметры разработчика (ВНИМАНИЕ: снизит производительность)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "Уровень журнала OpenGL:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Ничего",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Ничего",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Ошибка",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Ошибка",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Замедления",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Замедления",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Всё",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Всё",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Включить журналы отладки",
|
"SettingsTabLoggingEnableDebugLogs": "Включить журналы отладки",
|
||||||
"SettingsTabInput": "Управление",
|
"SettingsTabInput": "Управление",
|
||||||
"SettingsTabInputEnableDockedMode": "Включить режим закрепления",
|
"SettingsTabInputEnableDockedMode": "Включить режим закрепления",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "Fs Erişim Loglarını Etkinleştir",
|
"SettingsTabLoggingEnableFsAccessLogs": "Fs Erişim Loglarını Etkinleştir",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Evrensel Erişim Log Modu:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "Fs Evrensel Erişim Log Modu:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "Geliştirici Seçenekleri (UYARI: Performansı düşürecektir)",
|
"SettingsTabLoggingDeveloperOptions": "Geliştirici Seçenekleri (UYARI: Performansı düşürecektir)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL Log Seviyesi:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Hiç",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "Hiç",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "Hata",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "Hata",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Yavaşlamalar",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "Yavaşlamalar",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "Her Şey",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "Her Şey",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "Hata Ayıklama Loglarını Etkinleştir",
|
"SettingsTabLoggingEnableDebugLogs": "Hata Ayıklama Loglarını Etkinleştir",
|
||||||
"SettingsTabInput": "Giriş Yöntemi",
|
"SettingsTabInput": "Giriş Yöntemi",
|
||||||
"SettingsTabInputEnableDockedMode": "Docked Modunu Etkinleştir",
|
"SettingsTabInputEnableDockedMode": "Docked Modunu Etkinleştir",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "记录文件访问",
|
"SettingsTabLoggingEnableFsAccessLogs": "记录文件访问",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "记录全局文件访问模式:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "记录全局文件访问模式:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "开发者选项 (警告: 会降低性能)",
|
"SettingsTabLoggingDeveloperOptions": "开发者选项 (警告: 会降低性能)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL日志级别:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "无",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "无",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "错误",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "错误",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "减速",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "减速",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "全部",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "启用调试日志",
|
"SettingsTabLoggingEnableDebugLogs": "启用调试日志",
|
||||||
"SettingsTabInput": "输入",
|
"SettingsTabInput": "输入",
|
||||||
"SettingsTabInputEnableDockedMode": "主机模式",
|
"SettingsTabInputEnableDockedMode": "主机模式",
|
||||||
|
@@ -157,11 +157,10 @@
|
|||||||
"SettingsTabLoggingEnableFsAccessLogs": "記錄檔案存取",
|
"SettingsTabLoggingEnableFsAccessLogs": "記錄檔案存取",
|
||||||
"SettingsTabLoggingFsGlobalAccessLogMode": "記錄全域檔案存取模式:",
|
"SettingsTabLoggingFsGlobalAccessLogMode": "記錄全域檔案存取模式:",
|
||||||
"SettingsTabLoggingDeveloperOptions": "開發者選項 (警告: 會降低效能)",
|
"SettingsTabLoggingDeveloperOptions": "開發者選項 (警告: 會降低效能)",
|
||||||
"SettingsTabLoggingOpenglLogLevel": "OpenGL 日誌級別:",
|
"SettingsTabLoggingGraphicsBackendLogLevelNone": "無",
|
||||||
"SettingsTabLoggingOpenglLogLevelNone": "無",
|
"SettingsTabLoggingGraphicsBackendLogLevelError": "錯誤",
|
||||||
"SettingsTabLoggingOpenglLogLevelError": "錯誤",
|
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "減速",
|
||||||
"SettingsTabLoggingOpenglLogLevelPerformance": "減速",
|
"SettingsTabLoggingGraphicsBackendLogLevelAll": "全部",
|
||||||
"SettingsTabLoggingOpenglLogLevelAll": "全部",
|
|
||||||
"SettingsTabLoggingEnableDebugLogs": "啟用除錯日誌",
|
"SettingsTabLoggingEnableDebugLogs": "啟用除錯日誌",
|
||||||
"SettingsTabInput": "輸入",
|
"SettingsTabInput": "輸入",
|
||||||
"SettingsTabInputEnableDockedMode": "Docked 模式",
|
"SettingsTabInputEnableDockedMode": "Docked 模式",
|
||||||
|
@@ -58,5 +58,7 @@
|
|||||||
<Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color>
|
<Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color>
|
||||||
<Color x:Key="ThemeForegroundColor">#FFFFFFFF</Color>
|
<Color x:Key="ThemeForegroundColor">#FFFFFFFF</Color>
|
||||||
<Color x:Key="MenuFlyoutPresenterBorderColor">#3D3D3D</Color>
|
<Color x:Key="MenuFlyoutPresenterBorderColor">#3D3D3D</Color>
|
||||||
|
<Color x:Key="AppListBackgroundColor">#0FFFFFFF</Color>
|
||||||
|
<Color x:Key="AppListHoverBackgroundColor">#1EFFFFFF</Color>
|
||||||
</Styles.Resources>
|
</Styles.Resources>
|
||||||
</Styles>
|
</Styles>
|
@@ -50,5 +50,7 @@
|
|||||||
<Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color>
|
<Color x:Key="SystemChromeWhiteColor">#FFFFFFFF</Color>
|
||||||
<Color x:Key="ThemeForegroundColor">#FF000000</Color>
|
<Color x:Key="ThemeForegroundColor">#FF000000</Color>
|
||||||
<Color x:Key="MenuFlyoutPresenterBorderColor">#C1C1C1</Color>
|
<Color x:Key="MenuFlyoutPresenterBorderColor">#C1C1C1</Color>
|
||||||
|
<Color x:Key="AppListBackgroundColor">#b3ffffff</Color>
|
||||||
|
<Color x:Key="AppListHoverBackgroundColor">#80cccccc</Color>
|
||||||
</Styles.Resources>
|
</Styles.Resources>
|
||||||
</Styles>
|
</Styles>
|
@@ -11,7 +11,8 @@
|
|||||||
Height="340"
|
Height="340"
|
||||||
CanResize="False"
|
CanResize="False"
|
||||||
SizeToContent="Height"
|
SizeToContent="Height"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
Margin="20"
|
Margin="20"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
|
xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
|
||||||
Width="400"
|
Width="400"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
Margin="20"
|
Margin="20"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@@ -10,7 +10,8 @@
|
|||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
||||||
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
|
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
|
||||||
@@ -113,8 +114,8 @@
|
|||||||
<Style Selector="ListBoxItem">
|
<Style Selector="ListBoxItem">
|
||||||
<Setter Property="Padding" Value="0" />
|
<Setter Property="Padding" Value="0" />
|
||||||
<Setter Property="Margin" Value="5" />
|
<Setter Property="Margin" Value="5" />
|
||||||
<Setter Property="CornerRadius" Value="5" />
|
<Setter Property="CornerRadius" Value="4" />
|
||||||
<Setter Property="Background" Value="{DynamicResource SystemAccentColorDark3}" />
|
<Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" />
|
||||||
<Style.Animations>
|
<Style.Animations>
|
||||||
<Animation Duration="0:0:0.7">
|
<Animation Duration="0:0:0.7">
|
||||||
<KeyFrame Cue="0%">
|
<KeyFrame Cue="0%">
|
||||||
@@ -132,27 +133,18 @@
|
|||||||
</Animation>
|
</Animation>
|
||||||
</Style.Animations>
|
</Style.Animations>
|
||||||
</Style>
|
</Style>
|
||||||
|
<Style Selector="ListBoxItem:selected /template/ ContentPresenter">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="ListBoxItem:pointerover /template/ ContentPresenter">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource AppListHoverBackgroundColor}" />
|
||||||
|
</Style>
|
||||||
</ListBox.Styles>
|
</ListBox.Styles>
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.Styles>
|
|
||||||
<Style Selector="ui|SymbolIcon.small.icon">
|
|
||||||
<Setter Property="FontSize" Value="15" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="ui|SymbolIcon.normal.icon">
|
|
||||||
<Setter Property="FontSize" Value="19" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="ui|SymbolIcon.large.icon">
|
|
||||||
<Setter Property="FontSize" Value="23" />
|
|
||||||
</Style>
|
|
||||||
<Style Selector="ui|SymbolIcon.huge.icon">
|
|
||||||
<Setter Property="FontSize" Value="26" />
|
|
||||||
</Style>
|
|
||||||
</Grid.Styles>
|
|
||||||
<Border
|
<Border
|
||||||
Margin="0"
|
Margin="10"
|
||||||
Padding="{Binding $parent[UserControl].DataContext.GridItemPadding}"
|
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
VerticalAlignment="Stretch"
|
VerticalAlignment="Stretch"
|
||||||
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
||||||
@@ -160,57 +152,41 @@
|
|||||||
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
||||||
Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
||||||
ClipToBounds="True"
|
ClipToBounds="True"
|
||||||
CornerRadius="5">
|
CornerRadius="4">
|
||||||
<Grid Margin="0">
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Image
|
<Image
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Margin="0"
|
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
|
Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
|
||||||
<StackPanel
|
<Panel
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Height="50"
|
Height="50"
|
||||||
Margin="5"
|
Margin="0 10 0 0"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
VerticalAlignment="Stretch"
|
VerticalAlignment="Stretch"
|
||||||
IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}">
|
IsVisible="{Binding $parent[UserControl].DataContext.ShowNames}">
|
||||||
<TextBlock
|
<TextBlock
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
VerticalAlignment="Center"
|
||||||
Text="{Binding TitleName}"
|
Text="{Binding TitleName}"
|
||||||
TextAlignment="Center"
|
TextAlignment="Center"
|
||||||
TextWrapping="Wrap" />
|
TextWrapping="Wrap" />
|
||||||
</StackPanel>
|
</Panel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
<ui:SymbolIcon
|
<ui:SymbolIcon
|
||||||
Margin="5"
|
Margin="5,5,0,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
FontSize="16"
|
||||||
Classes.icon="true"
|
Foreground="{DynamicResource SystemAccentColor}"
|
||||||
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
|
|
||||||
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
|
||||||
Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
|
||||||
Foreground="Yellow"
|
|
||||||
IsVisible="{Binding Favorite}"
|
IsVisible="{Binding Favorite}"
|
||||||
Symbol="StarFilled" />
|
Symbol="StarFilled" />
|
||||||
<ui:SymbolIcon
|
|
||||||
Margin="5"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
VerticalAlignment="Top"
|
|
||||||
Classes.huge="{Binding $parent[UserControl].DataContext.IsGridHuge}"
|
|
||||||
Classes.icon="true"
|
|
||||||
Classes.large="{Binding $parent[UserControl].DataContext.IsGridLarge}"
|
|
||||||
Classes.normal="{Binding $parent[UserControl].DataContext.IsGridMedium}"
|
|
||||||
Classes.small="{Binding $parent[UserControl].DataContext.IsGridSmall}"
|
|
||||||
Foreground="Black"
|
|
||||||
IsVisible="{Binding Favorite}"
|
|
||||||
Symbol="Star" />
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</ListBox.ItemTemplate>
|
</ListBox.ItemTemplate>
|
||||||
|
@@ -10,7 +10,8 @@
|
|||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
||||||
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
|
<MenuFlyout x:Key="GameContextMenu" Opened="MenuBase_OnMenuOpened">
|
||||||
@@ -115,8 +116,8 @@
|
|||||||
<Setter Property="Padding" Value="0" />
|
<Setter Property="Padding" Value="0" />
|
||||||
<Setter Property="Margin" Value="0" />
|
<Setter Property="Margin" Value="0" />
|
||||||
<Setter Property="CornerRadius" Value="5" />
|
<Setter Property="CornerRadius" Value="5" />
|
||||||
<Setter Property="BorderBrush" Value="{DynamicResource SystemAccentColorDark3}" />
|
<Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" />
|
||||||
<Setter Property="BorderThickness" Value="2" />
|
<Setter Property="BorderThickness" Value="2"/>
|
||||||
<Style.Animations>
|
<Style.Animations>
|
||||||
<Animation Duration="0:0:0.7">
|
<Animation Duration="0:0:0.7">
|
||||||
<KeyFrame Cue="0%">
|
<KeyFrame Cue="0%">
|
||||||
@@ -134,6 +135,12 @@
|
|||||||
</Animation>
|
</Animation>
|
||||||
</Style.Animations>
|
</Style.Animations>
|
||||||
</Style>
|
</Style>
|
||||||
|
<Style Selector="ListBoxItem:selected /template/ ContentPresenter">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource AppListBackgroundColor}" />
|
||||||
|
</Style>
|
||||||
|
<Style Selector="ListBoxItem:pointerover /template/ ContentPresenter">
|
||||||
|
<Setter Property="Background" Value="{DynamicResource AppListHoverBackgroundColor}" />
|
||||||
|
</Style>
|
||||||
</ListBox.Styles>
|
</ListBox.Styles>
|
||||||
<ListBox.ItemTemplate>
|
<ListBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
@@ -152,9 +159,6 @@
|
|||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
<ColumnDefinition Width="Auto" />
|
<ColumnDefinition Width="Auto" />
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition />
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<Image
|
<Image
|
||||||
Grid.RowSpan="3"
|
Grid.RowSpan="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
@@ -169,7 +173,7 @@
|
|||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
Orientation="Vertical"
|
Orientation="Vertical"
|
||||||
Spacing="5">
|
Spacing="5" >
|
||||||
<TextBlock
|
<TextBlock
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
Text="{Binding TitleName}"
|
Text="{Binding TitleName}"
|
||||||
@@ -214,20 +218,10 @@
|
|||||||
Margin="-5,-5,0,0"
|
Margin="-5,-5,0,0"
|
||||||
HorizontalAlignment="Left"
|
HorizontalAlignment="Left"
|
||||||
VerticalAlignment="Top"
|
VerticalAlignment="Top"
|
||||||
FontSize="20"
|
FontSize="16"
|
||||||
Foreground="Yellow"
|
Foreground="{DynamicResource SystemAccentColor}"
|
||||||
IsVisible="{Binding Favorite}"
|
IsVisible="{Binding Favorite}"
|
||||||
Symbol="StarFilled" />
|
Symbol="StarFilled" />
|
||||||
<ui:SymbolIcon
|
|
||||||
Grid.Row="0"
|
|
||||||
Grid.Column="0"
|
|
||||||
Margin="-5,-5,0,0"
|
|
||||||
HorizontalAlignment="Left"
|
|
||||||
VerticalAlignment="Top"
|
|
||||||
FontSize="20"
|
|
||||||
Foreground="Black"
|
|
||||||
IsVisible="{Binding Favorite}"
|
|
||||||
Symbol="Star" />
|
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@@ -4,7 +4,8 @@
|
|||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
Margin="5,10,5,5"
|
Margin="5,10,5,5"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@@ -4,7 +4,8 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Ryujinx.Ava.Ui.Controls.NavigationDialogHost">
|
x:Class="Ryujinx.Ava.Ui.Controls.NavigationDialogHost"
|
||||||
|
Focusable="True">
|
||||||
<ui:Frame HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
<ui:Frame HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
|
||||||
x:Name="ContentFrame" />
|
x:Name="ContentFrame" />
|
||||||
</UserControl>
|
</UserControl>
|
@@ -4,7 +4,8 @@
|
|||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
||||||
x:Class="Ryujinx.Ava.Ui.Controls.ProfileImageSelectionDialog">
|
x:Class="Ryujinx.Ava.Ui.Controls.ProfileImageSelectionDialog"
|
||||||
|
Focusable="True">
|
||||||
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="5,10,5, 5">
|
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="5,10,5, 5">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@@ -3,5 +3,6 @@
|
|||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
x:Class="Ryujinx.Ava.Ui.Controls.RendererHost">
|
x:Class="Ryujinx.Ava.Ui.Controls.RendererHost"
|
||||||
|
Focusable="True">
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
@@ -9,7 +9,8 @@
|
|||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
Height="400"
|
Height="400"
|
||||||
Width="550"
|
Width="550"
|
||||||
x:Class="Ryujinx.Ava.Ui.Controls.SaveManager">
|
x:Class="Ryujinx.Ava.Ui.Controls.SaveManager"
|
||||||
|
Focusable="True">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
@@ -8,7 +8,8 @@
|
|||||||
Title="Ryujinx - Waiting"
|
Title="Ryujinx - Waiting"
|
||||||
SizeToContent="WidthAndHeight"
|
SizeToContent="WidthAndHeight"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
Margin="20"
|
Margin="20"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@@ -12,7 +12,8 @@
|
|||||||
Margin="0"
|
Margin="0"
|
||||||
MinWidth="500"
|
MinWidth="500"
|
||||||
Padding="0"
|
Padding="0"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
@@ -10,7 +10,8 @@
|
|||||||
xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
xmlns:Locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
|
xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
|
||||||
x:Class="Ryujinx.Ava.Ui.Controls.UserRecoverer">
|
x:Class="Ryujinx.Ava.Ui.Controls.UserRecoverer"
|
||||||
|
Focusable="True">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<viewModels:UserProfileViewModel />
|
<viewModels:UserProfileViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
@@ -12,7 +12,8 @@
|
|||||||
d:DesignHeight="450"
|
d:DesignHeight="450"
|
||||||
MinWidth="500"
|
MinWidth="500"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<UserControl.Resources>
|
<UserControl.Resources>
|
||||||
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
<controls:BitmapArrayValueConverter x:Key="ByteImage" />
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
@@ -1,45 +0,0 @@
|
|||||||
using Ryujinx.Ui.App.Common;
|
|
||||||
using System.Collections;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Ui.Models
|
|
||||||
{
|
|
||||||
internal class FileSizeSortComparer : IComparer
|
|
||||||
{
|
|
||||||
public int Compare(object x, object y)
|
|
||||||
{
|
|
||||||
string aValue = (x as ApplicationData).TimePlayed;
|
|
||||||
string bValue = (y as ApplicationData).TimePlayed;
|
|
||||||
|
|
||||||
if (aValue[^3..] == "GiB")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^3]) * 1024).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
aValue = aValue[0..^3];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bValue[^3..] == "GiB")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^3]) * 1024).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bValue = bValue[0..^3];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (float.Parse(aValue) > float.Parse(bValue))
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (float.Parse(bValue) > float.Parse(aValue))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,50 +0,0 @@
|
|||||||
using Ryujinx.Ui.App.Common;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Ui.Models.Generic
|
|
||||||
{
|
|
||||||
internal class FileSizeSortComparer : IComparer<ApplicationData>
|
|
||||||
{
|
|
||||||
public FileSizeSortComparer() { }
|
|
||||||
public FileSizeSortComparer(bool isAscending) { _order = isAscending ? 1 : -1; }
|
|
||||||
|
|
||||||
private int _order;
|
|
||||||
|
|
||||||
public int Compare(ApplicationData x, ApplicationData y)
|
|
||||||
{
|
|
||||||
string aValue = x.FileSize;
|
|
||||||
string bValue = y.FileSize;
|
|
||||||
|
|
||||||
if (aValue[^3..] == "GiB")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^3]) * 1024).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
aValue = aValue[0..^3];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bValue[^3..] == "GiB")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^3]) * 1024).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bValue = bValue[0..^3];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (float.Parse(aValue) > float.Parse(bValue))
|
|
||||||
{
|
|
||||||
return -1 * _order;
|
|
||||||
}
|
|
||||||
else if (float.Parse(bValue) > float.Parse(aValue))
|
|
||||||
{
|
|
||||||
return 1 * _order;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,66 +0,0 @@
|
|||||||
using Ryujinx.Ui.App.Common;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Ui.Models.Generic
|
|
||||||
{
|
|
||||||
internal class TimePlayedSortComparer : IComparer<ApplicationData>
|
|
||||||
{
|
|
||||||
public TimePlayedSortComparer() { }
|
|
||||||
public TimePlayedSortComparer(bool isAscending) { _order = isAscending ? 1 : -1; }
|
|
||||||
|
|
||||||
private int _order;
|
|
||||||
|
|
||||||
public int Compare(ApplicationData x, ApplicationData y)
|
|
||||||
{
|
|
||||||
string aValue = x.TimePlayed;
|
|
||||||
string bValue = y.TimePlayed;
|
|
||||||
|
|
||||||
if (aValue.Length > 4 && aValue[^4..] == "mins")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 60).ToString();
|
|
||||||
}
|
|
||||||
else if (aValue.Length > 3 && aValue[^3..] == "hrs")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^4]) * 3600).ToString();
|
|
||||||
}
|
|
||||||
else if (aValue.Length > 4 && aValue[^4..] == "days")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 86400).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
aValue = aValue[0..^1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bValue.Length > 4 && bValue[^4..] == "mins")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 60).ToString();
|
|
||||||
}
|
|
||||||
else if (bValue.Length > 3 && bValue[^3..] == "hrs")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^4]) * 3600).ToString();
|
|
||||||
}
|
|
||||||
else if (bValue.Length > 4 && bValue[^4..] == "days")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 86400).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bValue = bValue[0..^1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (float.Parse(aValue) > float.Parse(bValue))
|
|
||||||
{
|
|
||||||
return -1 * _order;
|
|
||||||
}
|
|
||||||
else if (float.Parse(bValue) > float.Parse(aValue))
|
|
||||||
{
|
|
||||||
return 1 * _order;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,27 +0,0 @@
|
|||||||
using Ryujinx.Ui.App.Common;
|
|
||||||
using System;
|
|
||||||
using System.Collections;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Ui.Models
|
|
||||||
{
|
|
||||||
internal class LastPlayedSortComparer : IComparer
|
|
||||||
{
|
|
||||||
public int Compare(object x, object y)
|
|
||||||
{
|
|
||||||
string aValue = (x as ApplicationData).LastPlayed;
|
|
||||||
string bValue = (y as ApplicationData).LastPlayed;
|
|
||||||
|
|
||||||
if (aValue == "Never")
|
|
||||||
{
|
|
||||||
aValue = DateTime.UnixEpoch.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bValue == "Never")
|
|
||||||
{
|
|
||||||
bValue = DateTime.UnixEpoch.ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return DateTime.Compare(DateTime.Parse(bValue), DateTime.Parse(aValue));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,61 +0,0 @@
|
|||||||
using Ryujinx.Ui.App.Common;
|
|
||||||
using System.Collections;
|
|
||||||
|
|
||||||
namespace Ryujinx.Ava.Ui.Models
|
|
||||||
{
|
|
||||||
internal class TimePlayedSortComparer : IComparer
|
|
||||||
{
|
|
||||||
public int Compare(object x, object y)
|
|
||||||
{
|
|
||||||
string aValue = (x as ApplicationData).TimePlayed;
|
|
||||||
string bValue = (y as ApplicationData).TimePlayed;
|
|
||||||
|
|
||||||
if (aValue.Length > 4 && aValue[^4..] == "mins")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 60).ToString();
|
|
||||||
}
|
|
||||||
else if (aValue.Length > 3 && aValue[^3..] == "hrs")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^4]) * 3600).ToString();
|
|
||||||
}
|
|
||||||
else if (aValue.Length > 4 && aValue[^4..] == "days")
|
|
||||||
{
|
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 86400).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
aValue = aValue[0..^1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bValue.Length > 4 && bValue[^4..] == "mins")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 60).ToString();
|
|
||||||
}
|
|
||||||
else if (bValue.Length > 3 && bValue[^3..] == "hrs")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^4]) * 3600).ToString();
|
|
||||||
}
|
|
||||||
else if (bValue.Length > 4 && bValue[^4..] == "days")
|
|
||||||
{
|
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 86400).ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
bValue = bValue[0..^1];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (float.Parse(aValue) > float.Parse(bValue))
|
|
||||||
{
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else if (float.Parse(bValue) > float.Parse(aValue))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -435,9 +435,7 @@ namespace Ryujinx.Ava.Ui.ViewModels
|
|||||||
OnPropertyChanged();
|
OnPropertyChanged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Thickness GridItemPadding => ShowNames ? new Thickness() : new Thickness(5);
|
|
||||||
|
|
||||||
public bool ShowMenuAndStatusBar
|
public bool ShowMenuAndStatusBar
|
||||||
{
|
{
|
||||||
get => _showMenuAndStatusBar;
|
get => _showMenuAndStatusBar;
|
||||||
@@ -504,8 +502,10 @@ namespace Ryujinx.Ava.Ui.ViewModels
|
|||||||
return SortMode switch
|
return SortMode switch
|
||||||
{
|
{
|
||||||
ApplicationSort.LastPlayed => new Models.Generic.LastPlayedSortComparer(IsAscending),
|
ApplicationSort.LastPlayed => new Models.Generic.LastPlayedSortComparer(IsAscending),
|
||||||
ApplicationSort.FileSize => new Models.Generic.FileSizeSortComparer(IsAscending),
|
ApplicationSort.FileSize => IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.FileSizeBytes)
|
||||||
ApplicationSort.TotalTimePlayed => new Models.Generic.TimePlayedSortComparer(IsAscending),
|
: SortExpressionComparer<ApplicationData>.Descending(app => app.FileSizeBytes),
|
||||||
|
ApplicationSort.TotalTimePlayed => IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.TimePlayedNum)
|
||||||
|
: SortExpressionComparer<ApplicationData>.Descending(app => app.TimePlayedNum),
|
||||||
ApplicationSort.Title => IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.TitleName)
|
ApplicationSort.Title => IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.TitleName)
|
||||||
: SortExpressionComparer<ApplicationData>.Descending(app => app.TitleName),
|
: SortExpressionComparer<ApplicationData>.Descending(app => app.TitleName),
|
||||||
ApplicationSort.Favorite => !IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.Favorite)
|
ApplicationSort.Favorite => !IsAscending ? SortExpressionComparer<ApplicationData>.Ascending(app => app.Favorite)
|
||||||
@@ -599,7 +599,6 @@ namespace Ryujinx.Ava.Ui.ViewModels
|
|||||||
ConfigurationState.Instance.Ui.ShowNames.Value = value;
|
ConfigurationState.Instance.Ui.ShowNames.Value = value;
|
||||||
|
|
||||||
OnPropertyChanged();
|
OnPropertyChanged();
|
||||||
OnPropertyChanged(nameof(GridItemPadding));
|
|
||||||
OnPropertyChanged(nameof(GridSizeScale));
|
OnPropertyChanged(nameof(GridSizeScale));
|
||||||
|
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
||||||
@@ -716,7 +715,6 @@ namespace Ryujinx.Ava.Ui.ViewModels
|
|||||||
OnPropertyChanged(nameof(IsGridLarge));
|
OnPropertyChanged(nameof(IsGridLarge));
|
||||||
OnPropertyChanged(nameof(IsGridHuge));
|
OnPropertyChanged(nameof(IsGridHuge));
|
||||||
OnPropertyChanged(nameof(ShowNames));
|
OnPropertyChanged(nameof(ShowNames));
|
||||||
OnPropertyChanged(nameof(GridItemPadding));
|
|
||||||
|
|
||||||
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
ConfigurationState.Instance.ToFileFormat().SaveConfig(Program.ConfigurationPath);
|
||||||
}
|
}
|
||||||
@@ -780,6 +778,11 @@ namespace Ryujinx.Ava.Ui.ViewModels
|
|||||||
{
|
{
|
||||||
_owner.LoadProgressBar.IsVisible = false;
|
_owner.LoadProgressBar.IsVisible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (e.NumAppsLoaded == e.NumAppsFound)
|
||||||
|
{
|
||||||
|
_owner.LoadProgressBar.IsVisible = false;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -15,7 +15,8 @@
|
|||||||
CanResize="False"
|
CanResize="False"
|
||||||
SizeToContent="Width"
|
SizeToContent="Width"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid
|
<Grid
|
||||||
Margin="15"
|
Margin="15"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@@ -11,7 +11,8 @@
|
|||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
Width="800" MinHeight="650" Height="650"
|
Width="800" MinHeight="650" Height="650"
|
||||||
SizeToContent="Manual"
|
SizeToContent="Manual"
|
||||||
MinWidth="600">
|
MinWidth="600"
|
||||||
|
Focusable="True">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<viewModels:AmiiboWindowViewModel />
|
<viewModels:AmiiboWindowViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
@@ -11,7 +11,8 @@
|
|||||||
xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
|
xmlns:viewModels="clr-namespace:Ryujinx.Ava.Ui.ViewModels"
|
||||||
xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
|
xmlns:controls="clr-namespace:Ryujinx.Ava.Ui.Controls"
|
||||||
x:CompileBindings="True"
|
x:CompileBindings="True"
|
||||||
x:DataType="viewModels:AvatarProfileViewModel">
|
x:DataType="viewModels:AvatarProfileViewModel"
|
||||||
|
Focusable="True">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<viewModels:AvatarProfileViewModel />
|
<viewModels:AvatarProfileViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
@@ -12,7 +12,8 @@
|
|||||||
MinWidth="500"
|
MinWidth="500"
|
||||||
MinHeight="500"
|
MinHeight="500"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Window.Styles>
|
<Window.Styles>
|
||||||
<Style Selector="TreeViewItem">
|
<Style Selector="TreeViewItem">
|
||||||
<Setter Property="IsExpanded" Value="True" />
|
<Setter Property="IsExpanded" Value="True" />
|
||||||
|
@@ -8,7 +8,8 @@
|
|||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
x:Class="Ryujinx.Ava.Ui.Windows.ContentDialogOverlayWindow"
|
x:Class="Ryujinx.Ava.Ui.Windows.ContentDialogOverlayWindow"
|
||||||
xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
|
xmlns:window="clr-namespace:Ryujinx.Ava.Ui.Windows"
|
||||||
Title="ContentDialogOverlayWindow">
|
Title="ContentDialogOverlayWindow"
|
||||||
|
Focusable="True">
|
||||||
<window:StyleableWindow.Styles>
|
<window:StyleableWindow.Styles>
|
||||||
<Style Selector="ui|ContentDialog /template/ Panel#LayoutRoot">
|
<Style Selector="ui|ContentDialog /template/ Panel#LayoutRoot">
|
||||||
<Setter Property="Background"
|
<Setter Property="Background"
|
||||||
|
@@ -13,7 +13,8 @@
|
|||||||
d:DesignHeight="800"
|
d:DesignHeight="800"
|
||||||
d:DesignWidth="800"
|
d:DesignWidth="800"
|
||||||
x:CompileBindings="False"
|
x:CompileBindings="False"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<viewModels:ControllerSettingsViewModel />
|
<viewModels:ControllerSettingsViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
|
@@ -14,7 +14,8 @@
|
|||||||
MaxHeight="500"
|
MaxHeight="500"
|
||||||
SizeToContent="Height"
|
SizeToContent="Height"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid Name="DownloadableContentGrid" Margin="15">
|
<Grid Name="DownloadableContentGrid" Margin="15">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@@ -20,7 +20,8 @@
|
|||||||
x:CompileBindings="True"
|
x:CompileBindings="True"
|
||||||
x:DataType="viewModels:MainWindowViewModel"
|
x:DataType="viewModels:MainWindowViewModel"
|
||||||
WindowStartupLocation="CenterScreen"
|
WindowStartupLocation="CenterScreen"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Window.Styles>
|
<Window.Styles>
|
||||||
<Style Selector="TitleBar:fullscreen">
|
<Style Selector="TitleBar:fullscreen">
|
||||||
<Setter Property="Background" Value="#000000" />
|
<Setter Property="Background" Value="#000000" />
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
x:Class="Ryujinx.Ava.Ui.Windows.MotionSettingsWindow">
|
x:Class="Ryujinx.Ava.Ui.Windows.MotionSettingsWindow"
|
||||||
|
Focusable="True">
|
||||||
<Grid Margin="10">
|
<Grid Margin="10">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@@ -6,7 +6,8 @@
|
|||||||
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
|
||||||
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
xmlns:locale="clr-namespace:Ryujinx.Ava.Common.Locale"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
x:Class="Ryujinx.Ava.Ui.Windows.RumbleSettingsWindow">
|
x:Class="Ryujinx.Ava.Ui.Windows.RumbleSettingsWindow"
|
||||||
|
Focusable="True">
|
||||||
<Grid Margin="10">
|
<Grid Margin="10">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@@ -18,7 +18,8 @@
|
|||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
x:CompileBindings="True"
|
x:CompileBindings="True"
|
||||||
x:DataType="viewModels:SettingsViewModel"
|
x:DataType="viewModels:SettingsViewModel"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Design.DataContext>
|
<Design.DataContext>
|
||||||
<viewModels:SettingsViewModel />
|
<viewModels:SettingsViewModel />
|
||||||
</Design.DataContext>
|
</Design.DataContext>
|
||||||
@@ -875,7 +876,7 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
|
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
|
||||||
<TextBlock VerticalAlignment="Center"
|
<TextBlock VerticalAlignment="Center"
|
||||||
Text="{locale:Locale SettingsTabLoggingOpenglLogLevel}"
|
Text="{locale:Locale SettingsTabLoggingGraphicsBackendLogLevel}"
|
||||||
ToolTip.Tip="{locale:Locale OpenGlLogLevel}"
|
ToolTip.Tip="{locale:Locale OpenGlLogLevel}"
|
||||||
Width="285" />
|
Width="285" />
|
||||||
<ComboBox SelectedIndex="{Binding OpenglDebugLevel}"
|
<ComboBox SelectedIndex="{Binding OpenglDebugLevel}"
|
||||||
@@ -883,17 +884,17 @@
|
|||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
ToolTip.Tip="{locale:Locale OpenGlLogLevel}">
|
ToolTip.Tip="{locale:Locale OpenGlLogLevel}">
|
||||||
<ComboBoxItem>
|
<ComboBoxItem>
|
||||||
<TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelNone}" />
|
<TextBlock Text="{locale:Locale SettingsTabLoggingGraphicsBackendLogLevelNone}" />
|
||||||
</ComboBoxItem>
|
</ComboBoxItem>
|
||||||
<ComboBoxItem>
|
<ComboBoxItem>
|
||||||
<TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelError}" />
|
<TextBlock Text="{locale:Locale SettingsTabLoggingGraphicsBackendLogLevelError}" />
|
||||||
</ComboBoxItem>
|
</ComboBoxItem>
|
||||||
<ComboBoxItem>
|
<ComboBoxItem>
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Text="{locale:Locale SettingsTabLoggingOpenglLogLevelPerformance}" />
|
Text="{locale:Locale SettingsTabLoggingGraphicsBackendLogLevelPerformance}" />
|
||||||
</ComboBoxItem>
|
</ComboBoxItem>
|
||||||
<ComboBoxItem>
|
<ComboBoxItem>
|
||||||
<TextBlock Text="{locale:Locale SettingsTabLoggingOpenglLogLevelAll}" />
|
<TextBlock Text="{locale:Locale SettingsTabLoggingGraphicsBackendLogLevelAll}" />
|
||||||
</ComboBoxItem>
|
</ComboBoxItem>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@@ -14,7 +14,8 @@
|
|||||||
MaxHeight="400"
|
MaxHeight="400"
|
||||||
SizeToContent="Height"
|
SizeToContent="Height"
|
||||||
WindowStartupLocation="CenterOwner"
|
WindowStartupLocation="CenterOwner"
|
||||||
mc:Ignorable="d">
|
mc:Ignorable="d"
|
||||||
|
Focusable="True">
|
||||||
<Grid Margin="15">
|
<Grid Margin="15">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@@ -22,7 +22,7 @@ namespace Ryujinx.Graphics.Gpu.Shader.DiskCache
|
|||||||
private const ushort FileFormatVersionMajor = 1;
|
private const ushort FileFormatVersionMajor = 1;
|
||||||
private const ushort FileFormatVersionMinor = 2;
|
private const ushort FileFormatVersionMinor = 2;
|
||||||
private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
|
private const uint FileFormatVersionPacked = ((uint)FileFormatVersionMajor << 16) | FileFormatVersionMinor;
|
||||||
private const uint CodeGenVersion = 3957;
|
private const uint CodeGenVersion = 4029;
|
||||||
|
|
||||||
private const string SharedTocFileName = "shared.toc";
|
private const string SharedTocFileName = "shared.toc";
|
||||||
private const string SharedDataFileName = "shared.data";
|
private const string SharedDataFileName = "shared.data";
|
||||||
|
@@ -8,14 +8,25 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
|
|||||||
{
|
{
|
||||||
static class GlobalToStorage
|
static class GlobalToStorage
|
||||||
{
|
{
|
||||||
public static void RunPass(BasicBlock block, ShaderConfig config)
|
public static void RunPass(BasicBlock block, ShaderConfig config, ref int sbUseMask)
|
||||||
{
|
{
|
||||||
int sbStart = GetStorageBaseCbOffset(config.Stage);
|
int sbStart = GetStorageBaseCbOffset(config.Stage);
|
||||||
|
|
||||||
int sbEnd = sbStart + StorageDescsSize;
|
int sbEnd = sbStart + StorageDescsSize;
|
||||||
|
|
||||||
for (LinkedListNode<INode> node = block.Operations.First; node != null; node = node.Next)
|
for (LinkedListNode<INode> node = block.Operations.First; node != null; node = node.Next)
|
||||||
{
|
{
|
||||||
|
for (int index = 0; index < node.Value.SourcesCount; index++)
|
||||||
|
{
|
||||||
|
Operand src = node.Value.GetSource(index);
|
||||||
|
|
||||||
|
int storageIndex = GetStorageIndex(src, sbStart, sbEnd);
|
||||||
|
|
||||||
|
if (storageIndex >= 0)
|
||||||
|
{
|
||||||
|
sbUseMask |= 1 << storageIndex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!(node.Value is Operation operation))
|
if (!(node.Value is Operation operation))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
@@ -52,6 +63,8 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.SetAccessibleStorageBuffersMask(sbUseMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static LinkedListNode<INode> ReplaceGlobalWithStorage(BasicBlock block, LinkedListNode<INode> node, ShaderConfig config, int storageIndex)
|
private static LinkedListNode<INode> ReplaceGlobalWithStorage(BasicBlock block, LinkedListNode<INode> node, ShaderConfig config, int storageIndex)
|
||||||
|
@@ -11,14 +11,18 @@ namespace Ryujinx.Graphics.Shader.Translation.Optimizations
|
|||||||
{
|
{
|
||||||
RunOptimizationPasses(blocks);
|
RunOptimizationPasses(blocks);
|
||||||
|
|
||||||
|
int sbUseMask = 0;
|
||||||
|
|
||||||
// Those passes are looking for specific patterns and only needs to run once.
|
// Those passes are looking for specific patterns and only needs to run once.
|
||||||
for (int blkIndex = 0; blkIndex < blocks.Length; blkIndex++)
|
for (int blkIndex = 0; blkIndex < blocks.Length; blkIndex++)
|
||||||
{
|
{
|
||||||
GlobalToStorage.RunPass(blocks[blkIndex], config);
|
GlobalToStorage.RunPass(blocks[blkIndex], config, ref sbUseMask);
|
||||||
BindlessToIndexed.RunPass(blocks[blkIndex], config);
|
BindlessToIndexed.RunPass(blocks[blkIndex], config);
|
||||||
BindlessElimination.RunPass(blocks[blkIndex], config);
|
BindlessElimination.RunPass(blocks[blkIndex], config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.SetAccessibleStorageBuffersMask(sbUseMask);
|
||||||
|
|
||||||
// Run optimizations one last time to remove any code that is now optimizable after above passes.
|
// Run optimizations one last time to remove any code that is now optimizable after above passes.
|
||||||
RunOptimizationPasses(blocks);
|
RunOptimizationPasses(blocks);
|
||||||
}
|
}
|
||||||
|
@@ -2,6 +2,7 @@ using Ryujinx.Graphics.Shader.IntermediateRepresentation;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
|
|
||||||
using static Ryujinx.Graphics.Shader.IntermediateRepresentation.OperandHelper;
|
using static Ryujinx.Graphics.Shader.IntermediateRepresentation.OperandHelper;
|
||||||
using static Ryujinx.Graphics.Shader.Translation.GlobalMemory;
|
using static Ryujinx.Graphics.Shader.Translation.GlobalMemory;
|
||||||
@@ -20,10 +21,11 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
{
|
{
|
||||||
BasicBlock block = blocks[blkIndex];
|
BasicBlock block = blocks[blkIndex];
|
||||||
|
|
||||||
for (LinkedListNode<INode> node = block.Operations.First; node != null; node = node.Next)
|
for (LinkedListNode<INode> node = block.Operations.First; node != null;)
|
||||||
{
|
{
|
||||||
if (node.Value is not Operation operation)
|
if (node.Value is not Operation operation)
|
||||||
{
|
{
|
||||||
|
node = node.Next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -42,10 +44,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (UsesGlobalMemory(operation.Inst))
|
LinkedListNode<INode> nextNode = node.Next;
|
||||||
{
|
|
||||||
node = RewriteGlobalAccess(node, config);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (operation is TextureOperation texOp)
|
if (operation is TextureOperation texOp)
|
||||||
{
|
{
|
||||||
@@ -58,7 +57,15 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
node = InsertSnormNormalization(node, config);
|
node = InsertSnormNormalization(node, config);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nextNode = node.Next;
|
||||||
}
|
}
|
||||||
|
else if (UsesGlobalMemory(operation.Inst))
|
||||||
|
{
|
||||||
|
nextNode = RewriteGlobalAccess(node, config)?.Next ?? nextNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
node = nextNode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,7 +78,7 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
bool isStg16Or8 = operation.Inst == Instruction.StoreGlobal16 || operation.Inst == Instruction.StoreGlobal8;
|
bool isStg16Or8 = operation.Inst == Instruction.StoreGlobal16 || operation.Inst == Instruction.StoreGlobal8;
|
||||||
bool isWrite = isAtomic || operation.Inst == Instruction.StoreGlobal || isStg16Or8;
|
bool isWrite = isAtomic || operation.Inst == Instruction.StoreGlobal || isStg16Or8;
|
||||||
|
|
||||||
Operation storageOp;
|
Operation storageOp = null;
|
||||||
|
|
||||||
Operand PrependOperation(Instruction inst, params Operand[] sources)
|
Operand PrependOperation(Instruction inst, params Operand[] sources)
|
||||||
{
|
{
|
||||||
@@ -88,8 +95,14 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
Operand sbBaseAddrLow = Const(0);
|
Operand sbBaseAddrLow = Const(0);
|
||||||
Operand sbSlot = Const(0);
|
Operand sbSlot = Const(0);
|
||||||
|
|
||||||
for (int slot = 0; slot < StorageMaxCount; slot++)
|
int sbUseMask = config.AccessibleStorageBuffersMask;
|
||||||
|
|
||||||
|
while (sbUseMask != 0)
|
||||||
{
|
{
|
||||||
|
int slot = BitOperations.TrailingZeroCount(sbUseMask);
|
||||||
|
|
||||||
|
sbUseMask &= ~(1 << slot);
|
||||||
|
|
||||||
config.SetUsedStorageBuffer(slot, isWrite);
|
config.SetUsedStorageBuffer(slot, isWrite);
|
||||||
|
|
||||||
int cbOffset = GetStorageCbOffset(config.Stage, slot);
|
int cbOffset = GetStorageCbOffset(config.Stage, slot);
|
||||||
@@ -113,49 +126,56 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
sbSlot = PrependOperation(Instruction.ConditionalSelect, inRange, Const(slot), sbSlot);
|
sbSlot = PrependOperation(Instruction.ConditionalSelect, inRange, Const(slot), sbSlot);
|
||||||
}
|
}
|
||||||
|
|
||||||
Operand alignMask = Const(-config.GpuAccessor.QueryHostStorageBufferOffsetAlignment());
|
if (sbUseMask != 0)
|
||||||
|
|
||||||
Operand baseAddrTrunc = PrependOperation(Instruction.BitwiseAnd, sbBaseAddrLow, alignMask);
|
|
||||||
Operand byteOffset = PrependOperation(Instruction.Subtract, addrLow, baseAddrTrunc);
|
|
||||||
|
|
||||||
Operand[] sources = new Operand[operation.SourcesCount];
|
|
||||||
|
|
||||||
sources[0] = sbSlot;
|
|
||||||
|
|
||||||
if (isStg16Or8)
|
|
||||||
{
|
{
|
||||||
sources[1] = byteOffset;
|
Operand alignMask = Const(-config.GpuAccessor.QueryHostStorageBufferOffsetAlignment());
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
sources[1] = PrependOperation(Instruction.ShiftRightU32, byteOffset, Const(2));
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int index = 2; index < operation.SourcesCount; index++)
|
Operand baseAddrTrunc = PrependOperation(Instruction.BitwiseAnd, sbBaseAddrLow, alignMask);
|
||||||
{
|
Operand byteOffset = PrependOperation(Instruction.Subtract, addrLow, baseAddrTrunc);
|
||||||
sources[index] = operation.GetSource(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isAtomic)
|
Operand[] sources = new Operand[operation.SourcesCount];
|
||||||
{
|
|
||||||
Instruction inst = (operation.Inst & ~Instruction.MrMask) | Instruction.MrStorage;
|
|
||||||
|
|
||||||
storageOp = new Operation(inst, operation.Dest, sources);
|
sources[0] = sbSlot;
|
||||||
}
|
|
||||||
else if (operation.Inst == Instruction.LoadGlobal)
|
if (isStg16Or8)
|
||||||
{
|
|
||||||
storageOp = new Operation(Instruction.LoadStorage, operation.Dest, sources);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Instruction storeInst = operation.Inst switch
|
|
||||||
{
|
{
|
||||||
Instruction.StoreGlobal16 => Instruction.StoreStorage16,
|
sources[1] = byteOffset;
|
||||||
Instruction.StoreGlobal8 => Instruction.StoreStorage8,
|
}
|
||||||
_ => Instruction.StoreStorage
|
else
|
||||||
};
|
{
|
||||||
|
sources[1] = PrependOperation(Instruction.ShiftRightU32, byteOffset, Const(2));
|
||||||
|
}
|
||||||
|
|
||||||
storageOp = new Operation(storeInst, null, sources);
|
for (int index = 2; index < operation.SourcesCount; index++)
|
||||||
|
{
|
||||||
|
sources[index] = operation.GetSource(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isAtomic)
|
||||||
|
{
|
||||||
|
Instruction inst = (operation.Inst & ~Instruction.MrMask) | Instruction.MrStorage;
|
||||||
|
|
||||||
|
storageOp = new Operation(inst, operation.Dest, sources);
|
||||||
|
}
|
||||||
|
else if (operation.Inst == Instruction.LoadGlobal)
|
||||||
|
{
|
||||||
|
storageOp = new Operation(Instruction.LoadStorage, operation.Dest, sources);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Instruction storeInst = operation.Inst switch
|
||||||
|
{
|
||||||
|
Instruction.StoreGlobal16 => Instruction.StoreStorage16,
|
||||||
|
Instruction.StoreGlobal8 => Instruction.StoreStorage8,
|
||||||
|
_ => Instruction.StoreStorage
|
||||||
|
};
|
||||||
|
|
||||||
|
storageOp = new Operation(storeInst, null, sources);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (operation.Dest != null)
|
||||||
|
{
|
||||||
|
storageOp = new Operation(Instruction.Copy, operation.Dest, Const(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int index = 0; index < operation.SourcesCount; index++)
|
for (int index = 0; index < operation.SourcesCount; index++)
|
||||||
@@ -164,10 +184,18 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
}
|
}
|
||||||
|
|
||||||
LinkedListNode<INode> oldNode = node;
|
LinkedListNode<INode> oldNode = node;
|
||||||
|
LinkedList<INode> oldNodeList = oldNode.List;
|
||||||
|
|
||||||
node = node.List.AddBefore(node, storageOp);
|
if (storageOp != null)
|
||||||
|
{
|
||||||
|
node = node.List.AddBefore(node, storageOp);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
node = null;
|
||||||
|
}
|
||||||
|
|
||||||
node.List.Remove(oldNode);
|
oldNodeList.Remove(oldNode);
|
||||||
|
|
||||||
return node;
|
return node;
|
||||||
}
|
}
|
||||||
|
@@ -65,6 +65,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
public UInt128 NextInputAttributesComponents { get; private set; }
|
public UInt128 NextInputAttributesComponents { get; private set; }
|
||||||
public UInt128 ThisInputAttributesComponents { get; private set; }
|
public UInt128 ThisInputAttributesComponents { get; private set; }
|
||||||
|
|
||||||
|
public int AccessibleStorageBuffersMask { get; private set; }
|
||||||
|
|
||||||
private int _usedConstantBuffers;
|
private int _usedConstantBuffers;
|
||||||
private int _usedStorageBuffers;
|
private int _usedStorageBuffers;
|
||||||
private int _usedStorageBuffersWrite;
|
private int _usedStorageBuffersWrite;
|
||||||
@@ -98,6 +100,8 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
GpuAccessor = gpuAccessor;
|
GpuAccessor = gpuAccessor;
|
||||||
Options = options;
|
Options = options;
|
||||||
|
|
||||||
|
AccessibleStorageBuffersMask = (1 << GlobalMemory.StorageMaxCount) - 1;
|
||||||
|
|
||||||
UsedInputAttributesPerPatch = new HashSet<int>();
|
UsedInputAttributesPerPatch = new HashSet<int>();
|
||||||
UsedOutputAttributesPerPatch = new HashSet<int>();
|
UsedOutputAttributesPerPatch = new HashSet<int>();
|
||||||
|
|
||||||
@@ -400,6 +404,11 @@ namespace Ryujinx.Graphics.Shader.Translation
|
|||||||
UsedFeatures |= flags;
|
UsedFeatures |= flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void SetAccessibleStorageBuffersMask(int mask)
|
||||||
|
{
|
||||||
|
AccessibleStorageBuffersMask = mask;
|
||||||
|
}
|
||||||
|
|
||||||
public void SetUsedConstantBuffer(int slot)
|
public void SetUsedConstantBuffer(int slot)
|
||||||
{
|
{
|
||||||
_usedConstantBuffers |= 1 << slot;
|
_usedConstantBuffers |= 1 << slot;
|
||||||
|
@@ -9,7 +9,7 @@
|
|||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.2.0" />
|
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.4.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@@ -12,9 +12,11 @@ namespace Ryujinx.Ui.App.Common
|
|||||||
public string Developer { get; set; }
|
public string Developer { get; set; }
|
||||||
public string Version { get; set; }
|
public string Version { get; set; }
|
||||||
public string TimePlayed { get; set; }
|
public string TimePlayed { get; set; }
|
||||||
|
public double TimePlayedNum { get; set; }
|
||||||
public string LastPlayed { get; set; }
|
public string LastPlayed { get; set; }
|
||||||
public string FileExtension { get; set; }
|
public string FileExtension { get; set; }
|
||||||
public string FileSize { get; set; }
|
public string FileSize { get; set; }
|
||||||
|
public double FileSizeBytes { get; set; }
|
||||||
public string Path { get; set; }
|
public string Path { get; set; }
|
||||||
public BlitStruct<ApplicationControlProperty> ControlHolder { get; set; }
|
public BlitStruct<ApplicationControlProperty> ControlHolder { get; set; }
|
||||||
}
|
}
|
||||||
|
@@ -465,9 +465,11 @@ namespace Ryujinx.Ui.App.Common
|
|||||||
Developer = developer,
|
Developer = developer,
|
||||||
Version = version,
|
Version = version,
|
||||||
TimePlayed = ConvertSecondsToReadableString(appMetadata.TimePlayed),
|
TimePlayed = ConvertSecondsToReadableString(appMetadata.TimePlayed),
|
||||||
|
TimePlayedNum = appMetadata.TimePlayed,
|
||||||
LastPlayed = appMetadata.LastPlayed,
|
LastPlayed = appMetadata.LastPlayed,
|
||||||
FileExtension = Path.GetExtension(applicationPath).ToUpper().Remove(0, 1),
|
FileExtension = Path.GetExtension(applicationPath).ToUpper().Remove(0, 1),
|
||||||
FileSize = (fileSize < 1) ? (fileSize * 1024).ToString("0.##") + "MiB" : fileSize.ToString("0.##") + "GiB",
|
FileSize = (fileSize < 1) ? (fileSize * 1024).ToString("0.##") + " MiB" : fileSize.ToString("0.##") + " GiB",
|
||||||
|
FileSizeBytes = fileSize,
|
||||||
Path = applicationPath,
|
Path = applicationPath,
|
||||||
ControlHolder = controlHolder
|
ControlHolder = controlHolder
|
||||||
};
|
};
|
||||||
@@ -742,19 +744,19 @@ namespace Ryujinx.Ui.App.Common
|
|||||||
|
|
||||||
if (seconds < secondsPerMinute)
|
if (seconds < secondsPerMinute)
|
||||||
{
|
{
|
||||||
readableString = $"{seconds}s";
|
readableString = $"{seconds} seconds";
|
||||||
}
|
}
|
||||||
else if (seconds < secondsPerHour)
|
else if (seconds < secondsPerHour)
|
||||||
{
|
{
|
||||||
readableString = $"{Math.Round(seconds / secondsPerMinute, 2, MidpointRounding.AwayFromZero)} mins";
|
readableString = $"{Math.Round(seconds / secondsPerMinute, 0, MidpointRounding.AwayFromZero)} minutes";
|
||||||
}
|
}
|
||||||
else if (seconds < secondsPerDay)
|
else if (seconds < secondsPerDay)
|
||||||
{
|
{
|
||||||
readableString = $"{Math.Round(seconds / secondsPerHour, 2, MidpointRounding.AwayFromZero)} hrs";
|
readableString = $"{Math.Round(seconds / secondsPerHour, 1, MidpointRounding.AwayFromZero)} hours";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
readableString = $"{Math.Round(seconds / secondsPerDay, 2, MidpointRounding.AwayFromZero)} days";
|
readableString = $"{Math.Round(seconds / secondsPerDay, 1, MidpointRounding.AwayFromZero)} days";
|
||||||
}
|
}
|
||||||
|
|
||||||
return readableString;
|
return readableString;
|
||||||
|
@@ -680,7 +680,7 @@ namespace Ryujinx.Ui.Common.Configuration
|
|||||||
Hid.EnableMouse.Value = false;
|
Hid.EnableMouse.Value = false;
|
||||||
Hid.Hotkeys.Value = new KeyboardHotkeys
|
Hid.Hotkeys.Value = new KeyboardHotkeys
|
||||||
{
|
{
|
||||||
ToggleVsync = Key.Tab,
|
ToggleVsync = Key.F1,
|
||||||
ToggleMute = Key.F2,
|
ToggleMute = Key.F2,
|
||||||
Screenshot = Key.F8,
|
Screenshot = Key.F8,
|
||||||
ShowUi = Key.F4,
|
ShowUi = Key.F4,
|
||||||
@@ -818,7 +818,7 @@ namespace Ryujinx.Ui.Common.Configuration
|
|||||||
|
|
||||||
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
||||||
{
|
{
|
||||||
ToggleVsync = Key.Tab
|
ToggleVsync = Key.F1
|
||||||
};
|
};
|
||||||
|
|
||||||
configurationFileUpdated = true;
|
configurationFileUpdated = true;
|
||||||
@@ -999,7 +999,7 @@ namespace Ryujinx.Ui.Common.Configuration
|
|||||||
|
|
||||||
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
||||||
{
|
{
|
||||||
ToggleVsync = Key.Tab,
|
ToggleVsync = Key.F1,
|
||||||
Screenshot = Key.F8
|
Screenshot = Key.F8
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1012,7 +1012,7 @@ namespace Ryujinx.Ui.Common.Configuration
|
|||||||
|
|
||||||
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
configurationFileFormat.Hotkeys = new KeyboardHotkeys
|
||||||
{
|
{
|
||||||
ToggleVsync = Key.Tab,
|
ToggleVsync = Key.F1,
|
||||||
Screenshot = Key.F8,
|
Screenshot = Key.F8,
|
||||||
ShowUi = Key.F4
|
ShowUi = Key.F4
|
||||||
};
|
};
|
||||||
|
@@ -9,46 +9,56 @@ namespace Ryujinx.Ui.Helper
|
|||||||
{
|
{
|
||||||
string aValue = model.GetValue(a, 5).ToString();
|
string aValue = model.GetValue(a, 5).ToString();
|
||||||
string bValue = model.GetValue(b, 5).ToString();
|
string bValue = model.GetValue(b, 5).ToString();
|
||||||
|
float aFloat;
|
||||||
|
float bFloat;
|
||||||
|
|
||||||
if (aValue.Length > 4 && aValue[^4..] == "mins")
|
if (aValue.Length > 7 && aValue[^7..] == "minutes")
|
||||||
{
|
{
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 60).ToString();
|
aValue = aValue.Replace("minutes", "");
|
||||||
|
aFloat = (float.Parse(aValue) * 60);
|
||||||
}
|
}
|
||||||
else if (aValue.Length > 3 && aValue[^3..] == "hrs")
|
else if (aValue.Length > 5 && aValue[^5..] == "hours")
|
||||||
{
|
{
|
||||||
aValue = (float.Parse(aValue[0..^4]) * 3600).ToString();
|
aValue = aValue.Replace("hours", "");
|
||||||
|
aFloat = (float.Parse(aValue) * 3600);
|
||||||
}
|
}
|
||||||
else if (aValue.Length > 4 && aValue[^4..] == "days")
|
else if (aValue.Length > 4 && aValue[^4..] == "days")
|
||||||
{
|
{
|
||||||
aValue = (float.Parse(aValue[0..^5]) * 86400).ToString();
|
aValue = aValue.Replace("days", "");
|
||||||
|
aFloat = (float.Parse(aValue) * 86400);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
aValue = aValue[0..^1];
|
aValue = aValue.Replace("seconds", "");
|
||||||
|
aFloat = float.Parse(aValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bValue.Length > 4 && bValue[^4..] == "mins")
|
if (bValue.Length > 7 && bValue[^7..] == "minutes")
|
||||||
{
|
{
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 60).ToString();
|
bValue = bValue.Replace("minutes", "");
|
||||||
|
bFloat = (float.Parse(bValue) * 60);
|
||||||
}
|
}
|
||||||
else if (bValue.Length > 3 && bValue[^3..] == "hrs")
|
else if (bValue.Length > 5 && bValue[^5..] == "hours")
|
||||||
{
|
{
|
||||||
bValue = (float.Parse(bValue[0..^4]) * 3600).ToString();
|
bValue = bValue.Replace("hours", "");
|
||||||
|
bFloat = (float.Parse(bValue) * 3600);
|
||||||
}
|
}
|
||||||
else if (bValue.Length > 4 && bValue[^4..] == "days")
|
else if (bValue.Length > 4 && bValue[^4..] == "days")
|
||||||
{
|
{
|
||||||
bValue = (float.Parse(bValue[0..^5]) * 86400).ToString();
|
bValue = bValue.Replace("days", "");
|
||||||
|
bFloat = (float.Parse(bValue) * 86400);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bValue = bValue[0..^1];
|
bValue = bValue[0..^8];
|
||||||
|
bFloat = float.Parse(bValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (float.Parse(aValue) > float.Parse(bValue))
|
if (aFloat > bFloat)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
else if (float.Parse(bValue) > float.Parse(aValue))
|
else if (bFloat > aFloat)
|
||||||
{
|
{
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user