Compare commits
80 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5046f84da8 | |||
| 58b2a8a810 | |||
| b50ace27ee | |||
| 93eb41e531 | |||
| d8acbdb71b | |||
| dcc95778fd | |||
| 2392a1cfb6 | |||
| abd88d5498 | |||
| e60e448b10 | |||
| 0bb092b0d9 | |||
| 3928495e7e | |||
| 2a6e734fa2 | |||
| 239841ec93 | |||
| 629d1f3609 | |||
| e4bb934438 | |||
| 54bb5b79f8 | |||
| a18f78367d | |||
| 29dfd96ae6 | |||
| 0d92c21ca7 | |||
| b4f4ec7cbb | |||
| 7034974dce | |||
| 7d41cc6a72 | |||
| 8315f15cc1 | |||
| f63818be3c | |||
| 8cce12f3d3 | |||
| 2abf124f09 | |||
| 2afdafc5cb | |||
| 6a230bec1a | |||
| 18dabbaaff | |||
| f24b7015be | |||
| 5738b48694 | |||
| 3adf212933 | |||
| 60645dc51c | |||
| b9f3e3b258 | |||
| f6287ea7cd | |||
| 7867c19b2c | |||
| b1ec27dfce | |||
| 3760b8c097 | |||
| 34530edd39 | |||
| a3c0e0ac2d | |||
| 39e3a56575 | |||
| 66c26e39fe | |||
| 7389b35a98 | |||
| a96b601cb5 | |||
| 567a203f56 | |||
| 1cd270cf4f | |||
| b053517c67 | |||
| 1f5b866290 | |||
| 57d56086c4 | |||
| ad4ceaf7e3 | |||
| b0d0b61f88 | |||
| e7eb4dba78 | |||
| d82b333383 | |||
| 8e90752f62 | |||
| c28c19dffa | |||
| 3cadb3715b | |||
| a17e295a13 | |||
| d7c932cc93 | |||
| 3334e9aafb | |||
| 21a4752401 | |||
| e537cba7f3 | |||
| 9578c4b29c | |||
| 963fb7c803 | |||
| 3ba40e7274 | |||
| fe13539d72 | |||
| be218cc020 | |||
| c3cbe2d4d0 | |||
| 79b162a37c | |||
| f3fbb3812f | |||
| d8caa74233 | |||
| 17fe74ef11 | |||
| 73713737c6 | |||
| 61f3ce643c | |||
| f7f6a4cde4 | |||
| 65fa1a37e2 | |||
| 41192e6e3d | |||
| d8f2e22bf8 | |||
| 51506ef836 | |||
| 0d3cef65ad | |||
| c2794985b2 |
@@ -1,8 +1,4 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: yuzu Discord
|
||||
url: https://discord.com/invite/u77vRWY
|
||||
about: If you are experiencing an issue with yuzu, and you need tech support, or if you have a general question, try asking in the official yuzu Discord linked here. Piracy is not allowed.
|
||||
- name: Community forums
|
||||
url: https://community.citra-emu.org
|
||||
about: This is an alternative place for tech support, however helpers there are not as active.
|
||||
- name: Eden Discord
|
||||
url: https://discord.gg/HstXbPch7X
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
# Contributing
|
||||
|
||||
**The Contributor's Guide has moved to [the yuzu wiki](https://github.com/yuzu-emu/yuzu/wiki/Contributing).**
|
||||
You want to contribute? Please consult [the development guide](./docs/Development.md).
|
||||
|
||||
Don't forget to [get a git account](./docs/SIGNUP.md) - not a requirement per se but it's highly recommended.
|
||||
|
||||
@@ -21,7 +21,7 @@ It is written in C++ with portability in mind, and we actively maintain builds f
|
||||
|
||||
<p align="center">
|
||||
</a>
|
||||
<a href="https://discord.gg/kXAmGCXBGD">
|
||||
<a href="https://discord.gg/HstXbPch7X">
|
||||
<img src="https://img.shields.io/discord/1367654015269339267?color=5865F2&label=Eden&logo=discord&logoColor=white"
|
||||
alt="Discord">
|
||||
</a>
|
||||
@@ -52,8 +52,8 @@ Check out our [website](https://eden-emu.dev) for the latest news on exciting fe
|
||||
|
||||
## Development
|
||||
|
||||
Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/kXAmGCXBGD) or [Revolt](https://rvlt.gg/qKgFEAbH).
|
||||
You can also follow us on [X (Twitter)](https://x.com/edenemuofficial) for updates and announcements.
|
||||
Most of the development happens on our Git server. It is also where [our central repository](https://git.eden-emu.dev/eden-emu/eden) is hosted. For development discussions, please join us on [Discord](https://discord.gg/HstXbPch7X) or [Revolt](https://rvlt.gg/qKgFEAbH).
|
||||
You can also follow us on [X (Twitter)](https://nitter.poast.org/edenemuofficial) for updates and announcements.
|
||||
|
||||
If you would like to contribute, we are open to new developers and pull requests. Please ensure that your work is of a high standard and properly documented. You can also contact any of the developers on Discord or Revolt to learn more about the current state of the emulator.
|
||||
|
||||
@@ -82,7 +82,7 @@ Any donations received will go towards things such as:
|
||||
* Additional hardware (e.g. GPUs as needed to improve rendering support, other peripherals to add support for, etc.)
|
||||
* CI Infrastructure
|
||||
|
||||
If you would prefer to support us in a different way, please join our [Discord](https://discord.gg/edenemu) and talk to Camille or any of our other developers.
|
||||
If you would prefer to support us in a different way, please join our [Discord](https://discord.gg/HstXbPch7X) and talk to Camille or any of our other developers.
|
||||
|
||||
## License
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 386 KiB After Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 9.2 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 9.2 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
@@ -2206,7 +2206,7 @@ When a program attempts to open the controller applet, it is immediately closed.
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="31"/>
|
||||
<source><html><head/><body><p><span style=" font-weight:600;">For debugging only.</span><br/>If you're not sure what these do, keep all of these enabled. <br/>These settings, when disabled, only take effect when CPU Debugging is enabled. </p></body></html></source>
|
||||
<translation><html><head/><body><p><span style=" font-weight:600;">للتصحيح فقط.</span><br/>إذا لم تكن متأكدًا من وظيفة هذه الإعدادات، فاتركها جميعًا ممكّنة. <br/>عند تعطيل هذه الإعدادات، لا تصبح سارية المفعول إلا عند تمكين تصحيح أخطاء وحدة المعالجة المركزية.</p></body></html></translation>
|
||||
<translation><html><head/><body><p><span style=" font-weight:600;">للتصحيح فقط.</span><br/>إذا لم تكن متأكدًا من وظيفة هذه الخيارات، فاتركها جميعًا ممكّنة. <br/>عند تعطيل هذه الإعدادات، لا تصبح سارية المفعول إلا عند تمكين تصحيح أخطاء وحدة المعالجة المركزية. </p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_cpu_debug.ui" line="41"/>
|
||||
@@ -3687,7 +3687,7 @@ When a program attempts to open the controller applet, it is immediately closed.
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="722"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="2796"/>
|
||||
<source>Modifier Range: 0%</source>
|
||||
<translation>0% :نطاق التعديل</translation>
|
||||
<translation>0% :تعديل النطاق</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.ui" line="755"/>
|
||||
@@ -3915,7 +3915,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="712"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1073"/>
|
||||
<source>Modifier Range: %1%</source>
|
||||
<translation>%1% :نطاق التعديل</translation>
|
||||
<translation>%1% :تعديل النطاق</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="753"/>
|
||||
@@ -3946,7 +3946,7 @@ To invert the axes, first move your joystick vertically, and then horizontally.<
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1118"/>
|
||||
<source>GameCube Controller</source>
|
||||
<translation>ذراع تحكم جيم كيوب</translation>
|
||||
<translation>GameCube ذراع تحكم</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_input_player.cpp" line="1127"/>
|
||||
@@ -4579,7 +4579,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="220"/>
|
||||
<source>Enter a username for the new user:</source>
|
||||
<translation>:أدخل اسم مستخدم للمستخدم الجديد</translation>
|
||||
<translation>أدخل اسم مستخدم للمستخدم الجديد:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="241"/>
|
||||
@@ -5723,44 +5723,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL غير متوفر!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL لا يتم دعم السياقات المشتركة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>OpenGL لم يتم تجميع إيدن بدعم</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL حدث خطأ أثناء تهيئة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>أو قد لا يكون لديك أحدث برنامج تشغيل للرسومات OpenGL قد لا تدعم بطاقة الرسومات الخاصة بك</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL 4.6 حدث خطأ أثناء تهيئة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>أو قد لا يكون لديك أحدث برنامج تشغيل للرسومات OpenGL 4.6 قد لا تدعم بطاقة الرسومات الخاصة بك.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>قد لا تدعم وحدة معالجة الرسومات لديك ملحقًا واحدًا أو أكثر من ملحقات OpenGL المطلوبة. يُرجى التأكد من تثبيت أحدث برنامج تشغيل للرسومات.<br><br>GL Renderer:<br>1%<br><br>إضافات غير مدعومة: <br>2%</translation>
|
||||
</message>
|
||||
@@ -7359,12 +7359,12 @@ Please, only use this feature to install updates and DLC.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3234"/>
|
||||
<source>Function Disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>الوظيفة معطلة</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3235"/>
|
||||
<source>Compatibility list reporting is currently disabled. Check back later!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>تقارير قائمة التوافق معطلة حاليًا. يرجى التحقق لاحقًا!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3273"/>
|
||||
@@ -9647,7 +9647,7 @@ This is recommended if you want to share data between emulators.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/applets/qt_controller.cpp" line="489"/>
|
||||
<source>GameCube Controller</source>
|
||||
<translation>ذراع تحكم جيم كيوب</translation>
|
||||
<translation>GameCube ذراع تحكم</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/applets/qt_controller.cpp" line="498"/>
|
||||
|
||||
@@ -5656,44 +5656,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL no disponible!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Error al inicialitzar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>La seva GPU no suporta OpenGL, o no té instal·lat els últims controladors gràfics.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Error inicialitzant OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>La seva GPU no suporta OpenGL 4.6, o no té instal·lats els últims controladors gràfics.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>És possible que la seva GPU no suporti una o més extensions necessàries d'OpenGL. Si us plau, asseguris de tenir els últims controladors de la tarjeta gràfica.<br><br>GL Renderer:<br>%1<br><br>Extensions no suportades:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5647,44 +5647,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL není k dispozici!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Chyba při inicializaci OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL nebo nejsou nainstalovány nejnovější ovladače.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Chyba při inicializaci OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Vaše grafická karta pravděpodobně nepodporuje OpenGL 4.6 nebo nejsou nainstalovány nejnovější ovladače.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Vaše grafická karta pravděpodobně nepodporuje jedno nebo více rozšíření OpenGL. Ujistěte se prosím, že jsou nainstalovány nejnovější ovladače.<br><br>GL Renderer:<br>%1<br><br>Nepodporované rozšíření:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5655,44 +5655,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
||||
@@ -5658,44 +5658,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL nicht verfügbar!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Gemeinsame OpenGL-Kontexte werden nicht unterstützt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fehler beim Initialisieren von OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Deine Grafikkarte unterstützt kein OpenGL oder du hast nicht den neusten Treiber installiert.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Fehler beim Initialisieren von OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Deine Grafikkarte unterstützt OpenGL 4.6 nicht, oder du benutzt nicht die neuste Treiberversion.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Deine Grafikkarte unterstützt anscheinend nicht eine oder mehrere von yuzu benötigten OpenGL-Erweiterungen. Bitte stelle sicher, dass du den neusten Grafiktreiber installiert hast.<br><br>GL Renderer:<br>%1<br><br>Nicht unterstützte Erweiterungen:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5646,44 +5646,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>Το OpenGL δεν είναι διαθέσιμο!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Σφάλμα κατα την αρχικοποίηση του OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
||||
@@ -5723,44 +5723,44 @@ Por favor, vaya a Configuración -> Sistema -> Red y selecciona una interf
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>¡OpenGL no está disponible!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Los contextos compartidos de OpenGL no son compatibles.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden no ha sido compilado con soporte para OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>¡Error al inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Tu GPU no soporta OpenGL, o no tienes instalados los últimos controladores gráficos.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>¡Error al iniciar OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Tu GPU no soporta OpenGL 4.6, o no tienes instalado el último controlador de la tarjeta gráfica.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Es posible que la GPU no soporte una o más extensiones necesarias de OpenGL . Por favor, asegúrate de tener los últimos controladores de la tarjeta gráfica.<br><br>GL Renderer:<br>%1<br><br>Extensiones no soportadas:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5622,44 +5622,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>openGL ei ole saatavilla!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Virhe käynnistäessä OpenGL ydintä!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
|
||||
@@ -5727,44 +5727,44 @@ Veuillez aller dans Configurer -> Système -> Réseau puis en choisir une.
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL n'est pas disponible !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Les contextes OpenGL partagés ne sont pas pris en charge.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden n'a pas été compilé avec le support OpenGL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erreur lors de l'initialisation d'OpenGL !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Votre GPU peut ne pas prendre en charge OpenGL, ou vous n'avez pas les derniers pilotes graphiques.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Erreur lors de l'initialisation d'OpenGL 4.6 !</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Votre GPU peut ne pas prendre en charge OpenGL 4.6 ou vous ne disposez pas du dernier pilote graphique: %1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Votre GPU peut ne pas prendre en charge une ou plusieurs extensions OpenGL requises. Veuillez vous assurer que vous disposez du dernier pilote graphique.<br><br>GL Renderer :<br>%1<br><br>Extensions non prises en charge :<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5640,44 +5640,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL nem elérhető!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Hiba történt az OpenGL inicializálása során!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Lehetséges, hogy a GPU-d nem támogatja az OpenGL-t, vagy nem a legfrissebb grafikus illesztőprogram van telepítve.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Hiba történt az OpenGL 4.6 inicializálása során!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Lehetséges, hogy a GPU-d nem támogatja az OpenGL 4.6-ot, vagy nem a legfrissebb grafikus illesztőprogram van telepítve.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Előfordulhat, hogy a GPU-d nem támogat egy vagy több szükséges OpenGL kiterjesztést. Győződj meg róla, hogy a legújabb videokártya-illesztőprogramot használod.<br><br>GL Renderer:<br>%1<br><br>Nem támogatott kiterjesztések:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5678,44 +5678,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL tidak tersedia!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Terjadi kesalahan menginisialisasi OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>VGA anda mungkin tidak mendukung OpenGL, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Terjadi kesalahan menginisialisasi OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>VGA anda mungkin tidak mendukung OpenGL 4.6, atau anda tidak memiliki pemacu piranti (driver) grafis terbaharu.<br><br>Pemuat GL:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>VGA anda mungkin tidak mendukung satu atau lebih ekstensi OpenGL. Mohon pastikan bahwa anda memiliki pemacu piranti (driver) grafis terbaharu.<br><br>Pemuat GL:<br>%1<br><br>Ekstensi yang tidak didukung:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5727,44 +5727,44 @@ Vai su Configura -> Sistema -> Rete e selezionane una.</translation>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL non disponibile!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Gli shared context di OpenGL non sono supportati.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden non è stato compilato con il supporto a OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Errore durante l'inizializzazione di OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>La tua GPU potrebbe non supportare OpenGL, o non hai installato l'ultima versione dei driver video.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Errore durante l'inizializzazione di OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>La tua GPU potrebbe non supportare OpenGL 4.6, o non hai installato l'ultima versione dei driver video.<br><br>Renderer GL:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>La tua GPU potrebbe non supportare una o più estensioni OpenGL richieste. Assicurati di aver installato i driver video più recenti.<br><br>Renderer GL:<br>%1<br><br>Estensioni non supportate:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5659,44 +5659,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGLは使用できません!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL初期化エラー</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>GPUがOpenGLをサポートしていないか、グラフィックスドライバーが最新ではありません。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL4.6初期化エラー!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPUがOpenGL4.6をサポートしていないか、グラフィックスドライバーが最新ではありません。<br><br>GL レンダラ:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPUが1つ以上の必要なOpenGL拡張機能をサポートしていない可能性があります。最新のグラフィックドライバを使用していることを確認してください。<br><br>GL レンダラ:<br>%1<br><br>サポートされていない拡張機能:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5660,44 +5660,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL을 사용할 수 없습니다!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL 공유 컨텍스트는 지원되지 않습니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGL을 초기화하는 동안 오류가 발생했습니다!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>사용하시는 GPU가 OpenGL을 지원하지 않거나, 최신 그래픽 드라이버가 설치되어 있지 않습니다.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGL 4.6 초기화 중 오류 발생!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>사용하시는 GPU가 OpenGL 4.6을 지원하지 않거나 최신 그래픽 드라이버가 설치되어 있지 않습니다. <br><br>GL 렌더링 장치:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>사용하시는 GPU가 1개 이상의 OpenGL 확장 기능을 지원하지 않습니다. 최신 그래픽 드라이버가 설치되어 있는지 확인하세요. <br><br>GL 렌더링 장치:<br>%1<br><br>지원하지 않는 확장 기능:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5660,44 +5660,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL ikke tilgjengelig!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Delte OpenGL-kontekster støttes ikke.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Feil under initialisering av OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Det kan hende at GPU-en din ikke støtter OpenGL, eller at du ikke har den nyeste grafikkdriveren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Feil under initialisering av OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Det kan hende at GPU-en din ikke støtter OpenGL 4.6, eller at du ikke har den nyeste grafikkdriveren.<br><br>GL-renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Det kan hende at GPU-en din ikke støtter én eller flere nødvendige OpenGL-utvidelser. Vennligst sørg for at du har den nyeste grafikkdriveren.<br><br>GL-renderer: <br>%1<br><br>Ikke-støttede utvidelser:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5658,44 +5658,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL niet beschikbaar!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL gedeelde contexten worden niet ondersteund.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fout tijdens het initialiseren van OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Je GPU ondersteunt mogelijk geen OpenGL, of je hebt niet de laatste grafische stuurprogramma.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Fout tijdens het initialiseren van OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Je GPU ondersteunt mogelijk OpenGL 4.6 niet, of je hebt niet het laatste grafische stuurprogramma.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Je GPU ondersteunt mogelijk een of meer vereiste OpenGL-extensies niet. Zorg ervoor dat je het laatste grafische stuurprogramma hebt.<br><br>GL Renderer:<br>%1<br><br>Ondersteunde extensies:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5723,44 +5723,44 @@ Przejdź do sekcji Konfiguracja -> System -> Sieć i dokonaj wyboru.</tran
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL niedostępny!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Współdzielone konteksty OpenGL nie są obsługiwane.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden nie został skompilowany z obsługą OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Błąd podczas inicjowania OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Twoja karta graficzna może nie obsługiwać OpenGL lub nie masz najnowszych sterowników karty graficznej.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Błąd podczas inicjowania OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Twoja karta graficzna może nie obsługiwać OpenGL 4.6 lub nie masz najnowszych sterowników karty graficznej.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Twoja karta graficzna może nie obsługiwać co najmniej jednego wymaganego rozszerzenia OpenGL. Upewnij się, że masz najnowsze sterowniki karty graficznej<br><br>GL Renderer:<br>%1<br><br>Nieobsługiwane rozszerzenia:<br>%2</translation>
|
||||
</message>
|
||||
@@ -7354,12 +7354,12 @@ Proszę, używaj tej funkcji tylko do instalowania łatek i DLC.</translation>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3234"/>
|
||||
<source>Function Disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Funkcja wyłączona</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3235"/>
|
||||
<source>Compatibility list reporting is currently disabled. Check back later!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Zgłaszanie do listy kompatybilności jest obecnie wyłączone. Spróbuj ponownie później!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3273"/>
|
||||
|
||||
@@ -5668,44 +5668,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL não está disponível!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Shared contexts do OpenGL não são suportados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erro ao inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>O teu GPU pode não suportar OpenGL 4.6, ou não tem os drivers gráficos mais recentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.<br><br>Renderizador GL:<br>%1<br><br>Extensões não suportadas:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5661,44 +5661,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL não está disponível!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Shared contexts do OpenGL não são suportados.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Erro ao inicializar OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>O seu GPU pode não suportar OpenGL, ou não tem os drivers gráficos mais recentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Erro ao inicializar o OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>O teu GPU pode não suportar OpenGL 4.6, ou não tem os drivers gráficos mais recentes.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Sua GPU pode não suportar uma ou mais extensões necessárias do OpenGL. Verifique se você possui a última versão dos drivers gráficos.<br><br>Renderizador GL:<br>%1<br><br>Extensões não suportadas:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5725,44 +5725,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL не доступен!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Общие контексты OpenGL не поддерживаются.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden не был скомпилирован с поддержкой OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Ошибка при инициализации OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Ваш ГП может не поддерживать OpenGL, или у вас установлен устаревший графический драйвер.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Ошибка при инициализации OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Ваш ГП может не поддерживать OpenGL 4.6, или у вас установлен устаревший графический драйвер.<br><br>Рендерер GL:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Ваш ГП может не поддерживать одно или несколько требуемых расширений OpenGL. Пожалуйста, убедитесь в том, что у вас установлен последний графический драйвер.<br><br>Рендерер GL:<br>%1<br><br>Неподдерживаемые расширения:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5731,44 +5731,44 @@ Gå till Konfigurera -> System -> Nätverk och gör ett val.</translation>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL är inte tillgängligt!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Delade OpenGL-kontexter stöds inte.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden har inte kompilerats med OpenGL-stöd.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Fel vid initiering av OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Din GPU kanske inte stöder OpenGL, eller så har du inte den senaste grafikdrivrutinen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Fel vid initiering av OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Din GPU kanske inte stöder OpenGL 4.6, eller så har du inte den senaste grafikdrivrutinen.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Din GPU kanske inte stöder ett eller flera av de nödvändiga OpenGL-tilläggen. Se till att du har den senaste grafikdrivrutinen.<br><br>GL Renderer:<br>%1<br><br>Tillägg som inte stöds:<br>%2</translation>
|
||||
</message>
|
||||
@@ -7355,12 +7355,12 @@ Använd endast denna funktion för att installera uppdateringar och DLC.</transl
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3234"/>
|
||||
<source>Function Disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Funktion inaktiverad</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3235"/>
|
||||
<source>Compatibility list reporting is currently disabled. Check back later!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Rapportering till kompatibilitetslistan är för närvarande inaktiverad. Kom tillbaka senare!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3273"/>
|
||||
|
||||
@@ -5657,44 +5657,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL kullanıma uygun değil!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>OpenGL paylaşılan bağlam desteklenmiyor.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>OpenGl başlatılırken bir hata oluştu!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>GPU'nuz OpenGL desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>OpenGl 4.6 başlatılırken bir hata oluştu!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU'nuz OpenGL 4.6'yı desteklemiyor veya güncel bir grafik sürücüsüne sahip değilsiniz.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU'nuz gereken bir yada daha fazla OpenGL eklentisini desteklemiyor Lütfen güncel bir grafik sürücüsüne sahip olduğunuzdan emin olun.<br><br>GL Renderer:<br>%1<br><br> Desteklenmeyen Eklentiler:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -4592,7 +4592,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="297"/>
|
||||
<source>Error deleting image</source>
|
||||
<translation>Помилка видалення зображення</translation>
|
||||
<translation>Помилка під час видалення зображення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="298"/>
|
||||
@@ -4602,7 +4602,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="306"/>
|
||||
<source>Error deleting file</source>
|
||||
<translation>Помилка видалення файлу</translation>
|
||||
<translation>Помилка під час видалення файлу</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="307"/>
|
||||
@@ -4612,7 +4612,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="314"/>
|
||||
<source>Error creating user image directory</source>
|
||||
<translation>Помилка створення теки користувацьких зображень</translation>
|
||||
<translation>Помилка під час створення теки користувацьких зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="315"/>
|
||||
@@ -4622,7 +4622,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="320"/>
|
||||
<source>Error saving user image</source>
|
||||
<translation>Помилка збереження зображення користувача</translation>
|
||||
<translation>Помилка під час збереження зображення користувача</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="321"/>
|
||||
@@ -4653,7 +4653,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="369"/>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="375"/>
|
||||
<source>Error loading archive</source>
|
||||
<translation>Помилка завантаження архіву</translation>
|
||||
<translation>Помилка під час завантаження архіву</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="370"/>
|
||||
@@ -4668,7 +4668,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="381"/>
|
||||
<source>Error extracting archive</source>
|
||||
<translation>Помилка видобування архіву</translation>
|
||||
<translation>Помилка під час видобування архіву</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="382"/>
|
||||
@@ -4678,7 +4678,7 @@ Current values are %1% and %2% respectively.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="387"/>
|
||||
<source>Error finding image directory</source>
|
||||
<translation>Помилка виявлення теки зображень</translation>
|
||||
<translation>Помилка під час виявлення теки зображень</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_profile_manager.cpp" line="388"/>
|
||||
@@ -4829,7 +4829,7 @@ UUID: %2</translation>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="282"/>
|
||||
<source>Error enabling ring input</source>
|
||||
<translation>Помилка увімкнення введення Ring</translation>
|
||||
<translation>Помилка під час увімкнення введення Ring</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/configuration/configure_ringcon.cpp" line="288"/>
|
||||
@@ -5726,44 +5726,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL недоступний!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Спільні контексти OpenGL не підтримуються.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden не скомпільовано з підтримкою OpenGL.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Помилка під час ініціалізації OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>Ваш ГП може не підтримувати OpenGL або у вас встановлено застарілий графічний драйвер.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Помилка під час ініціалізації OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>Ваш ГП може не підтримувати OpenGL 4.6 або у вас встановлено застарілий графічний драйвер.<br><br>Візуалізатор GL:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>Ваш ГП може не підтримувати одне або кілька розширень, необхідних для OpenGL. Переконайтеся, що у вас встановлено останній графічний драйвер.<br><br>Візуалізатор GL:<br>%1<br><br>Непідтримувані розширення:<br>%2</translation>
|
||||
</message>
|
||||
@@ -7037,7 +7037,7 @@ Debug Message: </source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="2427"/>
|
||||
<source>Error Opening %1 Folder</source>
|
||||
<translation>Помилка відкриття теки «%1»</translation>
|
||||
<translation>Помилка під час відкриття теки «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="2428"/>
|
||||
@@ -7165,7 +7165,7 @@ Debug Message: </source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="2772"/>
|
||||
<source>Error Opening %1</source>
|
||||
<translation>Помилка відкриття «%1»</translation>
|
||||
<translation>Помилка під час відкриття «%1»</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="2781"/>
|
||||
@@ -7356,17 +7356,17 @@ Please, only use this feature to install updates and DLC.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3234"/>
|
||||
<source>Function Disabled</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Функцію вимкнену</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3235"/>
|
||||
<source>Compatibility list reporting is currently disabled. Check back later!</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Звітування для переліку сумісності наразі вимкнено. Зазирніть пізніше!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3273"/>
|
||||
<source>Error opening URL</source>
|
||||
<translation>Помилка відкриття URL</translation>
|
||||
<translation>Помилка під час відкриття URL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3274"/>
|
||||
@@ -7429,7 +7429,7 @@ Please, only use this feature to install updates and DLC.</source>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3797"/>
|
||||
<source>Error loading Amiibo data</source>
|
||||
<translation>Помилка завантаження даних amiibo</translation>
|
||||
<translation>Помилка під час завантаження даних amiibo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/main_window.cpp" line="3807"/>
|
||||
@@ -9032,17 +9032,17 @@ To:
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="209"/>
|
||||
<source>Error Removing Contents</source>
|
||||
<translation>Помилка вилучення вмісту</translation>
|
||||
<translation>Помилка під час вилучення вмісту</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="211"/>
|
||||
<source>Error Removing Update</source>
|
||||
<translation>Помилка вилучення оновлення</translation>
|
||||
<translation>Помилка під час вилучення оновлення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="213"/>
|
||||
<source>Error Removing DLC</source>
|
||||
<translation>Помилка вилучення доповнення</translation>
|
||||
<translation>Помилка під час вилучення доповнення</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="225"/>
|
||||
@@ -9088,7 +9088,7 @@ To:
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="279"/>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="287"/>
|
||||
<source>Error Removing Transferable Shader Cache</source>
|
||||
<translation>Помилка вилучення переміщуваного кешу шейдерів</translation>
|
||||
<translation>Помилка під час вилучення переміщуваного кешу шейдерів</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="280"/>
|
||||
@@ -9109,7 +9109,7 @@ To:
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="304"/>
|
||||
<source>Error Removing Vulkan Driver Pipeline Cache</source>
|
||||
<translation>Помилка вилучення кешу конвеєра драйвера Vulkan</translation>
|
||||
<translation>Помилка під час вилучення кешу конвеєра драйвера Vulkan</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="305"/>
|
||||
@@ -9120,7 +9120,7 @@ To:
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="315"/>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="325"/>
|
||||
<source>Error Removing Transferable Shader Caches</source>
|
||||
<translation>Помилка вилучення переміщуваних кешів шейдерів</translation>
|
||||
<translation>Помилка під час вилучення переміщуваних кешів шейдерів</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="321"/>
|
||||
@@ -9136,7 +9136,7 @@ To:
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="340"/>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="349"/>
|
||||
<source>Error Removing Custom Configuration</source>
|
||||
<translation>Помилка вилучення користувацього налаштування</translation>
|
||||
<translation>Помилка під час вилучення користувацього налаштування</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/game.cpp" line="341"/>
|
||||
@@ -9249,7 +9249,7 @@ To:
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/path.cpp" line="21"/>
|
||||
<source>Error Opening Shader Cache</source>
|
||||
<translation>Помилка відкривання кешу шейдерів</translation>
|
||||
<translation>Помилка під час відкривання кешу шейдерів</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/qt_common/util/path.cpp" line="22"/>
|
||||
|
||||
@@ -5660,44 +5660,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL không khả dụng!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Các ngữ cảnh OpenGL chung không được hỗ trợ.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Lỗi khi khởi tạo OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL, hoặc bạn không có driver đồ hoạ mới nhất.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Lỗi khi khởi tạo OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL 4.6, hoặc bạn không có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ một hoặc nhiều tiện ích OpenGL cần thiết. Vui lòng đảm bảo bạn có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1<br><br>Tiện ích không hỗ trợ:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5661,44 +5661,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>Không có sẵn OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>Các ngữ cảnh OpenGL chung không được hỗ trợ.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>Đã xảy ra lỗi khi khởi tạo OpenGL!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL, hoặc bạn không có driver đồ hoạ mới nhất.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>Lỗi khi khởi tạo OpenGL 4.6!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ OpenGL 4.6, hoặc bạn không có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>GPU của bạn có thể không hỗ trợ một hoặc nhiều tiện ích OpenGL cần thiết. Vui lòng đảm bảo bạn có driver đồ hoạ mới nhất.<br><br>GL Renderer:<br>%1<br><br>Tiện ích không hỗ trợ:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5727,44 +5727,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>OpenGL 模式不可用!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>不支持 OpenGL 共享上下文。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation>Eden 尚未编译为支持 OpenGL。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>初始化 OpenGL 时出错!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>您的 GPU 可能不支持 OpenGL ,或者您没有安装最新的显卡驱动。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>初始化 OpenGL 4.6 时出错!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>您的 GPU 可能不支持 OpenGL 4.6 ,或者您没有安装最新的显卡驱动。<br><br>GL 渲染器:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>您的 GPU 可能不支持某些必需的 OpenGL 扩展。请确保您已经安装最新的显卡驱动。<br><br>GL 渲染器:<br>%1<br><br>不支持的扩展:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
@@ -5692,44 +5692,44 @@ Please go to Configure -> System -> Network and make a selection.</source>
|
||||
<context>
|
||||
<name>GRenderWindow</name>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1008"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1025"/>
|
||||
<source>OpenGL not available!</source>
|
||||
<translation>無法使用 OpenGL 模式!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1010"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1009"/>
|
||||
<source>OpenGL shared contexts are not supported.</source>
|
||||
<translation>不支援 OpenGL 共用的上下文。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1027"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1026"/>
|
||||
<source>Eden has not been compiled with OpenGL support.</source>
|
||||
<translation type="unfinished"/>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1050"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1066"/>
|
||||
<source>Error while initializing OpenGL!</source>
|
||||
<translation>初始化 OpenGL 時發生錯誤!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1052"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1051"/>
|
||||
<source>Your GPU may not support OpenGL, or you do not have the latest graphics driver.</source>
|
||||
<translation>您的 GPU 可能不支援 OpenGL,或是未安裝最新的圖形驅動程式</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1058"/>
|
||||
<source>Error while initializing OpenGL 4.6!</source>
|
||||
<translation>初始化 OpenGL 4.6 時發生錯誤!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1060"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1059"/>
|
||||
<source>Your GPU may not support OpenGL 4.6, or you do not have the latest graphics driver.<br><br>GL Renderer:<br>%1</source>
|
||||
<translation>您的 GPU 可能不支援 OpenGL 4.6,或是未安裝最新的圖形驅動程式<br><br>GL 渲染器:<br>%1</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1068"/>
|
||||
<location filename="../../src/yuzu/bootmanager.cpp" line="1067"/>
|
||||
<source>Your GPU may not support one or more required OpenGL extensions. Please ensure you have the latest graphics driver.<br><br>GL Renderer:<br>%1<br><br>Unsupported extensions:<br>%2</source>
|
||||
<translation>您的 GPU 可能不支援某些必需的 OpenGL 功能。請確保您已安裝最新的圖形驅動程式。<br><br>GL 渲染器:<br>%1<br><br>不支援的功能:<br>%2</translation>
|
||||
</message>
|
||||
|
||||
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 256 KiB |
@@ -61,7 +61,6 @@ android {
|
||||
minSdk = 24
|
||||
targetSdk = 36
|
||||
versionName = getGitVersion()
|
||||
|
||||
versionCode = autoVersion
|
||||
|
||||
ndk {
|
||||
@@ -69,9 +68,6 @@ android {
|
||||
abiFilters += listOf("arm64-v8a")
|
||||
}
|
||||
|
||||
buildConfigField("String", "GIT_HASH", "\"${getGitHash()}\"")
|
||||
buildConfigField("String", "BRANCH", "\"${getBranch()}\"")
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
val extraCMakeArgs =
|
||||
@@ -92,14 +88,14 @@ android {
|
||||
"-DYUZU_TESTS=OFF",
|
||||
"-DDYNARMIC_TESTS=OFF",
|
||||
*extraCMakeArgs.toTypedArray()
|
||||
))
|
||||
)
|
||||
)
|
||||
|
||||
abiFilters("arm64-v8a")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
val keystoreFile = System.getenv("ANDROID_KEYSTORE_FILE")
|
||||
signingConfigs {
|
||||
if (keystoreFile != null) {
|
||||
@@ -162,7 +158,39 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
// this is really annoying but idk any other ways to fix this behavior
|
||||
flavorDimensions.add("version")
|
||||
productFlavors {
|
||||
create("mainline") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden")
|
||||
}
|
||||
|
||||
create("genshinSpoof") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden Optimized")
|
||||
applicationId = "com.miHoYo.Yuanshen"
|
||||
}
|
||||
|
||||
create("legacy") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden Legacy")
|
||||
applicationId = "dev.legacy.eden_emulator"
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
arguments.add("-DYUZU_LEGACY=ON")
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("legacy") {
|
||||
res.srcDirs("src/main/legacy")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// this is really annoying but idk any other ways to fix this behavior
|
||||
applicationVariants.all {
|
||||
val variant = this
|
||||
when {
|
||||
@@ -187,40 +215,6 @@ android {
|
||||
}
|
||||
}
|
||||
|
||||
android {
|
||||
flavorDimensions.add("version")
|
||||
productFlavors {
|
||||
create("mainline") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden")
|
||||
}
|
||||
|
||||
create("genshinSpoof") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden Optimized")
|
||||
applicationId = "com.miHoYo.Yuanshen"
|
||||
}
|
||||
|
||||
create("legacy") {
|
||||
dimension = "version"
|
||||
resValue("string", "app_name_suffixed", "Eden Legacy")
|
||||
applicationId = "dev.legacy.eden_emulator"
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
arguments.add("-DYUZU_LEGACY=ON")
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("legacy") {
|
||||
res.srcDirs("src/main/legacy")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
externalNativeBuild {
|
||||
cmake {
|
||||
version = "3.22.1"
|
||||
@@ -284,7 +278,6 @@ dependencies {
|
||||
implementation("androidx.core:core-splashscreen:1.0.1")
|
||||
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.17.2")
|
||||
implementation("androidx.window:window:1.3.0")
|
||||
implementation("androidx.constraintlayout:constraintlayout:2.2.1")
|
||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||
implementation("org.commonmark:commonmark:0.22.0")
|
||||
implementation("androidx.navigation:navigation-fragment-ktx:2.8.9")
|
||||
@@ -302,7 +295,9 @@ fun runGitCommand(command: List<String>): String {
|
||||
.directory(project.rootDir)
|
||||
.redirectOutput(ProcessBuilder.Redirect.PIPE)
|
||||
.redirectError(ProcessBuilder.Redirect.PIPE)
|
||||
.start().inputStream.bufferedReader().use { it.readText() }
|
||||
.start()
|
||||
.inputStream.bufferedReader()
|
||||
.use { it.readText() }
|
||||
.trim()
|
||||
} catch (e: Exception) {
|
||||
logger.error("Cannot find git")
|
||||
@@ -326,9 +321,3 @@ fun getGitVersion(): String {
|
||||
}
|
||||
return versionName.ifEmpty { "0.0" }
|
||||
}
|
||||
|
||||
fun getGitHash(): String =
|
||||
runGitCommand(listOf("git", "rev-parse", "--short", "HEAD")).ifEmpty { "dummy-hash" }
|
||||
|
||||
fun getBranch(): String =
|
||||
runGitCommand(listOf("git", "rev-parse", "--abbrev-ref", "HEAD")).ifEmpty { "dummy-hash" }
|
||||
|
||||
@@ -29,8 +29,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" />
|
||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
||||
|
||||
<application
|
||||
android:name="org.yuzu.yuzu_emu.YuzuApplication"
|
||||
@@ -110,5 +109,15 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
||||
</intent-filter>
|
||||
</provider>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="${applicationId}.provider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
||||
@@ -222,11 +222,21 @@ object NativeLibrary {
|
||||
*/
|
||||
external fun getUpdateUrl(version: String): String
|
||||
|
||||
/**
|
||||
* Return the URL to download the APK for the given version
|
||||
*/
|
||||
external fun getUpdateApkUrl(version: String, packageId: String): String
|
||||
|
||||
/**
|
||||
* Returns whether the update checker is enabled through CMAKE options.
|
||||
*/
|
||||
external fun isUpdateCheckerEnabled(): Boolean
|
||||
|
||||
/**
|
||||
* Returns the build version generated by CMake (BUILD_VERSION).
|
||||
*/
|
||||
external fun getBuildVersion(): String
|
||||
|
||||
enum class CoreError {
|
||||
ErrorSystemFiles,
|
||||
ErrorSavestate,
|
||||
|
||||
@@ -235,10 +235,13 @@ class EmulationActivity : AppCompatActivity(), SensorEventListener {
|
||||
}
|
||||
|
||||
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
|
||||
val isPhysicalKeyboard = event.source and InputDevice.SOURCE_KEYBOARD == InputDevice.SOURCE_KEYBOARD &&
|
||||
event.device?.isVirtual == false
|
||||
|
||||
if (event.source and InputDevice.SOURCE_JOYSTICK != InputDevice.SOURCE_JOYSTICK &&
|
||||
event.source and InputDevice.SOURCE_GAMEPAD != InputDevice.SOURCE_GAMEPAD &&
|
||||
event.source and InputDevice.SOURCE_KEYBOARD != InputDevice.SOURCE_KEYBOARD &&
|
||||
event.source and InputDevice.SOURCE_MOUSE != InputDevice.SOURCE_MOUSE
|
||||
event.source and InputDevice.SOURCE_MOUSE != InputDevice.SOURCE_MOUSE &&
|
||||
!isPhysicalKeyboard
|
||||
) {
|
||||
return super.dispatchKeyEvent(event)
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||
SYNC_MEMORY_OPERATIONS("sync_memory_operations"),
|
||||
BUFFER_REORDER_DISABLE("disable_buffer_reorder"),
|
||||
RENDERER_DEBUG("debug"),
|
||||
RENDERER_VERTEX_INPUT_DYNAMIC_STATE("vertex_input_dynamic_state"),
|
||||
RENDERER_PROVOKING_VERTEX("provoking_vertex"),
|
||||
RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"),
|
||||
RENDERER_SAMPLE_SHADING("sample_shading"),
|
||||
@@ -69,7 +70,9 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||
SHOW_SHADERS_BUILDING("show_shaders_building"),
|
||||
|
||||
DEBUG_FLUSH_BY_LINE("flush_line"),
|
||||
USE_LRU_CACHE("use_lru_cache");
|
||||
USE_LRU_CACHE("use_lru_cache"),
|
||||
|
||||
DONT_SHOW_DRIVER_SHADER_WARNING("dont_show_driver_shader_warning");
|
||||
|
||||
|
||||
// external fun isFrameSkippingEnabled(): Boolean
|
||||
|
||||
@@ -146,6 +146,13 @@ abstract class SettingsItem(
|
||||
descriptionId = R.string.provoking_vertex_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_VERTEX_INPUT_DYNAMIC_STATE,
|
||||
titleId = R.string.vertex_input_dynamic_state,
|
||||
descriptionId = R.string.vertex_input_dynamic_state_description
|
||||
)
|
||||
)
|
||||
put(
|
||||
SwitchSetting(
|
||||
BooleanSetting.RENDERER_DESCRIPTOR_INDEXING,
|
||||
@@ -755,6 +762,7 @@ abstract class SettingsItem(
|
||||
SwitchSetting(
|
||||
BooleanSetting.ENABLE_UPDATE_CHECKS,
|
||||
titleId = R.string.enable_update_checks,
|
||||
descriptionId = R.string.enable_update_checks_description,
|
||||
)
|
||||
)
|
||||
put(
|
||||
|
||||
@@ -453,6 +453,7 @@ class SettingsFragmentPresenter(
|
||||
sl.apply {
|
||||
add(HeaderSetting(R.string.veil_extensions))
|
||||
add(ByteSetting.RENDERER_DYNA_STATE.key)
|
||||
add(BooleanSetting.RENDERER_VERTEX_INPUT_DYNAMIC_STATE.key)
|
||||
add(BooleanSetting.RENDERER_PROVOKING_VERTEX.key)
|
||||
add(BooleanSetting.RENDERER_DESCRIPTOR_INDEXING.key)
|
||||
add(BooleanSetting.RENDERER_SAMPLE_SHADING.key)
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.yuzu.yuzu_emu.R
|
||||
import org.yuzu.yuzu_emu.databinding.FragmentAboutBinding
|
||||
import org.yuzu.yuzu_emu.model.HomeViewModel
|
||||
import org.yuzu.yuzu_emu.utils.ViewUtils.updateMargins
|
||||
import org.yuzu.yuzu_emu.NativeLibrary
|
||||
|
||||
class AboutFragment : Fragment() {
|
||||
private var _binding: FragmentAboutBinding? = null
|
||||
@@ -78,11 +79,15 @@ class AboutFragment : Fragment() {
|
||||
binding.root.findNavController().navigate(R.id.action_aboutFragment_to_licensesFragment)
|
||||
}
|
||||
|
||||
binding.textVersionName.text = BuildConfig.VERSION_NAME
|
||||
val buildName = getString(R.string.app_name_suffixed)
|
||||
val buildVersion = NativeLibrary.getBuildVersion()
|
||||
val fullVersionText = "$buildName ($buildVersion)"
|
||||
|
||||
binding.textVersionName.text = fullVersionText
|
||||
binding.buttonVersionName.setOnClickListener {
|
||||
val clipBoard =
|
||||
requireContext().getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||
val clip = ClipData.newPlainText(getString(R.string.build), BuildConfig.GIT_HASH)
|
||||
val clip = ClipData.newPlainText(getString(R.string.build), fullVersionText)
|
||||
clipBoard.setPrimaryClip(clip)
|
||||
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// SPDX-FileCopyrightText: 2025 Eden Emulator Project
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package org.yuzu.yuzu_emu.fragments
|
||||
@@ -91,6 +91,12 @@ class DriverManagerFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
driverViewModel.shouldShowDriverShaderDialog.collect(viewLifecycleOwner) { shouldShow ->
|
||||
if (shouldShow) {
|
||||
showDriverShaderWipeDialog()
|
||||
}
|
||||
}
|
||||
|
||||
if (!driverViewModel.isInteractionAllowed.value) {
|
||||
DriversLoadingDialogFragment().show(
|
||||
childFragmentManager,
|
||||
@@ -236,4 +242,18 @@ class DriverManagerFragment : Fragment() {
|
||||
).show(requireActivity().supportFragmentManager, MessageDialogFragment.TAG)
|
||||
}
|
||||
}
|
||||
|
||||
private fun showDriverShaderWipeDialog() {
|
||||
com.google.android.material.dialog.MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(R.string.driver_shader_wipe_dialog_title)
|
||||
.setMessage(R.string.driver_shader_wipe_dialog_message)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
driverViewModel.onDriverShaderDialogDismissed(dontShowAgain = false)
|
||||
}
|
||||
.setNegativeButton(R.string.dont_show_again) { _, _ ->
|
||||
driverViewModel.onDriverShaderDialogDismissed(dontShowAgain = true)
|
||||
}
|
||||
.setCancelable(false)
|
||||
.show()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -145,13 +145,12 @@ class GamePropertiesFragment : Fragment() {
|
||||
val seconds = playTimeSeconds % 60
|
||||
|
||||
val readablePlayTime = when {
|
||||
hours > 0 -> "${hours}h ${minutes}m ${seconds}s"
|
||||
minutes > 0 -> "${minutes}m ${seconds}s"
|
||||
else -> "${seconds}s"
|
||||
}
|
||||
hours > 0 -> "$hours${getString(R.string.hours_abbr)} $minutes${getString(R.string.minutes_abbr)} $seconds${getString(R.string.seconds_abbr)}"
|
||||
minutes > 0 -> "$minutes${getString(R.string.minutes_abbr)} $seconds${getString(R.string.seconds_abbr)}"
|
||||
else -> "$seconds${getString(R.string.seconds_abbr)}"
|
||||
}
|
||||
|
||||
append(getString(R.string.playtime))
|
||||
append(readablePlayTime)
|
||||
append(getString(R.string.playtime) + " " + readablePlayTime)
|
||||
}
|
||||
|
||||
binding.playtime.setOnClickListener {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -16,6 +19,7 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.yuzu.yuzu_emu.R
|
||||
import org.yuzu.yuzu_emu.YuzuApplication
|
||||
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||
import org.yuzu.yuzu_emu.features.settings.model.StringSetting
|
||||
import org.yuzu.yuzu_emu.features.settings.utils.SettingsFile
|
||||
import org.yuzu.yuzu_emu.model.Driver.Companion.toDriver
|
||||
@@ -52,9 +56,15 @@ class DriverViewModel : ViewModel() {
|
||||
|
||||
private val driversToDelete = mutableListOf<String>()
|
||||
|
||||
private var previousDriverPath: String = ""
|
||||
|
||||
private val _shouldShowDriverShaderDialog = MutableStateFlow(false)
|
||||
val shouldShowDriverShaderDialog: StateFlow<Boolean> get() = _shouldShowDriverShaderDialog
|
||||
|
||||
init {
|
||||
updateDriverList()
|
||||
updateDriverNameForGame(null)
|
||||
previousDriverPath = StringSetting.DRIVER_PATH.getString()
|
||||
}
|
||||
|
||||
fun reloadDriverData() {
|
||||
@@ -79,6 +89,7 @@ class DriverViewModel : ViewModel() {
|
||||
newDriverList.add(it.second.toDriver(it.second == selectedDriver))
|
||||
}
|
||||
_driverList.value = newDriverList
|
||||
previousDriverPath = StringSetting.DRIVER_PATH.getString()
|
||||
}
|
||||
|
||||
fun onOpenDriverManager(game: Game?) {
|
||||
@@ -92,12 +103,49 @@ class DriverViewModel : ViewModel() {
|
||||
_showClearButton.value = value
|
||||
}
|
||||
|
||||
fun onDriverSelected(position: Int) {
|
||||
fun onDriverSelected(position: Int, skipShaderWipe: Boolean = false) {
|
||||
val newDriverPath = if (position == 0) {
|
||||
""
|
||||
} else {
|
||||
driverData[position - 1].first
|
||||
}
|
||||
|
||||
if (!skipShaderWipe && newDriverPath != previousDriverPath) {
|
||||
wipeAllShaders()
|
||||
|
||||
if (!BooleanSetting.DONT_SHOW_DRIVER_SHADER_WARNING.getBoolean(needsGlobal = true)) {
|
||||
_shouldShowDriverShaderDialog.value = true
|
||||
}
|
||||
}
|
||||
|
||||
if (position == 0) {
|
||||
StringSetting.DRIVER_PATH.setString("")
|
||||
} else {
|
||||
StringSetting.DRIVER_PATH.setString(driverData[position - 1].first)
|
||||
}
|
||||
previousDriverPath = newDriverPath
|
||||
}
|
||||
|
||||
fun onDriverShaderDialogDismissed(dontShowAgain: Boolean) {
|
||||
if (dontShowAgain) {
|
||||
BooleanSetting.DONT_SHOW_DRIVER_SHADER_WARNING.setBoolean(true)
|
||||
NativeConfig.saveGlobalConfig()
|
||||
}
|
||||
_shouldShowDriverShaderDialog.value = false
|
||||
}
|
||||
|
||||
private fun wipeAllShaders() {
|
||||
viewModelScope.launch {
|
||||
withContext(Dispatchers.IO) {
|
||||
val shaderDir = File(
|
||||
YuzuApplication.appContext.getExternalFilesDir(null)?.canonicalPath +
|
||||
"/shader/"
|
||||
)
|
||||
if (shaderDir.exists()) {
|
||||
shaderDir.deleteRecursively()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun onDriverRemoved(removedPosition: Int, selectedPosition: Int) {
|
||||
|
||||
@@ -53,6 +53,7 @@ class GamesFragment : Fragment() {
|
||||
private var originalHeaderLeftMargin: Int? = null
|
||||
|
||||
private var lastViewType: Int = GameAdapter.VIEW_TYPE_GRID
|
||||
private var fallbackBottomInset: Int = 0
|
||||
|
||||
companion object {
|
||||
private const val SEARCH_TEXT = "SearchText"
|
||||
@@ -208,12 +209,12 @@ class GamesFragment : Fragment() {
|
||||
else -> throw IllegalArgumentException("Invalid view type: $savedViewType")
|
||||
}
|
||||
if (savedViewType == GameAdapter.VIEW_TYPE_CAROUSEL) {
|
||||
doOnNextLayout {
|
||||
(this as? CarouselRecyclerView)?.setCarouselMode(true, gameAdapter)
|
||||
adapter = gameAdapter
|
||||
(binding.gridGames as? View)?.let { it -> ViewCompat.requestApplyInsets(it)}
|
||||
doOnNextLayout { //Carousel: important to avoid overlap issues
|
||||
(this as? CarouselRecyclerView)?.notifyLaidOut(fallbackBottomInset)
|
||||
}
|
||||
} else {
|
||||
(this as? CarouselRecyclerView)?.setCarouselMode(false)
|
||||
(this as? CarouselRecyclerView)?.setupCarousel(false)
|
||||
}
|
||||
adapter = gameAdapter
|
||||
lastViewType = savedViewType
|
||||
@@ -237,9 +238,8 @@ class GamesFragment : Fragment() {
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (getCurrentViewType() == GameAdapter.VIEW_TYPE_CAROUSEL) {
|
||||
(binding.gridGames as? CarouselRecyclerView)?.restoreScrollState(
|
||||
gamesViewModel.lastScrollPosition
|
||||
)
|
||||
(binding.gridGames as? CarouselRecyclerView)?.setupCarousel(true)
|
||||
(binding.gridGames as? CarouselRecyclerView)?.restoreScrollState(gamesViewModel.lastScrollPosition)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -494,6 +494,11 @@ class GamesFragment : Fragment() {
|
||||
mlpFab.rightMargin = rightInset + fabPadding
|
||||
binding.addDirectory.layoutParams = mlpFab
|
||||
|
||||
val navInsets = windowInsets.getInsets(WindowInsetsCompat.Type.navigationBars())
|
||||
val gestureInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemGestures())
|
||||
val bottomInset = maxOf(navInsets.bottom, gestureInsets.bottom, cutoutInsets.bottom)
|
||||
fallbackBottomInset = bottomInset
|
||||
(binding.gridGames as? CarouselRecyclerView)?.notifyInsetsReady(bottomInset)
|
||||
windowInsets
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,8 +53,16 @@ import androidx.core.content.edit
|
||||
import org.yuzu.yuzu_emu.activities.EmulationActivity
|
||||
import kotlin.text.compareTo
|
||||
import androidx.core.net.toUri
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
import com.google.android.material.textview.MaterialTextView
|
||||
import org.yuzu.yuzu_emu.features.settings.model.BooleanSetting
|
||||
import org.yuzu.yuzu_emu.YuzuApplication
|
||||
import org.yuzu.yuzu_emu.updater.APKDownloader
|
||||
import org.yuzu.yuzu_emu.updater.APKInstaller
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
private lateinit var binding: ActivityMainBinding
|
||||
@@ -186,9 +194,7 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
.setTitle(R.string.update_available)
|
||||
.setMessage(getString(R.string.update_available_description, version))
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
val url = NativeLibrary.getUpdateUrl(version)
|
||||
val intent = Intent(Intent.ACTION_VIEW, url.toUri())
|
||||
startActivity(intent)
|
||||
downloadAndInstallUpdate(version)
|
||||
}
|
||||
.setNeutralButton(R.string.cancel) { dialog, _ ->
|
||||
dialog.dismiss()
|
||||
@@ -201,6 +207,87 @@ class MainActivity : AppCompatActivity(), ThemeProvider {
|
||||
.show()
|
||||
}
|
||||
|
||||
private fun downloadAndInstallUpdate(version: String) {
|
||||
CoroutineScope(Dispatchers.IO).launch {
|
||||
val packageId = applicationContext.packageName
|
||||
val apkUrl = NativeLibrary.getUpdateApkUrl(version, packageId)
|
||||
val apkFile = File(cacheDir, "update-$version.apk")
|
||||
|
||||
withContext(Dispatchers.Main) {
|
||||
showDownloadProgressDialog()
|
||||
}
|
||||
|
||||
val downloader = APKDownloader(apkUrl, apkFile)
|
||||
downloader.download(
|
||||
onProgress = { progress ->
|
||||
runOnUiThread {
|
||||
updateDownloadProgress(progress)
|
||||
}
|
||||
},
|
||||
onComplete = { success ->
|
||||
runOnUiThread {
|
||||
dismissDownloadProgressDialog()
|
||||
if (success) {
|
||||
val installer = APKInstaller(this@MainActivity)
|
||||
installer.install(
|
||||
apkFile,
|
||||
onComplete = {
|
||||
Toast.makeText(
|
||||
this@MainActivity,
|
||||
R.string.update_installed_successfully,
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
},
|
||||
onFailure = { exception ->
|
||||
Toast.makeText(
|
||||
this@MainActivity,
|
||||
getString(R.string.update_install_failed, exception.message),
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
)
|
||||
} else {
|
||||
Toast.makeText(
|
||||
this@MainActivity,
|
||||
getString(R.string.update_download_failed) + "\n\nURL: $apkUrl",
|
||||
Toast.LENGTH_LONG
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private var progressDialog: androidx.appcompat.app.AlertDialog? = null
|
||||
private var progressBar: LinearProgressIndicator? = null
|
||||
private var progressMessage: MaterialTextView? = null
|
||||
|
||||
private fun showDownloadProgressDialog() {
|
||||
val progressView = layoutInflater.inflate(R.layout.dialog_download_progress, null)
|
||||
progressBar = progressView.findViewById(R.id.download_progress_bar)
|
||||
progressMessage = progressView.findViewById(R.id.download_progress_message)
|
||||
|
||||
progressDialog = MaterialAlertDialogBuilder(this)
|
||||
.setTitle(R.string.downloading_update)
|
||||
.setView(progressView)
|
||||
.setCancelable(false)
|
||||
.create()
|
||||
progressDialog?.show()
|
||||
}
|
||||
|
||||
private fun updateDownloadProgress(progress: Int) {
|
||||
progressBar?.progress = progress
|
||||
progressMessage?.text = "$progress%"
|
||||
}
|
||||
|
||||
private fun dismissDownloadProgressDialog() {
|
||||
progressDialog?.dismiss()
|
||||
progressDialog = null
|
||||
progressBar = null
|
||||
progressMessage = null
|
||||
}
|
||||
|
||||
|
||||
fun displayMultiplayerDialog() {
|
||||
val dialog = NetPlayDialog(this)
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package org.yuzu.yuzu_emu.updater
|
||||
|
||||
import okhttp3.Call
|
||||
import okhttp3.Callback
|
||||
import okhttp3.OkHttpClient
|
||||
import okhttp3.Request
|
||||
import okhttp3.Response
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.IOException
|
||||
|
||||
class APKDownloader(private val url: String, private val outputFile: File) {
|
||||
|
||||
fun download(onProgress: (Int) -> Unit, onComplete: (Boolean) -> Unit) {
|
||||
val client = OkHttpClient()
|
||||
val request = Request.Builder().url(url).build()
|
||||
|
||||
client.newCall(request).enqueue(object : Callback {
|
||||
override fun onFailure(call: Call, e: IOException) {
|
||||
e.printStackTrace()
|
||||
onComplete(false)
|
||||
}
|
||||
|
||||
override fun onResponse(call: Call, response: Response) {
|
||||
if (response.isSuccessful) {
|
||||
response.body?.let { body ->
|
||||
val contentLength = body.contentLength()
|
||||
try {
|
||||
val inputStream = body.byteStream()
|
||||
val outputStream = FileOutputStream(outputFile)
|
||||
val buffer = ByteArray(4096)
|
||||
var bytesRead: Int
|
||||
var totalBytesRead: Long = 0
|
||||
|
||||
while (inputStream.read(buffer).also { bytesRead = it } != -1) {
|
||||
outputStream.write(buffer, 0, bytesRead)
|
||||
totalBytesRead += bytesRead
|
||||
val progress = (totalBytesRead * 100 / contentLength).toInt()
|
||||
onProgress(progress)
|
||||
}
|
||||
outputStream.flush()
|
||||
outputStream.close()
|
||||
inputStream.close()
|
||||
onComplete(true)
|
||||
} catch (e: IOException) {
|
||||
e.printStackTrace()
|
||||
onComplete(false)
|
||||
}
|
||||
} ?: run {
|
||||
onComplete(false)
|
||||
}
|
||||
} else {
|
||||
onComplete(false)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package org.yuzu.yuzu_emu.updater
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.IntentFilter
|
||||
import android.net.Uri
|
||||
import androidx.core.content.FileProvider
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
import java.io.File
|
||||
|
||||
class APKInstaller(private val context: Context) {
|
||||
|
||||
fun install(apkFile: File, onComplete: () -> Unit, onFailure: (Exception) -> Unit) {
|
||||
try {
|
||||
val apkUri: Uri = FileProvider.getUriForFile(
|
||||
context,
|
||||
context.applicationContext.packageName + ".provider",
|
||||
apkFile
|
||||
)
|
||||
val intent = Intent(Intent.ACTION_VIEW)
|
||||
intent.setDataAndType(apkUri, "application/vnd.android.package-archive")
|
||||
intent.flags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
context.startActivity(intent)
|
||||
|
||||
GlobalScope.launch {
|
||||
val receiver = AppInstallReceiver(onComplete, onFailure)
|
||||
context.registerReceiver(receiver, IntentFilter().apply {
|
||||
addAction(Intent.ACTION_PACKAGE_ADDED)
|
||||
addAction(Intent.ACTION_PACKAGE_REPLACED)
|
||||
addDataScheme("package")
|
||||
})
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
onFailure(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
package org.yuzu.yuzu_emu.updater
|
||||
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.util.Log
|
||||
|
||||
class AppInstallReceiver(
|
||||
private val onComplete: () -> Unit,
|
||||
private val onFailure: (Exception) -> Unit
|
||||
) : BroadcastReceiver() {
|
||||
|
||||
override fun onReceive(context: Context, intent: Intent) {
|
||||
val packageName = intent.data?.schemeSpecificPart
|
||||
when (intent.action) {
|
||||
Intent.ACTION_PACKAGE_ADDED, Intent.ACTION_PACKAGE_REPLACED -> {
|
||||
Log.i("AppInstallReceiver", "Package installed or updated: $packageName")
|
||||
onComplete()
|
||||
context.unregisterReceiver(this)
|
||||
}
|
||||
else -> {
|
||||
onFailure(Exception("Installation failed for package: $packageName"))
|
||||
context.unregisterReceiver(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -20,9 +20,8 @@ import androidx.core.view.doOnNextLayout
|
||||
import org.yuzu.yuzu_emu.YuzuApplication
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.core.view.WindowInsetsCompat
|
||||
|
||||
/**
|
||||
* CarouselRecyclerView encapsulates all carousel logic for the games UI.
|
||||
* CarouselRecyclerView encapsulates all carousel content for the games UI.
|
||||
* It manages overlapping cards, center snapping, custom drawing order,
|
||||
* joypad & fling navigation and mid-screen swipe-to-refresh.
|
||||
*/
|
||||
@@ -34,6 +33,7 @@ class CarouselRecyclerView @JvmOverloads constructor(
|
||||
|
||||
private var overlapFactor: Float = 0f
|
||||
private var overlapPx: Int = 0
|
||||
private var bottomInset: Int = -1
|
||||
private var overlapDecoration: OverlappingDecoration? = null
|
||||
private var pagerSnapHelper: PagerSnapHelper? = null
|
||||
private var scalingScrollListener: OnScrollListener? = null
|
||||
@@ -202,46 +202,61 @@ class CarouselRecyclerView @JvmOverloads constructor(
|
||||
}
|
||||
}
|
||||
|
||||
fun setCarouselMode(enabled: Boolean, gameAdapter: GameAdapter? = null) {
|
||||
fun refreshView() {
|
||||
updateChildScalesAndAlpha()
|
||||
focusCenteredCard()
|
||||
}
|
||||
|
||||
fun notifyInsetsReady(newBottomInset: Int) {
|
||||
if (bottomInset != newBottomInset) {
|
||||
bottomInset = newBottomInset
|
||||
}
|
||||
setupCarousel(true)
|
||||
}
|
||||
|
||||
fun notifyLaidOut(fallBackBottomInset: Int) {
|
||||
if (bottomInset < 0) bottomInset = fallBackBottomInset
|
||||
var gameAdapter = adapter as? GameAdapter ?: return
|
||||
var newCardSize = cardSize(bottomInset)
|
||||
if (gameAdapter.cardSize != newCardSize) {
|
||||
gameAdapter.setCardSize(newCardSize)
|
||||
}
|
||||
setupCarousel(true)
|
||||
}
|
||||
|
||||
fun cardSize(bottomInset: Int): Int {
|
||||
val internalFactor = resources.getFraction(R.fraction.carousel_card_size_factor, 1, 1)
|
||||
val userFactor = preferences.getFloat(CAROUSEL_CARD_SIZE_FACTOR, internalFactor).coerceIn(
|
||||
0f,
|
||||
1f
|
||||
)
|
||||
return (userFactor * (height - bottomInset)).toInt()
|
||||
}
|
||||
|
||||
fun setupCarousel(enabled: Boolean) {
|
||||
if (enabled) {
|
||||
val gameAdapter = adapter as? GameAdapter ?: return
|
||||
if (gameAdapter.cardSize == 0) return
|
||||
if (bottomInset < 0) return
|
||||
|
||||
useCustomDrawingOrder = true
|
||||
val cardSize = gameAdapter.cardSize
|
||||
|
||||
val insets = rootWindowInsets?.let { WindowInsetsCompat.toWindowInsetsCompat(it, this) }
|
||||
val bottomInset = insets?.getInsets(WindowInsetsCompat.Type.systemBars())?.bottom ?: 0
|
||||
val internalFactor = resources.getFraction(R.fraction.carousel_card_size_factor, 1, 1)
|
||||
val userFactor = preferences.getFloat(CAROUSEL_CARD_SIZE_FACTOR, internalFactor).coerceIn(
|
||||
0f,
|
||||
1f
|
||||
)
|
||||
val cardSize = (userFactor * (height - bottomInset)).toInt()
|
||||
gameAdapter?.setCardSize(cardSize)
|
||||
|
||||
val internalOverlapFactor = resources.getFraction(
|
||||
R.fraction.carousel_overlap_factor,
|
||||
1,
|
||||
1
|
||||
)
|
||||
overlapFactor = preferences.getFloat(CAROUSEL_OVERLAP_FACTOR, internalOverlapFactor).coerceIn(
|
||||
0f,
|
||||
1f
|
||||
)
|
||||
val internalOverlapFactor = resources.getFraction(R.fraction.carousel_overlap_factor,1,1)
|
||||
overlapFactor = preferences.getFloat(CAROUSEL_OVERLAP_FACTOR, internalOverlapFactor).coerceIn(0f,1f)
|
||||
overlapPx = (cardSize * overlapFactor).toInt()
|
||||
|
||||
val internalFlingMultiplier = resources.getFraction(
|
||||
R.fraction.carousel_fling_multiplier,
|
||||
1,
|
||||
1
|
||||
)
|
||||
val internalFlingMultiplier = resources.getFraction(R.fraction.carousel_fling_multiplier,1,1)
|
||||
flingMultiplier = preferences.getFloat(
|
||||
CAROUSEL_FLING_MULTIPLIER,
|
||||
internalFlingMultiplier
|
||||
).coerceIn(1f, 5f)
|
||||
|
||||
gameAdapter?.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
|
||||
gameAdapter .registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
|
||||
override fun onChanged() {
|
||||
if (pendingScrollAfterReload) {
|
||||
post {
|
||||
jigglyScroll()
|
||||
doOnNextLayout {
|
||||
refreshView()
|
||||
pendingScrollAfterReload = false
|
||||
}
|
||||
}
|
||||
@@ -257,7 +272,7 @@ class CarouselRecyclerView @JvmOverloads constructor(
|
||||
addItemDecoration(overlapDecoration!!)
|
||||
}
|
||||
|
||||
// Gradual scalingAdd commentMore actions
|
||||
// Gradual scaling on scroll
|
||||
if (scalingScrollListener == null) {
|
||||
scalingScrollListener = object : OnScrollListener() {
|
||||
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
|
||||
@@ -315,8 +330,7 @@ class CarouselRecyclerView @JvmOverloads constructor(
|
||||
super.scrollToPosition(position)
|
||||
(layoutManager as? LinearLayoutManager)?.scrollToPositionWithOffset(position, overlapPx)
|
||||
doOnNextLayout {
|
||||
updateChildScalesAndAlpha()
|
||||
focusCenteredCard()
|
||||
refreshView()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -382,12 +396,6 @@ class CarouselRecyclerView @JvmOverloads constructor(
|
||||
return sorted[i].first
|
||||
}
|
||||
|
||||
fun jigglyScroll() {
|
||||
scrollBy(-1, 0)
|
||||
scrollBy(1, 0)
|
||||
focusCenteredCard()
|
||||
}
|
||||
|
||||
inner class OverlappingDecoration(private val overlap: Int) : ItemDecoration() {
|
||||
override fun getItemOffsets(
|
||||
outRect: Rect,
|
||||
|
||||
@@ -182,9 +182,9 @@ namespace AndroidSettings {
|
||||
Settings::Specialization::Default, true, true,
|
||||
&show_soc_overlay};
|
||||
|
||||
Settings::Setting<bool> dont_show_eden_veil_warning{linkage, false,
|
||||
"dont_show_eden_veil_warning",
|
||||
Settings::Category::Miscellaneous};
|
||||
Settings::Setting<bool> dont_show_driver_shader_warning{linkage, false,
|
||||
"dont_show_driver_shader_warning",
|
||||
Settings::Category::Android, Settings::Specialization::Default, true, true};
|
||||
};
|
||||
|
||||
extern Values values;
|
||||
|
||||
@@ -1613,6 +1613,43 @@ JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_getUpdateUrl(
|
||||
env->ReleaseStringUTFChars(version, version_str);
|
||||
return env->NewStringUTF(url.c_str());
|
||||
}
|
||||
|
||||
JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_getUpdateApkUrl(
|
||||
JNIEnv* env,
|
||||
jobject obj,
|
||||
jstring version,
|
||||
jstring packageId) {
|
||||
const char* version_str = env->GetStringUTFChars(version, nullptr);
|
||||
const char* package_id_str = env->GetStringUTFChars(packageId, nullptr);
|
||||
|
||||
std::string variant;
|
||||
std::string package_id(package_id_str);
|
||||
|
||||
if (package_id.find("dev.legacy.eden_emulator") != std::string::npos) {
|
||||
variant = "legacy";
|
||||
} else if (package_id.find("com.miHoYo.Yuanshen") != std::string::npos) {
|
||||
variant = "optimized";
|
||||
} else {
|
||||
variant = "standard";
|
||||
}
|
||||
|
||||
const std::string apk_filename = fmt::format("Eden-Android-{}-{}.apk", version_str, variant);
|
||||
const std::string url = fmt::format("{}/{}/releases/download/{}/{}",
|
||||
std::string{Common::g_build_auto_update_website},
|
||||
std::string{Common::g_build_auto_update_repo},
|
||||
version_str,
|
||||
apk_filename);
|
||||
|
||||
env->ReleaseStringUTFChars(version, version_str);
|
||||
env->ReleaseStringUTFChars(packageId, package_id_str);
|
||||
return env->NewStringUTF(url.c_str());
|
||||
}
|
||||
#endif
|
||||
|
||||
JNIEXPORT jstring JNICALL Java_org_yuzu_yuzu_1emu_NativeLibrary_getBuildVersion(
|
||||
JNIEnv* env,
|
||||
[[maybe_unused]] jobject obj) {
|
||||
return env->NewStringUTF(Common::g_build_version);
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
|
Before Width: | Height: | Size: 65 KiB After Width: | Height: | Size: 104 KiB |
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="24dp">
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/download_progress_message"
|
||||
style="@style/TextAppearance.Material3.BodyMedium"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="16dp"
|
||||
android:text="0%"
|
||||
android:textAlignment="center"
|
||||
android:textSize="18sp"
|
||||
android:textStyle="bold" />
|
||||
|
||||
<com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
android:id="@+id/download_progress_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:max="100"
|
||||
android:progress="0"
|
||||
app:indicatorColor="?attr/colorPrimary"
|
||||
app:trackColor="?attr/colorSurfaceVariant"
|
||||
app:trackCornerRadius="4dp"
|
||||
app:trackThickness="8dp" />
|
||||
|
||||
</LinearLayout>
|
||||
@@ -111,15 +111,15 @@
|
||||
<string name="veil_misc">وحدة المعالجة المركزية والذاكرة</string>
|
||||
<string name="use_sync_core">مزامنة سرعة النواة</string>
|
||||
<string name="use_sync_core_description">مزامنة سرعة النواة مع النسبة القصوى للسرعة لتحسين الأداء دون تغيير السرعة الفعلية للعبة.</string>
|
||||
<string name="use_lru_cache">تمكين ذاكرة التخزين المؤقت LRU</string>
|
||||
<string name="use_lru_cache_description">تمكين أو تعطيل ذاكرة التخزين المؤقت الأقل استخداماً مؤخراً (LRU) لتحسين الأداء عن طريق تقليل استخدام وحدة المعالجة المركزية. بعض الألعاب قد تواجه مشاكل معه، خاصةً TotK 1.2.1، لذا قم بتعطيله إذا لم تعمل اللعبة أو انهارت عشوائياً.</string>
|
||||
<string name="use_lru_cache">تمكين ذاكرة التخزين المؤقتة LRU</string>
|
||||
<string name="use_lru_cache_description">قم بتمكين أو تعطيل ذاكرة التخزين المؤقتة الأقل استخدامًا (LRU)، مما يزيد من الأداء عن طريق توفير استخدام معالج وحدة المعالجة المركزية. قد تواجه بعض الألعاب مشكلات مع هذا الإعداد، لذا قم بتعطيله إذا لم يتم تشغيل اللعبة أو تعطلت بشكل عشوائي.</string>
|
||||
<string name="use_fast_cpu_time">وقت وحدة المعالجة المركزية السريع</string>
|
||||
<string name="use_fast_cpu_time_description">يجبر وحدة المعالجة المركزية المحاكاة على العمل بسرعة أعلى، مما يقلل من بعض محددات معدل الإطارات. هذا الخيار غير مستقر وقد يسبب مشاكل، وقد يرى المستخدمون بأجهزة أضعف انخفاضًا في الأداء.</string>
|
||||
<string name="custom_cpu_ticks">تخصيص دورات المعالج</string>
|
||||
<string name="custom_cpu_ticks_description">قم بتعيين قيمة مخصصة لدورات المعالج. القيم الأعلى يمكن أن تزيد من الأداء، ولكنها قد تتسبب أيضًا في تجميد اللعبة. يوصى باستخدام نطاق 77-21000.</string>
|
||||
<string name="cpu_ticks">دورات</string>
|
||||
<string name="skip_cpu_inner_invalidation">تخطي إبطال ذاكرة التخزين المؤقت الداخلية للوحدة المركزية</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">يتخطى بعض عمليات إبطال ذاكرة التخزين المؤقت أثناء تحديثات الذاكرة، مما يقلل استخدام المعالج ويحسن أدائه. قد يسبب هذا أعطالاً أو تعطلًا في بعض الألعاب.</string>
|
||||
<string name="skip_cpu_inner_invalidation">تخطي إبطال صلاحية وحدة المعالجة المركزية الداخلية</string>
|
||||
<string name="skip_cpu_inner_invalidation_description">يتخطى بعض عمليات إبطال ذاكرة التخزين المؤقتة من جانب وحدة المعالجة المركزية أثناء تحديثات الذاكرة، مما يقلل من استخدام وحدة المعالجة المركزية ويحسن أداءها. قد يتسبب ذلك في حدوث أعطال أو تعطل في بعض الألعاب.</string>
|
||||
<string name="cpuopt_unsafe_host_mmu">تمكين محاكاة MMU المضيف</string>
|
||||
<string name="cpuopt_unsafe_host_mmu_description">يعمل هذا التحسين على تسريع وصول الذاكرة بواسطة البرنامج الضيف. يؤدي تمكينه إلى إجراء عمليات قراءة/كتابة ذاكرة الضيف مباشرة في الذاكرة والاستفادة من MMU المضيف. يؤدي تعطيل هذا إلى إجبار جميع عمليات الوصول إلى الذاكرة على استخدام محاكاة MMU البرمجية.</string>
|
||||
<string name="fast_cpu_time">CPU Clock</string>
|
||||
@@ -294,6 +294,25 @@
|
||||
<string name="permission_denied_description">لقد رفضت هذا الإذن عدة مرات ويتعين عليك الآن منحه يدويًا في إعدادات النظام</string>
|
||||
<string name="about">حول</string>
|
||||
<string name="about_description">إصدار البرنامج، الاعتمادات، والمزيد</string>
|
||||
<string name="system_information">معلومات النظام</string>
|
||||
<string name="system_information_description">عرض معلومات تفصيلية عن الجهاز</string>
|
||||
<string name="device_manufacturer">الشركة المصنعة</string>
|
||||
<string name="device_model">طراز</string>
|
||||
<string name="product">المنتج</string>
|
||||
<string name="android_version">إصدار Android</string>
|
||||
<string name="android_security_patch">تصحيح الأمان</string>
|
||||
<string name="build_id">معرف البناء</string>
|
||||
<string name="general_information">معلومات عامة</string>
|
||||
<string name="hardware">الأجهزة</string>
|
||||
<string name="supported_abis">واجهات برمجة التطبيقات المدعومة</string>
|
||||
<string name="cpu_info">معلومات وحدة المعالجة المركزية</string>
|
||||
<string name="gpu_information">معلومات وحدة معالجة الرسومات</string>
|
||||
<string name="vulkan_driver_version">إصدار برنامج تشغيل Vulkan</string>
|
||||
<string name="error_getting_emulator_info">خطأ في الحصول على معلومات المحاكي</string>
|
||||
<string name="memory_info">معلومات الذاكرة</string>
|
||||
<string name="total_memory">إجمالي الذاكرة</string>
|
||||
<string name="soc">نظام الرقاقة:</string>
|
||||
|
||||
<string name="warning_help">مساعدة</string>
|
||||
<string name="warning">تحذير</string>
|
||||
<string name="warning_skip">تخطي</string>
|
||||
@@ -313,9 +332,9 @@
|
||||
<string name="no_file_manager">لم يتم العثور على مدير الملفات</string>
|
||||
<string name="notification_no_directory_link">تعذر فتح مجلد Eden</string>
|
||||
<string name="notification_no_directory_link_description">يرجى تحديد موقع مجلد المستخدم يدويًا باستخدام اللوحة الجانبية لمدير الملفات.</string>
|
||||
<string name="manage_save_data">إدارة حفظ البيانات</string>
|
||||
<string name="manage_save_data_description">حفظ البيانات التي تم العثور عليها. يرجى اختيار أحد الخيارات التالية</string>
|
||||
<string name="import_save_warning">استيراد حفظ البيانات</string>
|
||||
<string name="manage_save_data">إدارة بيانات الحفظ</string>
|
||||
<string name="manage_save_data_description">تم العثور على بيانات محفوظة. يرجى تحديد أحد الخيارات أدناه.</string>
|
||||
<string name="import_save_warning">استيراد بيانات الحفظ</string>
|
||||
<string name="import_save_warning_description">سيؤدي هذا إلى استبدال جميع البيانات المحفوظة الموجودة بالملف المقدم. هل أنت متأكد من أنك تريد المتابعة؟</string>
|
||||
<string name="save_files_importing">جارٍ استيراد ملفات الحفظ…</string>
|
||||
<string name="save_files_exporting">جارٍ تصدير ملفات الحفظ...</string>
|
||||
@@ -397,10 +416,10 @@
|
||||
<string name="applets_error_description"><![CDATA[يرجى التأكد من أن ملف <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-prodkeys-and-titlekeys\">prod.keys</a> الخاص بك و <a href=\"https://yuzu-mirror.github.io/help/quickstart/#dumping-system-firmware\">الفيرموير</a> مثبتة وحاول مرة أخرى.<br>بالإضافة إلى ذلك، تأكد من أن الفيرموير الخاص بك هو من الإصدار 19.0.1 أو أقدم.]]></string>
|
||||
<string name="album_applet">الألبوم</string>
|
||||
<string name="album_applet_description">عرض الصور المخزنة في مجلد لقطات شاشة المستخدم باستخدام عارض صور النظام</string>
|
||||
<string name="mii_edit_applet">تعديل Mii</string>
|
||||
<string name="mii_edit_applet">تحرير Mii</string>
|
||||
<string name="mii_edit_applet_description">عرض وتحرير Miis باستخدام محرر النظام</string>
|
||||
<string name="cabinet_applet">الخزانة</string>
|
||||
<string name="cabinet_applet_description">تعديل وحذف البيانات المخزنة على أميبو</string>
|
||||
<string name="cabinet_applet_description">تحرير وحذف البيانات المخزنة على أميبو</string>
|
||||
<string name="cabinet_launcher">مشغل الخزانة</string>
|
||||
<string name="cabinet_nickname_and_owner">إعدادات الاسم المستعار والمالك</string>
|
||||
<string name="cabinet_game_data_eraser">ممحاة بيانات اللعبة</string>
|
||||
@@ -483,7 +502,7 @@
|
||||
<string name="fast_gpu_time_description">استخدم 128 لأقصى أداء و512 لأقصى دقة رسومية.</string>
|
||||
<string name="renderer_reactive_flushing">استخدم التنظيف التفاعلي</string>
|
||||
<string name="renderer_reactive_flushing_description">يحسن دقة العرض في بعض الألعاب على حساب الأداء.</string>
|
||||
<string name="use_disk_shader_cache">ذاكرة التخزين المؤقت للتظليل</string>
|
||||
<string name="use_disk_shader_cache">ذاكرة التخزين المؤقتة لتظلل القرص</string>
|
||||
<string name="use_disk_shader_cache_description">يقلل من التأتأة عن طريق تخزين وتحميل التظليلات التي تم إنشاؤها محليًا.</string>
|
||||
<string name="anisotropic_filtering">تصفية متباينة الخواص</string>
|
||||
<string name="anisotropic_filtering_description">يحسن جودة الأنسجة عند عرضها بزوايا مائلة</string>
|
||||
@@ -501,7 +520,7 @@
|
||||
<string name="renderer_debug_description">يضبط واجهة برمجة التطبيقات الرسومية على وضع تصحيح الأخطاء البطيء.</string>
|
||||
<string name="fastmem">Fastmem</string>
|
||||
|
||||
<string name="log">تسجيل الدخول</string>
|
||||
<string name="log">السجلات</string>
|
||||
<string name="flush_by_line">تفريغ سجلات التصحيح حسب السطر</string>
|
||||
<string name="flush_by_line_description">يفرغ سجلات التصحيح عند كتابة كل سطر، مما يجعل التصحيح أسهل في حالات التوقف أو التجميد.</string>
|
||||
|
||||
@@ -564,7 +583,7 @@
|
||||
<string name="dual_joycons">جوي كون ثنائي</string>
|
||||
<string name="left_joycon">جوي كون اليسرى</string>
|
||||
<string name="right_joycon">جوي كون اليمنى</string>
|
||||
<string name="gamecube_controller">ذراع تحكم جيم كيوب</string>
|
||||
<string name="gamecube_controller">ذراع تحكم GameCube</string>
|
||||
<string name="invert_axis">عكس المحور</string>
|
||||
<string name="invert_button">عكس الزر</string>
|
||||
<string name="toggle_button">زر التبديل</string>
|
||||
@@ -588,7 +607,7 @@
|
||||
<string name="stick_map_description">حرك العصا إلى اليسار ثم للأعلى أو اضغط على زر</string>
|
||||
<string name="button_map_description">اضغط على زر أو حرك الزناد/العصا</string>
|
||||
<string name="map_dpad_direction">تعيين الأسهم %1$s</string>
|
||||
<string name="map_control">تعيين إلى%1$s</string>
|
||||
<string name="map_control">تعيين إلى %1$s</string>
|
||||
<string name="failed_to_load_profile">فشل تحميل ملف التعريف</string>
|
||||
<string name="failed_to_save_profile">فشل في حفظ ملف التعريف</string>
|
||||
<string name="reset_mapping">إعادة تعيين التعيينات</string>
|
||||
@@ -617,7 +636,7 @@
|
||||
<string name="install">تثبيت</string>
|
||||
<string name="fetch">جلب</string>
|
||||
<string name="delete">حذف</string>
|
||||
<string name="edit">تعديل</string>
|
||||
<string name="edit">تحرير</string>
|
||||
<string name="import_success">تم الاستيراد بنجاح</string>
|
||||
<string name="export_success">تم التصدير بنجاح</string>
|
||||
<string name="start">بدء</string>
|
||||
@@ -643,7 +662,7 @@
|
||||
<string name="error_during_fetch">خطأ أثناء الجلب</string>
|
||||
<string name="show_downloads">عرض التنزيلات</string>
|
||||
<string name="hide_downloads">إخفاء التنزيلات</string>
|
||||
<string name="failed_cache_dir">مجلد ذاكرة التخزين المؤقت غير متوفر</string>
|
||||
<string name="failed_cache_dir">مجلد ذاكرة التخزين المؤقتة غير متوفر</string>
|
||||
<string name="empty_response_body">نص الاستجابة فارغ</string>
|
||||
<string name="successfully_installed">تم تثبيت %1$s بنجاح</string>
|
||||
<string name="driver_failed_title">فشل تثبيت برنامج التشغيل</string>
|
||||
@@ -653,7 +672,7 @@
|
||||
<string name="installing">جارٍ التثبيت...</string>
|
||||
<string name="latest">الأحدث</string>
|
||||
<string name="recommended_driver">برنامج التشغيل الموصى به:</string>
|
||||
<string name="gpu_model">طراز وحدة معالجة الرسومات:</string>
|
||||
<string name="gpu_model">طراز وحدة معالجة الرسومات</string>
|
||||
<string name="unsupported_gpu">وحدة معالجة الرسومات غير مدعومة</string>
|
||||
<string name="unsupported_gpu_warning">لا تدعم وحدة معالجة الرسومات الخاصة بك إدخال برامج التشغيل. لا يُنصح بمحاولة تعيين برامج تشغيل مخصصة.</string>
|
||||
|
||||
@@ -675,7 +694,7 @@
|
||||
<string name="info">معلومات</string>
|
||||
<string name="info_description">معرف العنوان، المطور، الإصدار</string>
|
||||
<string name="per_game_settings">إعدادات خاصة للعبة</string>
|
||||
<string name="per_game_settings_description">تعديل الإعدادات الخاصة بهذه اللعبة</string>
|
||||
<string name="per_game_settings_description">تحرير الإعدادات الخاصة بهذه اللعبة</string>
|
||||
<string name="launch_options">تشغيل التكوين</string>
|
||||
<string name="path">المسار</string>
|
||||
<string name="program_id">معرف العنوان</string>
|
||||
@@ -689,21 +708,23 @@
|
||||
<string name="reset_playtime_description">إعادة ضبط زمن اللعب الحالي للعبة إلى 0 ثانية</string>
|
||||
<string name="reset_playtime_warning_description">سيؤدي هذا إلى مسح بيانات زمن اللعب الحالية للعبة. هل أنت متأكد؟</string>
|
||||
<string name="playtime_reset_successfully">تمت إعادة ضبط زمن اللعب</string>
|
||||
<string name="edit_playtime">تعديل زمن التشغيل</string>
|
||||
<string name="edit_playtime">تحرير زمن التشغيل</string>
|
||||
<string name="hours">ساعات</string>
|
||||
<string name="minutes">دقائق</string>
|
||||
<string name="hours_must_be_between_0_and_9999">يجب أن تكون الساعات بين 0 و 9999</string>
|
||||
<string name="minutes_must_be_between_0_and_59">يجب أن تكون الدقائق بين 0 و 59</string>
|
||||
<string name="seconds_must_be_between_0_and_59">يجب أن تكون الثواني بين 0 و 59</string>
|
||||
<string name="playtime_updated_successfully">تم تحديث زمن اللعب بنجاح</string>
|
||||
<string name="clear_shader_cache">مسح ذاكرة التخزين المؤقت للتظليل</string>
|
||||
<string name="clear_shader_cache">مسح ذاكرة التخزين المؤقتة للتظليل</string>
|
||||
<string name="clear_shader_cache_description">يزيل جميع التظليلات التي تم إنشاؤها أثناء لعب هذه اللعبة</string>
|
||||
<string name="clear_shader_cache_warning_description">سوف تواجه المزيد من التأتأة مع تجديد ذاكرة التخزين المؤقت للتظليل</string>
|
||||
<string name="clear_shader_cache_warning_description">ستواجه المزيد من التقطع مع إعادة إنشاء ذاكرة التخزين المؤقتة للتظلل</string>
|
||||
<string name="cleared_shaders_successfully">تم مسح التظليل بنجاح</string>
|
||||
<string name="driver_shader_wipe_dialog_title">تم مسح الشادر</string>
|
||||
<string name="driver_shader_wipe_dialog_message">قام Eden تلقائيًا بمسح جميع ذاكرات التخزين المؤقت للتظليل للحفاظ على صحة خط أنابيب Vulkan. هذا ضروري عند تبديل برامج تشغيل وحدة معالجة الرسومات لمنع الأعطال وتلف الرسومات. قد تواجه بعض التلعثم أثناء إعادة بناء وحدات التظليل.</string>
|
||||
<string name="addons_game">إضافات: %1$s</string>
|
||||
<string name="save_data">حفظ البيانات</string>
|
||||
<string name="save_data_description">إدارة حفظ البيانات الخاصة بهذه اللعبة</string>
|
||||
<string name="delete_save_data">حذف حفظ البيانات</string>
|
||||
<string name="save_data">البيانات المحفوظة</string>
|
||||
<string name="save_data_description">إدارة البيانات المحفوظة الخاصة بهذه اللعبة</string>
|
||||
<string name="delete_save_data">حذف البيانات المحفوظة</string>
|
||||
<string name="delete_save_data_description">يزيل كافة البيانات المحفوظة الخاصة بهذه اللعبة</string>
|
||||
<string name="delete_save_data_warning_description">سيؤدي هذا إلى حذف جميع بيانات حفظ اللعبة بشكل نهائي. هل أنت متأكد من أنك تريد المتابعة؟</string>
|
||||
<string name="save_data_deleted_successfully">تم حذف البيانات المحفوظة بنجاح</string>
|
||||
@@ -794,7 +815,7 @@
|
||||
<string name="emulation_control_scale">الحجم</string>
|
||||
<string name="emulation_control_opacity">الشفافية</string>
|
||||
<string name="emulation_touch_overlay_reset">إعادة تعيين التراكب</string>
|
||||
<string name="emulation_touch_overlay_edit">تعديل التراكب</string>
|
||||
<string name="emulation_touch_overlay_edit">تحرير التراكب</string>
|
||||
<string name="emulation_pause">إيقاف المحاكاة مؤقتًا</string>
|
||||
<string name="emulation_unpause">إلغاء الإيقاف المؤقت للمحاكاة</string>
|
||||
<string name="emulation_input_overlay">خيارات التراكب</string>
|
||||
|
||||
@@ -519,7 +519,6 @@
|
||||
<string name="installing">لە دامەزراندن...</string>
|
||||
<string name="latest">نوێترین</string>
|
||||
<string name="recommended_driver">درایڤەری پێشنیارکراو:</string>
|
||||
<string name="gpu_model">مۆدێلی GPU:</string>
|
||||
<string name="unsupported_gpu">GPU پشتگیری نەکراوە</string>
|
||||
<string name="unsupported_gpu_warning">GPUی تۆ پشتگیری لە درایڤەری تایبەت ناکات. پێشنیار ناکرێت درایڤەری تایبەت دابنێیت.</string>
|
||||
|
||||
|
||||
@@ -469,7 +469,6 @@
|
||||
<string name="installing">Instalace…</string>
|
||||
<string name="latest">Nejnovější</string>
|
||||
<string name="recommended_driver">Doporučený ovladač:</string>
|
||||
<string name="gpu_model">Model GPU:</string>
|
||||
<string name="unsupported_gpu">Nepodporovaná GPU</string>
|
||||
<string name="unsupported_gpu_warning">Vaše GPU nepodporuje vkládání ovladačů. Nastavení vlastních ovladačů se nedoporučuje.</string>
|
||||
|
||||
|
||||
@@ -625,7 +625,6 @@ Wird der Handheld-Modus verwendet, verringert es die Auflösung und erhöht die
|
||||
<string name="installing">Wird installiert…</string>
|
||||
<string name="latest">Neueste</string>
|
||||
<string name="recommended_driver">Empfohlener Treiber:</string>
|
||||
<string name="gpu_model">GPU-Modell:</string>
|
||||
<string name="unsupported_gpu">Nicht unterstützte GPU</string>
|
||||
<string name="unsupported_gpu_warning">Ihre GPU unterstützt keine Treiberinjektion. Das Festlegen benutzerdefinierter Treiber wird nicht empfohlen.</string>
|
||||
|
||||
|
||||
@@ -646,7 +646,6 @@
|
||||
<string name="installing">Instalando…</string>
|
||||
<string name="latest">Última</string>
|
||||
<string name="recommended_driver">Controlador recomendado:</string>
|
||||
<string name="gpu_model">Modelo de GPU:</string>
|
||||
<string name="unsupported_gpu">GPU no soportada</string>
|
||||
<string name="unsupported_gpu_warning">Tu GPU no soporta la inyección de controladores. No se recomienda configurar controladores personalizados.</string>
|
||||
|
||||
|
||||
@@ -647,7 +647,6 @@
|
||||
<string name="installing">Installation en cours…</string>
|
||||
<string name="latest">Dernière</string>
|
||||
<string name="recommended_driver">Pilote recommandé :</string>
|
||||
<string name="gpu_model">Modèle GPU :</string>
|
||||
<string name="unsupported_gpu">GPU non pris en charge</string>
|
||||
<string name="unsupported_gpu_warning">Votre GPU ne prend pas en charge l\'injection de pilotes. Il n\'est pas recommandé de définir des pilotes personnalisés.</string>
|
||||
|
||||
|
||||
@@ -541,7 +541,6 @@
|
||||
<string name="installing">מתקין…</string>
|
||||
<string name="latest">האחרון</string>
|
||||
<string name="recommended_driver">מנהל התקן מומלץ:</string>
|
||||
<string name="gpu_model">דגם GPU:</string>
|
||||
<string name="unsupported_gpu">GPU לא נתמך</string>
|
||||
<string name="unsupported_gpu_warning">ה-GPU שלך אינו תומך בהזרקת מנהל התקן. לא מומלץ להגדיר מנהלי התקן מותאמים אישית.</string>
|
||||
|
||||
|
||||
@@ -595,7 +595,6 @@
|
||||
<string name="installing">Telepítés…</string>
|
||||
<string name="latest">Legújabb</string>
|
||||
<string name="recommended_driver">Ajánlott illesztőprogram:</string>
|
||||
<string name="gpu_model">GPU modell:</string>
|
||||
<string name="unsupported_gpu">Nem támogatott GPU</string>
|
||||
<string name="unsupported_gpu_warning">A GPU-d nem támogatja az illesztőprogramok befecskendezését. Nem ajánlott egyéni illesztőprogramok beállítása.</string>
|
||||
|
||||
|
||||
@@ -636,7 +636,6 @@
|
||||
<string name="installing">Menginstal…</string>
|
||||
<string name="latest">Terbaru</string>
|
||||
<string name="recommended_driver">Driver yang Direkomendasikan:</string>
|
||||
<string name="gpu_model">Model GPU:</string>
|
||||
<string name="unsupported_gpu">GPU Tidak Didukung</string>
|
||||
<string name="unsupported_gpu_warning">GPU Anda tidak mendukung injeksi driver. Tidak disarankan untuk mengatur driver kustom.</string>
|
||||
|
||||
|
||||
@@ -647,7 +647,6 @@
|
||||
<string name="installing">Installazione in corso…</string>
|
||||
<string name="latest">Ultimo</string>
|
||||
<string name="recommended_driver">Driver consigliato:</string>
|
||||
<string name="gpu_model">Modello GPU:</string>
|
||||
<string name="unsupported_gpu">GPU non supportata</string>
|
||||
<string name="unsupported_gpu_warning">La tua GPU non supporta l\'iniezione di driver. Non è consigliato impostare driver personalizzati.</string>
|
||||
|
||||
|
||||
@@ -543,7 +543,6 @@
|
||||
<string name="installing">インストール中…</string>
|
||||
<string name="latest">最新</string>
|
||||
<string name="recommended_driver">推奨ドライバー:</string>
|
||||
<string name="gpu_model">GPUモデル:</string>
|
||||
<string name="unsupported_gpu">サポートされていないGPU</string>
|
||||
<string name="unsupported_gpu_warning">あなたのGPUはドライバーインジェクションをサポートしていません。カスタムドライバーの設定は推奨されません。</string>
|
||||
|
||||
|
||||
@@ -554,7 +554,6 @@
|
||||
<string name="installing">설치 중…</string>
|
||||
<string name="latest">최신</string>
|
||||
<string name="recommended_driver">추천 드라이버:</string>
|
||||
<string name="gpu_model">GPU 모델:</string>
|
||||
<string name="unsupported_gpu">지원되지 않는 GPU</string>
|
||||
<string name="unsupported_gpu_warning">GPU가 드라이버 주입을 지원하지 않습니다. 사용자 정의 드라이버 설정은 권장되지 않습니다.</string>
|
||||
|
||||
|
||||
@@ -525,7 +525,6 @@
|
||||
<string name="installing">Installerer…</string>
|
||||
<string name="latest">Siste</string>
|
||||
<string name="recommended_driver">Anbefalt driver:</string>
|
||||
<string name="gpu_model">GPU-modell:</string>
|
||||
<string name="unsupported_gpu">Ustøttet GPU</string>
|
||||
<string name="unsupported_gpu_warning">GPU-en din støtter ikke driverinjeksjon. Det anbefales ikke å sette egendefinerte drivere.</string>
|
||||
|
||||
|
||||
@@ -294,6 +294,25 @@
|
||||
<string name="permission_denied_description">Odmówiłeś dostępu do powiadomień zbyt wiele razy, teraz musisz przyznać je w ustawieniach systemowych Androida.</string>
|
||||
<string name="about">O aplikacji</string>
|
||||
<string name="about_description">Wersja, podziękowania i więcej</string>
|
||||
<string name="system_information">Informacje o systemie</string>
|
||||
<string name="system_information_description">Wyświetl szczegółowe informacje o urządzeniu</string>
|
||||
<string name="device_manufacturer">Producent</string>
|
||||
<string name="device_model">Model</string>
|
||||
<string name="product">Produkt</string>
|
||||
<string name="android_version">Wersja Androida</string>
|
||||
<string name="android_security_patch">Poprawki bezpieczeństwa</string>
|
||||
<string name="build_id">Identyfikator kompilacji</string>
|
||||
<string name="general_information">Informacje ogólne</string>
|
||||
<string name="hardware">Sprzęt</string>
|
||||
<string name="supported_abis">Obsługiwane ABI</string>
|
||||
<string name="cpu_info">Informacje o CPU</string>
|
||||
<string name="gpu_information">Informacje o GPU</string>
|
||||
<string name="vulkan_driver_version">Wersja sterownika Vulkan</string>
|
||||
<string name="error_getting_emulator_info">Błąd podczas pobierania informacji o emulatorze</string>
|
||||
<string name="memory_info">Informacje o pamięci</string>
|
||||
<string name="total_memory">Całkowita pamięć</string>
|
||||
<string name="soc">SOC:</string>
|
||||
|
||||
<string name="warning_help">Pomoc</string>
|
||||
<string name="warning">Ostrzeżenie</string>
|
||||
<string name="warning_skip">Pomiń</string>
|
||||
@@ -649,7 +668,7 @@
|
||||
<string name="installing">Instalowanie…</string>
|
||||
<string name="latest">Najnowsza</string>
|
||||
<string name="recommended_driver">Zalecany sterownik:</string>
|
||||
<string name="gpu_model">Model GPU:</string>
|
||||
<string name="gpu_model">Model GPU</string>
|
||||
<string name="unsupported_gpu">Nieobsługiwana GPU</string>
|
||||
<string name="unsupported_gpu_warning">Twoja GPU nie obsługuje wstrzykiwania sterowników. Nie zaleca się ustawiania niestandardowych sterowników.</string>
|
||||
|
||||
@@ -696,6 +715,8 @@
|
||||
<string name="clear_shader_cache_description">Usuwa wszystkie shadery zbudowane podczas grania w tę grę</string>
|
||||
<string name="clear_shader_cache_warning_description">Możesz doświadczyć większych przycięć, gdy pamięć podręczna shaderów będzie się odbudowywać</string>
|
||||
<string name="cleared_shaders_successfully">Pomyślnie wyczyszczono shadery</string>
|
||||
<string name="driver_shader_wipe_dialog_title">Shadery wyczyszczone</string>
|
||||
<string name="driver_shader_wipe_dialog_message">Eden automatycznie wyczyścił wszystkie pamięci podręczne shaderów, aby zachować poprawność walidacji potoków Vulkan. Jest to wymagane przy zmianie sterowników GPU, aby zapobiec awariom i błędom graficznym. Podczas ponownego budowania shaderów możesz doświadczyć chwilowych przycięć.</string>
|
||||
<string name="addons_game">Dodatki: %1$s</string>
|
||||
<string name="save_data">Dane zapisu</string>
|
||||
<string name="save_data_description">Zarządzaj danymi zapisu specyficznymi dla tej gry</string>
|
||||
|
||||
@@ -647,7 +647,6 @@ uma tentativa de mapeamento automático</string>
|
||||
<string name="installing">Instalando…</string>
|
||||
<string name="latest">Mais recente</string>
|
||||
<string name="recommended_driver">Driver recomendado:</string>
|
||||
<string name="gpu_model">Modelo GPU:</string>
|
||||
<string name="unsupported_gpu">GPU não suportada</string>
|
||||
<string name="unsupported_gpu_warning">Sua GPU não suporta injeção de driver. Não é recomendado definir drivers personalizados.</string>
|
||||
|
||||
|
||||
@@ -605,7 +605,6 @@ uma tentativa de mapeamento automático</string>
|
||||
<string name="installing">A instalar…</string>
|
||||
<string name="latest">Mais recente</string>
|
||||
<string name="recommended_driver">Driver recomendado:</string>
|
||||
<string name="gpu_model">Modelo GPU:</string>
|
||||
<string name="unsupported_gpu">GPU não suportada</string>
|
||||
<string name="unsupported_gpu_warning">A sua GPU não suporta injeção de driver. Não é recomendado definir drivers personalizados.</string>
|
||||
|
||||
|
||||
@@ -294,6 +294,23 @@
|
||||
<string name="permission_denied_description">Вы слишком часто отклоняли это разрешение, и теперь вам нужно будет вручную предоставить его в настройках системы.</string>
|
||||
<string name="about">О нас</string>
|
||||
<string name="about_description">Версия сборки, титры и другое</string>
|
||||
<string name="system_information">Системная информация</string>
|
||||
<string name="system_information_description">Просмотреть подробную информацию об устройстве</string>
|
||||
<string name="device_manufacturer">Производитель</string>
|
||||
<string name="device_model">Модель</string>
|
||||
<string name="product">Продукт</string>
|
||||
<string name="android_version">Версия Android</string>
|
||||
<string name="android_security_patch">Патч безопасности</string>
|
||||
<string name="build_id">ID сборки</string>
|
||||
<string name="general_information">Общая информация</string>
|
||||
<string name="hardware">Аппаратное обеспечение</string>
|
||||
<string name="supported_abis">Поддерживаемые ABI</string>
|
||||
<string name="cpu_info">Информация о ЦП</string>
|
||||
<string name="gpu_information">Информация о ГПУ</string>
|
||||
<string name="vulkan_driver_version">Версия драйвера Vulkan</string>
|
||||
<string name="error_getting_emulator_info">Ошибка получения информации об эмуляторе</string>
|
||||
<string name="memory_info">Информация о памяти</string>
|
||||
<string name="total_memory">Общий объем памяти</string>
|
||||
<string name="warning_help">Помощь</string>
|
||||
<string name="warning">Предупреждение</string>
|
||||
<string name="warning_skip">Пропустить</string>
|
||||
@@ -649,7 +666,7 @@
|
||||
<string name="installing">Установка…</string>
|
||||
<string name="latest">Последний</string>
|
||||
<string name="recommended_driver">Рекомендуемый драйвер:</string>
|
||||
<string name="gpu_model">Модель ГПУ:</string>
|
||||
<string name="gpu_model">Модель ГПУ</string>
|
||||
<string name="unsupported_gpu">ГПУ не поддерживается</string>
|
||||
<string name="unsupported_gpu_warning">Ваш ГПУ не поддерживает замену драйверов. Установка сторонних драйверов не рекомендуется.</string>
|
||||
|
||||
@@ -696,6 +713,8 @@
|
||||
<string name="clear_shader_cache_description">Удаляет все шейдеры, созданные во время игры.</string>
|
||||
<string name="clear_shader_cache_warning_description">У вас будет больше лагов во время повторной генерации кэша шейдеров</string>
|
||||
<string name="cleared_shaders_successfully">Успешно очищены шейдеры</string>
|
||||
<string name="driver_shader_wipe_dialog_title">Шейдеры очищены</string>
|
||||
<string name="driver_shader_wipe_dialog_message">Eden автоматически очистил все кэши шейдеров для поддержания валидации Vulkan-конвейера. Это необходимо при переключении драйверов графического процессора для предотвращения сбоев и графических артефактов. Вы можете столкнуться с некоторыми подтормаживаниями во время перекомпиляции шейдеров.</string>
|
||||
<string name="addons_game">Аддоны: %1$s</string>
|
||||
<string name="save_data">Сохранить данные</string>
|
||||
<string name="save_data_description">Управлять сохранениями этой игры.</string>
|
||||
|
||||
@@ -603,7 +603,6 @@
|
||||
<string name="installing">Инсталирање ...</string>
|
||||
<string name="latest">Најновији</string>
|
||||
<string name="recommended_driver">Препоручени управљачки програм:</string>
|
||||
<string name="gpu_model">ГПУ модел:</string>
|
||||
<string name="unsupported_gpu">Неподржани ГПУ</string>
|
||||
<string name="unsupported_gpu_warning">Ваш ГПУ не подржава ињекцију управљачких програма. Покушај постављања прилагођених управљачких програма се не препоручује.</string>
|
||||
|
||||
|
||||
@@ -294,6 +294,25 @@
|
||||
<string name="permission_denied_description">Ви занадто часто відхиляли цей дозвіл, тож тепер вам потрібно буде вручну надати його в системних налаштуваннях.</string>
|
||||
<string name="about">Про нас</string>
|
||||
<string name="about_description">Версія збірки, титри та інше</string>
|
||||
<string name="system_information">Системна інформація</string>
|
||||
<string name="system_information_description">Переглянути детальну інформацію щодо пристрою</string>
|
||||
<string name="device_manufacturer">Виробник</string>
|
||||
<string name="device_model">Модель</string>
|
||||
<string name="product">Продукт</string>
|
||||
<string name="android_version">Версія Android</string>
|
||||
<string name="android_security_patch">Оновлення безпеки</string>
|
||||
<string name="build_id">ID збірки</string>
|
||||
<string name="general_information">Загальна інформація</string>
|
||||
<string name="hardware">Обладнання</string>
|
||||
<string name="supported_abis">Підтримувані ABI</string>
|
||||
<string name="cpu_info">Інформація щодо ЦП</string>
|
||||
<string name="gpu_information">Інформація щодо ГП</string>
|
||||
<string name="vulkan_driver_version">Версія драйвера Vulkan</string>
|
||||
<string name="error_getting_emulator_info">Помилка під час отримання інформації щодо емуляції</string>
|
||||
<string name="memory_info">Інформація щодо пам’яті</string>
|
||||
<string name="total_memory">Усього пам’яті</string>
|
||||
<string name="soc">SOC:</string>
|
||||
|
||||
<string name="warning_help">Допомога</string>
|
||||
<string name="warning">Попередження</string>
|
||||
<string name="warning_skip">Пропустити</string>
|
||||
@@ -649,7 +668,7 @@
|
||||
<string name="installing">Встановлення…</string>
|
||||
<string name="latest">Останній</string>
|
||||
<string name="recommended_driver">Рекомендований драйвер:</string>
|
||||
<string name="gpu_model">Модель GPU:</string>
|
||||
<string name="gpu_model">Модель ГП</string>
|
||||
<string name="unsupported_gpu">GPU не підтримується</string>
|
||||
<string name="unsupported_gpu_warning">Ваш GPU не підтримує заміну драйверів. Встановлення сторонніх драйверів не рекомендується.</string>
|
||||
|
||||
@@ -696,6 +715,8 @@
|
||||
<string name="clear_shader_cache_description">Вилучає усі скомпільовані шейдери під час відтворення цієї гри</string>
|
||||
<string name="clear_shader_cache_warning_description">Під час повторної генерації шейдерів можуть виникати затримки</string>
|
||||
<string name="cleared_shaders_successfully">Очищення шейдерів успішне </string>
|
||||
<string name="driver_shader_wipe_dialog_title">Шейдери очищено</string>
|
||||
<string name="driver_shader_wipe_dialog_message">Eden автоматично очистив увесь кеш шейдерів, щоб забезпечити перевірку конвеєра Vulkan. Це необхідно при зміні драйверів ГП, щоб уникнути збоїв і графічних помилок. У вас можуть виникнути мікропідвисання під час повторної компіляції шейдерів.</string>
|
||||
<string name="addons_game">Доповнення: %1$s</string>
|
||||
<string name="save_data">Збереження</string>
|
||||
<string name="save_data_description">Керування збереження цієї гри</string>
|
||||
|
||||
@@ -525,7 +525,6 @@
|
||||
<string name="installing">Đang cài đặt…</string>
|
||||
<string name="latest">Mới nhất</string>
|
||||
<string name="recommended_driver">Trình điều khiển đề xuất:</string>
|
||||
<string name="gpu_model">Model GPU:</string>
|
||||
<string name="unsupported_gpu">GPU không được hỗ trợ</string>
|
||||
<string name="unsupported_gpu_warning">GPU của bạn không hỗ trợ tiêm trình điều khiển. Không nên đặt trình điều khiển tùy chỉnh.</string>
|
||||
|
||||
|
||||
@@ -643,7 +643,6 @@
|
||||
<string name="installing">安装中……</string>
|
||||
<string name="latest">最新</string>
|
||||
<string name="recommended_driver">推荐驱动:</string>
|
||||
<string name="gpu_model">GPU型号:</string>
|
||||
<string name="unsupported_gpu">GPU不支持</string>
|
||||
<string name="unsupported_gpu_warning">您的GPU不支持驱动注入。不建议设置自定义驱动。</string>
|
||||
|
||||
|
||||
@@ -643,7 +643,6 @@
|
||||
<string name="installing">安裝中…</string>
|
||||
<string name="latest">最新</string>
|
||||
<string name="recommended_driver">推薦驅動程式:</string>
|
||||
<string name="gpu_model">GPU型號:</string>
|
||||
<string name="unsupported_gpu">不支援的GPU</string>
|
||||
<string name="unsupported_gpu_warning">您的GPU不支援驅動程式注入。不建議嘗試設定自訂驅動程式。</string>
|
||||
|
||||
|
||||
@@ -94,6 +94,8 @@
|
||||
<string name="dyna_state">Extended Dynamic State</string>
|
||||
<string name="dyna_state_description">Controls the number of features that can be used in Extended Dynamic State. Higher numbers allow for more features and can increase performance, but may cause issues with some drivers and vendors. The default value may vary depending on your system and hardware capabilities. This value can be changed until stability and a better visual quality are achieved.</string>
|
||||
<string name="disabled">Disabled</string>
|
||||
<string name="vertex_input_dynamic_state">Vertex Input Dynamic State</string>
|
||||
<string name="vertex_input_dynamic_state_description">Enables vertex input dynamic state feature for better quality and performance.</string>
|
||||
<string name="provoking_vertex">Provoking Vertex</string>
|
||||
<string name="provoking_vertex_description">Improves lighting and vertex handling in certain games. Only supported on Vulkan 1.0+ GPUs.</string>
|
||||
<string name="descriptor_indexing">Descriptor Indexing</string>
|
||||
@@ -269,9 +271,14 @@
|
||||
<string name="folder">Folder</string>
|
||||
<string name="dont_show_again">Don\'t Show Again</string>
|
||||
<string name="add_directory_success">New game directory added successfully </string>
|
||||
<string name="enable_update_checks">Check for updates on app startup.</string>
|
||||
<string name="enable_update_checks">Check for Updates</string>
|
||||
<string name="enable_update_checks_description">Check for updates on launch, and optionally download and install the new update.</string>
|
||||
<string name="update_available">Update Available</string>
|
||||
<string name="update_available_description">A new version is available: %1$s\n\nWould you like to download it?</string>
|
||||
<string name="downloading_update">Downloading Update</string>
|
||||
<string name="update_download_failed">Failed to download update</string>
|
||||
<string name="update_installed_successfully">Update installed successfully</string>
|
||||
<string name="update_install_failed">Failed to install update: %1$s</string>
|
||||
<string name="home_search">Search</string>
|
||||
<string name="home_settings">Settings</string>
|
||||
<string name="empty_gamelist">No files were found or no game directory has been selected yet.</string>
|
||||
@@ -441,9 +448,9 @@
|
||||
<string name="user_data_import_success">User data imported successfully</string>
|
||||
<string name="user_data_export_cancelled">Export cancelled</string>
|
||||
<string name="user_data_import_failed_description">Make sure the user data folders are at the root of the zip folder and contain a config file at config/config.ini and try again.</string>
|
||||
<string name="discord_link" translatable="false">https://discord.gg/kXAmGCXBGD</string>
|
||||
<string name="discord_link" translatable="false">https://discord.gg/HstXbPch7X</string>
|
||||
<string name="revolt_link" translatable="false">https://rvlt.gg/qKgFEAbH</string>
|
||||
<string name="x_link" translatable="false">https://x.com/edenemuofficial</string>
|
||||
<string name="x_link" translatable="false">https://nitter.poast.org/edenemuofficial</string>
|
||||
<string name="website_link" translatable="false">https://eden-emu.dev</string>
|
||||
<string name="github_link" translatable="false">https://git.eden-emu.dev/eden-emu</string>
|
||||
|
||||
@@ -706,7 +713,7 @@
|
||||
<string name="copy_details">Copy details</string>
|
||||
<string name="add_ons">Add-ons</string>
|
||||
<string name="add_ons_description">Toggle mods, updates and DLC</string>
|
||||
<string name="playtime">Playtime: </string>
|
||||
<string name="playtime">Playtime:</string>
|
||||
<string name="reset_playtime">Clear Playtime</string>
|
||||
<string name="reset_playtime_description">Reset the current game\'s playtime back to 0 seconds</string>
|
||||
<string name="reset_playtime_warning_description">This will clear the current game\'s playtime data. Are you sure?</string>
|
||||
@@ -714,6 +721,9 @@
|
||||
<string name="edit_playtime">Edit Playtime</string>
|
||||
<string name="hours">Hours</string>
|
||||
<string name="minutes">Minutes</string>
|
||||
<string name="hours_abbr">h</string>
|
||||
<string name="minutes_abbr">m</string>
|
||||
<string name="seconds_abbr">s</string>
|
||||
<string name="hours_must_be_between_0_and_9999">Hours must be between 0 and 9999</string>
|
||||
<string name="minutes_must_be_between_0_and_59">Minutes must be between 0 and 59</string>
|
||||
<string name="seconds_must_be_between_0_and_59">Seconds must be between 0 and 59</string>
|
||||
@@ -722,6 +732,8 @@
|
||||
<string name="clear_shader_cache_description">Removes all shaders built while playing this game</string>
|
||||
<string name="clear_shader_cache_warning_description">You will experience more stuttering as the shader cache regenerates</string>
|
||||
<string name="cleared_shaders_successfully">Cleared shaders successfully</string>
|
||||
<string name="driver_shader_wipe_dialog_title">Shaders Cleared</string>
|
||||
<string name="driver_shader_wipe_dialog_message">Eden has automatically cleared all shader caches to maintain Vulkan pipeline validation. This is required when switching GPU drivers to prevent crashes and graphical corruption. You may experience some stuttering as shaders rebuild.</string>
|
||||
<string name="addons_game">Addons: %1$s</string>
|
||||
<string name="save_data">Save data</string>
|
||||
<string name="save_data_description">Manage save data specific to this game</string>
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<paths xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- this is required to share files in the app's internal storage -->
|
||||
<cache-path name="apk_cache" path="." />
|
||||
<external-cache-path name="external_apk_cache" path="." />
|
||||
<files-path name="files" path="." />
|
||||
<external-files-path name="external_files" path="." />
|
||||
</paths>
|
||||
@@ -546,6 +546,7 @@ struct Values {
|
||||
Category::RendererExtensions,
|
||||
Specialization::Scalar};
|
||||
|
||||
SwitchableSetting<bool> vertex_input_dynamic_state{linkage, true, "vertex_input_dynamic_state", Category::RendererExtensions};
|
||||
SwitchableSetting<bool> provoking_vertex{linkage, false, "provoking_vertex", Category::RendererExtensions};
|
||||
SwitchableSetting<bool> descriptor_indexing{linkage, false, "descriptor_indexing", Category::RendererExtensions};
|
||||
SwitchableSetting<bool> sample_shading{linkage, false, "sample_shading", Category::RendererExtensions, Specialization::Paired};
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
#include "common/assert.h"
|
||||
#include "common/logging/log.h"
|
||||
#include "core/core.h"
|
||||
#include "core/hle/kernel/k_event.h"
|
||||
#include "core/hle/kernel/k_process.h"
|
||||
#include "core/hle/service/nvdrv/core/container.h"
|
||||
#include "core/hle/service/nvdrv/core/nvmap.h"
|
||||
@@ -162,114 +161,11 @@ NvResult nvhost_gpu::ZCullBind(IoctlZCullBind& params) {
|
||||
}
|
||||
|
||||
NvResult nvhost_gpu::SetErrorNotifier(IoctlSetErrorNotifier& params) {
|
||||
LOG_DEBUG(Service_NVDRV, "called, offset={:#X}, size={:#X}, mem={:#X}",
|
||||
params.offset, params.size, params.mem);
|
||||
|
||||
if (!params.mem || !params.size) {
|
||||
std::scoped_lock lk(channel_mutex);
|
||||
if (!channel_state->initialized) {
|
||||
LOG_CRITICAL(Service_NVDRV, "No address space bound for setting up error notifier!");
|
||||
return NvResult::NotInitialized;
|
||||
}
|
||||
|
||||
error_notifier_params = {};
|
||||
LOG_DEBUG(Service_NVDRV, "Error notifier disabled!");
|
||||
return NvResult::Success;
|
||||
}
|
||||
|
||||
constexpr u64 error_notification_size = sizeof(IoctlGetErrorNotification);
|
||||
if (params.size < error_notification_size) {
|
||||
LOG_ERROR(Service_NVDRV, "Error notification size: {:#X} is too small. Need at least {:#X}", params.size,
|
||||
error_notification_size);
|
||||
return NvResult::InvalidSize;
|
||||
}
|
||||
|
||||
auto handle = nvmap.GetHandle(static_cast<NvCore::NvMap::Handle::Id>(params.mem));
|
||||
if (!handle) {
|
||||
LOG_ERROR(Service_NVDRV, "Unknown nvmap handle id {:#X}", params.mem);
|
||||
return NvResult::BadParameter;
|
||||
}
|
||||
|
||||
if (params.offset > handle->size || params.size > (handle->size - params.offset)) {
|
||||
LOG_ERROR(Service_NVDRV, "Error notifier out of bounds: offset={:#X} size={:#X} handle size={:#X}", params.offset,
|
||||
params.size, handle->size);
|
||||
return NvResult::InvalidSize;
|
||||
}
|
||||
|
||||
u64 write_address, write_offset, handle_id;
|
||||
{
|
||||
std::scoped_lock lk(channel_mutex);
|
||||
if (!channel_state->initialized) {
|
||||
LOG_CRITICAL(Service_NVDRV, "No address space bound for setting up error notifier!");
|
||||
return NvResult::NotInitialized;
|
||||
}
|
||||
|
||||
error_notifier_params = params;
|
||||
write_address = handle->address;
|
||||
write_offset = params.offset;
|
||||
handle_id = handle->id;
|
||||
}
|
||||
|
||||
if (write_address) {
|
||||
IoctlGetErrorNotification error_notification{};
|
||||
error_notification.status = static_cast<u16>(NotifierStatus::NoError);
|
||||
system.ApplicationMemory().WriteBlock(write_address + write_offset, &error_notification, sizeof(error_notification));
|
||||
} else {
|
||||
LOG_WARNING(Service_NVDRV,
|
||||
"nvmap handle id {:#X} has no virtual address assigned; "
|
||||
"skipping initialization write for error notification!",
|
||||
handle_id);
|
||||
}
|
||||
|
||||
LOG_WARNING(Service_NVDRV, "(STUBBED) called, offset={:X}, size={:X}, mem={:X}", params.offset,
|
||||
params.size, params.mem);
|
||||
return NvResult::Success;
|
||||
}
|
||||
|
||||
void nvhost_gpu::PostErrorNotification(u32 info32, u16 info16, NotifierStatus status) {
|
||||
IoctlSetErrorNotifier error_notifier_params_snapshot{};
|
||||
Kernel::KEvent *error_notifier_event_snapshot{};
|
||||
{
|
||||
std::scoped_lock lk(channel_mutex);
|
||||
error_notifier_params_snapshot = error_notifier_params;
|
||||
error_notifier_event_snapshot = error_notifier_event;
|
||||
}
|
||||
|
||||
if (!error_notifier_params_snapshot.mem || error_notifier_params_snapshot.size < sizeof(IoctlGetErrorNotification)) {
|
||||
LOG_DEBUG(Service_NVDRV, "PostErrorNotification: notifier not configured or too small!");
|
||||
return;
|
||||
}
|
||||
|
||||
auto handle = nvmap.GetHandle(static_cast<NvCore::NvMap::Handle::Id>(error_notifier_params_snapshot.mem));
|
||||
if (!handle || !handle->address) {
|
||||
LOG_ERROR(Service_NVDRV, "PostErrorNotification: invalid handle or virtual address!");
|
||||
return;
|
||||
}
|
||||
|
||||
IoctlGetErrorNotification error_init{};
|
||||
error_init.info32 = info32;
|
||||
error_init.info16 = info16;
|
||||
error_init.status = static_cast<u16>(status);
|
||||
const u64 write_size = std::min<u64>(sizeof(IoctlGetErrorNotification),
|
||||
error_notifier_params_snapshot.size);
|
||||
if (error_notifier_params_snapshot.offset >= handle->size ||
|
||||
write_size > (handle->size - error_notifier_params_snapshot.offset)) {
|
||||
LOG_ERROR(Service_NVDRV, "PostErrorNotification: bounds check failed!");
|
||||
return;
|
||||
}
|
||||
|
||||
const u64 virtual_address = handle->address + error_notifier_params_snapshot.offset;
|
||||
if (virtual_address < handle->address) {
|
||||
LOG_ERROR(Service_NVDRV, "PostErrorNotification: virtual address overflow!");
|
||||
return;
|
||||
}
|
||||
|
||||
auto &application_memory = system.ApplicationMemory();
|
||||
application_memory.WriteBlock(virtual_address, &error_init, write_size);
|
||||
|
||||
if (error_notifier_event_snapshot) {
|
||||
error_notifier_event_snapshot->Signal();
|
||||
}
|
||||
}
|
||||
|
||||
NvResult nvhost_gpu::SetChannelPriority(IoctlChannelSetPriority& params) {
|
||||
channel_priority = params.priority;
|
||||
LOG_INFO(Service_NVDRV, "called, priority={:X}", channel_priority);
|
||||
@@ -382,7 +278,7 @@ NvResult nvhost_gpu::AllocateObjectContext(IoctlAllocObjCtx& params) {
|
||||
params.flags = allowed_mask;
|
||||
}
|
||||
|
||||
s32_le ctx_class_number_index =
|
||||
s32_le ctx_class_number_index =
|
||||
GetObjectContextClassNumberIndex(static_cast<CtxClasses>(params.class_num));
|
||||
if (ctx_class_number_index < 0) {
|
||||
LOG_ERROR(Service_NVDRV, "Invalid class number for object context: {:#X}",
|
||||
@@ -461,7 +357,6 @@ NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, Tegra::CommandL
|
||||
|
||||
if (flags.fence_wait.Value()) {
|
||||
if (flags.increment_value.Value()) {
|
||||
PostErrorNotification(flags.raw, 0, NotifierStatus::GenericError);
|
||||
return NvResult::BadParameter;
|
||||
}
|
||||
|
||||
@@ -495,11 +390,7 @@ NvResult nvhost_gpu::SubmitGPFIFOImpl(IoctlSubmitGpfifo& params, Tegra::CommandL
|
||||
NvResult nvhost_gpu::SubmitGPFIFOBase1(IoctlSubmitGpfifo& params,
|
||||
std::span<Tegra::CommandListHeader> commands, bool kickoff) {
|
||||
if (params.num_entries > commands.size()) {
|
||||
LOG_ERROR(Service_NVDRV,
|
||||
"SubmitGPFIFO: num_entries={:#X} > provided commands={:#X}",
|
||||
params.num_entries, commands.size());
|
||||
|
||||
PostErrorNotification(params.num_entries, 0, NotifierStatus::BadGpfifo);
|
||||
UNIMPLEMENTED();
|
||||
return NvResult::InvalidSize;
|
||||
}
|
||||
|
||||
@@ -518,7 +409,7 @@ NvResult nvhost_gpu::SubmitGPFIFOBase1(IoctlSubmitGpfifo& params,
|
||||
NvResult nvhost_gpu::SubmitGPFIFOBase2(IoctlSubmitGpfifo& params,
|
||||
std::span<const Tegra::CommandListHeader> commands) {
|
||||
if (params.num_entries > commands.size()) {
|
||||
PostErrorNotification(params.num_entries, 0, NotifierStatus::BadGpfifo);
|
||||
UNIMPLEMENTED();
|
||||
return NvResult::InvalidSize;
|
||||
}
|
||||
|
||||
|
||||
@@ -72,16 +72,6 @@ private:
|
||||
High = 0x96,
|
||||
};
|
||||
|
||||
enum class NotifierStatus : u16_le {
|
||||
NoError = 0xFFFF,
|
||||
GenericError = 0x0001,
|
||||
MmuFault = 0x0002,
|
||||
IllegalMethod= 0x0003,
|
||||
InvalidObject= 0x0004,
|
||||
BadGpfifo = 0x0005,
|
||||
TimeoutHang = 0x0006,
|
||||
};
|
||||
|
||||
struct IoctlSetNvmapFD {
|
||||
s32_le nvmap_fd{};
|
||||
};
|
||||
@@ -188,8 +178,6 @@ private:
|
||||
s32_le nvmap_fd{};
|
||||
u64_le user_data{};
|
||||
IoctlZCullBind zcull_params{};
|
||||
IoctlSetErrorNotifier error_notifier_params{};
|
||||
void PostErrorNotification(u32 info32, u16 info16, NotifierStatus status);
|
||||
std::array<std::optional<IoctlAllocObjCtx>, 6> ctxObjs{};
|
||||
u32_le channel_priority{};
|
||||
u32_le channel_timeslice{};
|
||||
|
||||
@@ -167,25 +167,9 @@ void PlayTimeManager::ResetProgramPlayTime(u64 program_id) {
|
||||
Save();
|
||||
}
|
||||
|
||||
std::string PlayTimeManager::GetReadablePlayTime(u64 time_seconds) {
|
||||
if (time_seconds == 0) {
|
||||
return {};
|
||||
}
|
||||
|
||||
const auto time_minutes = std::max(static_cast<double>(time_seconds) / 60.0, 1.0);
|
||||
const auto time_hours = static_cast<double>(time_seconds) / 3600.0;
|
||||
const bool is_minutes = time_minutes < 60.0;
|
||||
|
||||
if (is_minutes) {
|
||||
return fmt::format("{:.0f} m", time_minutes);
|
||||
} else {
|
||||
const bool has_remainder = time_seconds % 60 != 0;
|
||||
if (has_remainder) {
|
||||
return fmt::format("{:.1f} h", time_hours);
|
||||
} else {
|
||||
return fmt::format("{:.0f} h", time_hours);
|
||||
}
|
||||
}
|
||||
std::string PlayTimeManager::GetReadablePlayTime(u64 t) {
|
||||
return t > 0 ? fmt::format("{:02}:{:02}:{:02}", t / 3600, (t / 60) % 60, t % 60)
|
||||
: std::string{};
|
||||
}
|
||||
|
||||
std::string PlayTimeManager::GetPlayTimeHours(u64 time_seconds) {
|
||||
|
||||
@@ -329,6 +329,11 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QObject* parent)
|
||||
tr("Extended Dynamic State"),
|
||||
tr("Controls the number of features that can be used in Extended Dynamic State.\nHigher numbers allow for more features and can increase performance, but may cause issues.\nThe default value is per-system."));
|
||||
|
||||
INSERT(Settings,
|
||||
vertex_input_dynamic_state,
|
||||
tr("Vertex Input Dynamic State"),
|
||||
tr("Enables vertex input dynamic state feature for better quality and performance."));
|
||||
|
||||
INSERT(Settings,
|
||||
provoking_vertex,
|
||||
tr("Provoking Vertex"),
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -542,8 +545,9 @@ Id EmitImageFetch(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id c
|
||||
lod = Id{};
|
||||
}
|
||||
const ImageOperands operands(lod, ms);
|
||||
return Emit(&EmitContext::OpImageSparseFetch, &EmitContext::OpImageFetch, ctx, inst, ctx.F32[4],
|
||||
TextureImage(ctx, info, index), coords, operands.MaskOptional(), operands.Span());
|
||||
return Emit(&EmitContext::OpImageSparseFetch, &EmitContext::OpImageFetch, ctx, inst,
|
||||
ctx.F32[4], TextureImage(ctx, info, index), coords, operands.MaskOptional(),
|
||||
operands.Span());
|
||||
}
|
||||
|
||||
Id EmitImageQueryDimensions(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id lod,
|
||||
|
||||
@@ -315,6 +315,9 @@ void DefineSsbos(EmitContext& ctx, StorageTypeDefinition& type_def,
|
||||
ctx.Decorate(id, spv::Decoration::Binding, binding);
|
||||
ctx.Decorate(id, spv::Decoration::DescriptorSet, 0U);
|
||||
ctx.Name(id, fmt::format("ssbo{}", index));
|
||||
if (!desc.is_written) {
|
||||
ctx.Decorate(id, spv::Decoration::NonWritable);
|
||||
}
|
||||
if (ctx.profile.supported_spirv >= 0x00010400) {
|
||||
ctx.interfaces.push_back(id);
|
||||
}
|
||||
@@ -1432,6 +1435,9 @@ void EmitContext::DefineInputs(const IR::Program& program) {
|
||||
}
|
||||
if (info.uses_sample_id) {
|
||||
sample_id = DefineInput(*this, U32[1], false, spv::BuiltIn::SampleId);
|
||||
if (stage == Stage::Fragment) {
|
||||
Decorate(sample_id, spv::Decoration::Flat);
|
||||
}
|
||||
}
|
||||
if (info.uses_is_helper_invocation) {
|
||||
is_helper_invocation = DefineInput(*this, U1, false, spv::BuiltIn::HelperInvocation);
|
||||
@@ -1442,6 +1448,13 @@ void EmitContext::DefineInputs(const IR::Program& program) {
|
||||
subgroup_mask_le = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupLeMaskKHR);
|
||||
subgroup_mask_gt = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGtMaskKHR);
|
||||
subgroup_mask_ge = DefineInput(*this, U32[4], false, spv::BuiltIn::SubgroupGeMaskKHR);
|
||||
if (stage == Stage::Fragment) {
|
||||
Decorate(subgroup_mask_eq, spv::Decoration::Flat);
|
||||
Decorate(subgroup_mask_lt, spv::Decoration::Flat);
|
||||
Decorate(subgroup_mask_le, spv::Decoration::Flat);
|
||||
Decorate(subgroup_mask_gt, spv::Decoration::Flat);
|
||||
Decorate(subgroup_mask_ge, spv::Decoration::Flat);
|
||||
}
|
||||
}
|
||||
if (info.uses_fswzadd || info.uses_subgroup_invocation_id || info.uses_subgroup_shuffles ||
|
||||
(profile.warp_size_potentially_larger_than_guest &&
|
||||
@@ -1449,7 +1462,9 @@ void EmitContext::DefineInputs(const IR::Program& program) {
|
||||
AddCapability(spv::Capability::GroupNonUniform);
|
||||
subgroup_local_invocation_id =
|
||||
DefineInput(*this, U32[1], false, spv::BuiltIn::SubgroupLocalInvocationId);
|
||||
Decorate(subgroup_local_invocation_id, spv::Decoration::Flat);
|
||||
if (stage == Stage::Fragment) {
|
||||
Decorate(subgroup_local_invocation_id, spv::Decoration::Flat);
|
||||
}
|
||||
}
|
||||
if (info.uses_fswzadd) {
|
||||
const Id f32_one{Const(1.0f)};
|
||||
@@ -1461,6 +1476,9 @@ void EmitContext::DefineInputs(const IR::Program& program) {
|
||||
}
|
||||
if (loads[IR::Attribute::PrimitiveId]) {
|
||||
primitive_id = DefineInput(*this, U32[1], false, spv::BuiltIn::PrimitiveId);
|
||||
if (stage == Stage::Fragment) {
|
||||
Decorate(primitive_id, spv::Decoration::Flat);
|
||||
}
|
||||
}
|
||||
if (loads[IR::Attribute::Layer]) {
|
||||
AddCapability(spv::Capability::Geometry);
|
||||
@@ -1552,17 +1570,21 @@ void EmitContext::DefineInputs(const IR::Program& program) {
|
||||
if (stage != Stage::Fragment) {
|
||||
continue;
|
||||
}
|
||||
switch (info.interpolation[index]) {
|
||||
case Interpolation::Smooth:
|
||||
// Default
|
||||
// Decorate(id, spv::Decoration::Smooth);
|
||||
break;
|
||||
case Interpolation::NoPerspective:
|
||||
Decorate(id, spv::Decoration::NoPerspective);
|
||||
break;
|
||||
case Interpolation::Flat:
|
||||
const bool is_integer = input_type == AttributeType::SignedInt ||
|
||||
input_type == AttributeType::UnsignedInt;
|
||||
if (is_integer) {
|
||||
Decorate(id, spv::Decoration::Flat);
|
||||
break;
|
||||
} else {
|
||||
switch (info.interpolation[index]) {
|
||||
case Interpolation::Smooth:
|
||||
break;
|
||||
case Interpolation::NoPerspective:
|
||||
Decorate(id, spv::Decoration::NoPerspective);
|
||||
break;
|
||||
case Interpolation::Flat:
|
||||
Decorate(id, spv::Decoration::Flat);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (stage == Stage::TessellationEval) {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -351,7 +354,7 @@ std::optional<StorageBufferAddr> Track(const IR::Value& value, const Bias* bias)
|
||||
.index = index.U32(),
|
||||
.offset = offset.U32(),
|
||||
};
|
||||
const u32 alignment{bias ? bias->alignment : 8U};
|
||||
const u32 alignment{bias ? bias->alignment : 16U};
|
||||
if (!Common::IsAligned(storage_buffer.offset, alignment)) {
|
||||
// The SSBO pointer has to be aligned
|
||||
return std::nullopt;
|
||||
@@ -372,9 +375,9 @@ void CollectStorageBuffers(IR::Block& block, IR::Inst& inst, StorageInfo& info)
|
||||
// avoid getting false positives
|
||||
static constexpr Bias nvn_bias{
|
||||
.index = 0,
|
||||
.offset_begin = 0x100,
|
||||
.offset_end = 0x700,
|
||||
.alignment = 16,
|
||||
.offset_begin = 0x110,
|
||||
.offset_end = 0x800,
|
||||
.alignment = 32,
|
||||
};
|
||||
// Track the low address of the instruction
|
||||
const std::optional<LowAddrInfo> low_addr_info{TrackLowAddress(&inst)};
|
||||
|
||||
@@ -1196,17 +1196,15 @@ void RasterizerOpenGL::SyncLogicOpState() {
|
||||
|
||||
if (device.IsAmd()) {
|
||||
using namespace Tegra::Engines;
|
||||
struct In {
|
||||
const Maxwell3D::Regs::VertexAttribute::Type d;
|
||||
In(Maxwell3D::Regs::VertexAttribute::Type n) : d(n) {}
|
||||
bool operator()(Maxwell3D::Regs::VertexAttribute n) const {
|
||||
return n.type == d;
|
||||
}
|
||||
};
|
||||
|
||||
bool has_float =
|
||||
std::any_of(regs.vertex_attrib_format.begin(), regs.vertex_attrib_format.end(),
|
||||
In(Maxwell3D::Regs::VertexAttribute::Type::Float));
|
||||
bool has_float = std::any_of(
|
||||
regs.vertex_attrib_format.begin(),
|
||||
regs.vertex_attrib_format.end(),
|
||||
[](const auto& n) {
|
||||
return n.type == Maxwell3D::Regs::VertexAttribute::Type::Float;
|
||||
}
|
||||
);
|
||||
|
||||
regs.logic_op.enable = static_cast<u32>(!has_float);
|
||||
}
|
||||
|
||||
|
||||
@@ -525,18 +525,24 @@ BlitImageHelper::BlitImageHelper(const Device& device_, Scheduler& scheduler_,
|
||||
nullptr, PUSH_CONSTANT_RANGE<VK_SHADER_STAGE_FRAGMENT_BIT, sizeof(float) * 4>))),
|
||||
full_screen_vert(BuildShader(device, FULL_SCREEN_TRIANGLE_VERT_SPV)),
|
||||
blit_color_to_color_frag(BuildShader(device, BLIT_COLOR_FLOAT_FRAG_SPV)),
|
||||
blit_depth_stencil_frag(BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV)),
|
||||
blit_depth_stencil_frag(device.IsExtShaderStencilExportSupported()
|
||||
? BuildShader(device, VULKAN_BLIT_DEPTH_STENCIL_FRAG_SPV)
|
||||
: vk::ShaderModule{}),
|
||||
clear_color_vert(BuildShader(device, VULKAN_COLOR_CLEAR_VERT_SPV)),
|
||||
clear_color_frag(BuildShader(device, VULKAN_COLOR_CLEAR_FRAG_SPV)),
|
||||
clear_stencil_frag(BuildShader(device, VULKAN_DEPTHSTENCIL_CLEAR_FRAG_SPV)),
|
||||
convert_depth_to_float_frag(BuildShader(device, CONVERT_DEPTH_TO_FLOAT_FRAG_SPV)),
|
||||
convert_float_to_depth_frag(BuildShader(device, CONVERT_FLOAT_TO_DEPTH_FRAG_SPV)),
|
||||
convert_abgr8_to_d24s8_frag(BuildShader(device, CONVERT_ABGR8_TO_D24S8_FRAG_SPV)),
|
||||
convert_abgr8_to_d24s8_frag(device.IsExtShaderStencilExportSupported()
|
||||
? BuildShader(device, CONVERT_ABGR8_TO_D24S8_FRAG_SPV)
|
||||
: vk::ShaderModule{}),
|
||||
convert_abgr8_to_d32f_frag(BuildShader(device, CONVERT_ABGR8_TO_D32F_FRAG_SPV)),
|
||||
convert_d32f_to_abgr8_frag(BuildShader(device, CONVERT_D32F_TO_ABGR8_FRAG_SPV)),
|
||||
convert_d24s8_to_abgr8_frag(BuildShader(device, CONVERT_D24S8_TO_ABGR8_FRAG_SPV)),
|
||||
convert_s8d24_to_abgr8_frag(BuildShader(device, CONVERT_S8D24_TO_ABGR8_FRAG_SPV)),
|
||||
convert_abgr8_srgb_to_d24s8_frag(BuildShader(device, CONVERT_ABGR8_SRGB_TO_D24S8_FRAG_SPV)),
|
||||
convert_abgr8_srgb_to_d24s8_frag(device.IsExtShaderStencilExportSupported()
|
||||
? BuildShader(device, CONVERT_ABGR8_SRGB_TO_D24S8_FRAG_SPV)
|
||||
: vk::ShaderModule{}),
|
||||
convert_rgba_to_bgra_frag(BuildShader(device, CONVERT_RGBA8_TO_BGRA8_FRAG_SPV)),
|
||||
convert_yuv420_to_rgb_comp(BuildShader(device, CONVERT_YUV420_TO_RGB_COMP_SPV)),
|
||||
convert_rgb_to_yuv420_comp(BuildShader(device, CONVERT_RGB_TO_YUV420_COMP_SPV)),
|
||||
@@ -667,6 +673,11 @@ void BlitImageHelper::ConvertR16ToD16(const Framebuffer* dst_framebuffer,
|
||||
|
||||
void BlitImageHelper::ConvertABGR8ToD24S8(const Framebuffer* dst_framebuffer,
|
||||
const ImageView& src_image_view) {
|
||||
if (!device.IsExtShaderStencilExportSupported()) {
|
||||
// Shader requires VK_EXT_shader_stencil_export which is not available
|
||||
LOG_WARNING(Render_Vulkan, "ConvertABGR8ToD24S8 requires shader_stencil_export, skipping");
|
||||
return;
|
||||
}
|
||||
ConvertPipelineDepthTargetEx(convert_abgr8_to_d24s8_pipeline, dst_framebuffer->RenderPass(),
|
||||
convert_abgr8_to_d24s8_frag);
|
||||
Convert(*convert_abgr8_to_d24s8_pipeline, dst_framebuffer, src_image_view);
|
||||
@@ -702,6 +713,11 @@ void BlitImageHelper::ConvertS8D24ToABGR8(const Framebuffer* dst_framebuffer,
|
||||
|
||||
void BlitImageHelper::ConvertABGR8SRGBToD24S8(const Framebuffer* dst_framebuffer,
|
||||
const ImageView& src_image_view) {
|
||||
if (!device.IsExtShaderStencilExportSupported()) {
|
||||
// Shader requires VK_EXT_shader_stencil_export which is not available
|
||||
LOG_WARNING(Render_Vulkan, "ConvertABGR8SRGBToD24S8 requires shader_stencil_export, skipping");
|
||||
return;
|
||||
}
|
||||
ConvertPipelineDepthTargetEx(convert_abgr8_srgb_to_d24s8_pipeline,
|
||||
dst_framebuffer->RenderPass(),
|
||||
convert_abgr8_srgb_to_d24s8_frag);
|
||||
|
||||
@@ -60,7 +60,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe
|
||||
raw1 = 0;
|
||||
extended_dynamic_state.Assign(features.has_extended_dynamic_state ? 1 : 0);
|
||||
extended_dynamic_state_2.Assign(features.has_extended_dynamic_state_2 ? 1 : 0);
|
||||
extended_dynamic_state_2_extra.Assign(features.has_extended_dynamic_state_2_extra ? 1 : 0);
|
||||
extended_dynamic_state_2_logic_op.Assign(features.has_extended_dynamic_state_2_logic_op ? 1 : 0);
|
||||
extended_dynamic_state_3_blend.Assign(features.has_extended_dynamic_state_3_blend ? 1 : 0);
|
||||
extended_dynamic_state_3_enables.Assign(features.has_extended_dynamic_state_3_enables ? 1 : 0);
|
||||
dynamic_vertex_input.Assign(features.has_dynamic_vertex_input ? 1 : 0);
|
||||
@@ -158,7 +158,7 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d, DynamicFe
|
||||
return static_cast<u16>(array.stride.Value());
|
||||
});
|
||||
}
|
||||
if (!extended_dynamic_state_2_extra) {
|
||||
if (!extended_dynamic_state_2_logic_op) {
|
||||
dynamic_state.Refresh2(regs, topology_, extended_dynamic_state_2);
|
||||
}
|
||||
if (!extended_dynamic_state_3_blend) {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
// SPDX-FileCopyrightText: Copyright 2019 yuzu Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
@@ -20,7 +23,8 @@ using Maxwell = Tegra::Engines::Maxwell3D::Regs;
|
||||
struct DynamicFeatures {
|
||||
bool has_extended_dynamic_state;
|
||||
bool has_extended_dynamic_state_2;
|
||||
bool has_extended_dynamic_state_2_extra;
|
||||
bool has_extended_dynamic_state_2_logic_op;
|
||||
bool has_extended_dynamic_state_2_patch_control_points;
|
||||
bool has_extended_dynamic_state_3_blend;
|
||||
bool has_extended_dynamic_state_3_enables;
|
||||
bool has_dynamic_vertex_input;
|
||||
@@ -186,7 +190,7 @@ struct FixedPipelineState {
|
||||
u32 raw1;
|
||||
BitField<0, 1, u32> extended_dynamic_state;
|
||||
BitField<1, 1, u32> extended_dynamic_state_2;
|
||||
BitField<2, 1, u32> extended_dynamic_state_2_extra;
|
||||
BitField<2, 1, u32> extended_dynamic_state_2_logic_op;
|
||||
BitField<3, 1, u32> extended_dynamic_state_3_blend;
|
||||
BitField<4, 1, u32> extended_dynamic_state_3_enables;
|
||||
BitField<5, 1, u32> dynamic_vertex_input;
|
||||
|
||||
@@ -579,12 +579,13 @@ void BufferCacheRuntime::BindQuadIndexBuffer(PrimitiveTopology topology, u32 fir
|
||||
}
|
||||
}
|
||||
|
||||
void BufferCacheRuntime::BindVertexBuffer(u32 index, VkBuffer buffer, u32 offset, u32 size,
|
||||
u32 stride) {
|
||||
void BufferCacheRuntime::BindVertexBuffer(u32 index, VkBuffer buffer, u32 offset, u32 size, u32 stride) {
|
||||
if (index >= device.GetMaxVertexInputBindings()) {
|
||||
return;
|
||||
}
|
||||
if (device.IsExtExtendedDynamicStateSupported()) {
|
||||
// Use BindVertexBuffers2EXT only if EDS1 is supported AND VIDS is not active
|
||||
// When VIDS is active, the pipeline doesn't declare VERTEX_INPUT_BINDING_STRIDE as dynamic
|
||||
if (device.IsExtExtendedDynamicStateSupported() && !device.IsExtVertexInputDynamicStateSupported()) {
|
||||
scheduler.Record([index, buffer, offset, size, stride](vk::CommandBuffer cmdbuf) {
|
||||
const VkDeviceSize vk_offset = buffer != VK_NULL_HANDLE ? offset : 0;
|
||||
const VkDeviceSize vk_size = buffer != VK_NULL_HANDLE ? size : VK_WHOLE_SIZE;
|
||||
@@ -624,7 +625,8 @@ void BufferCacheRuntime::BindVertexBuffers(VideoCommon::HostBindings<Buffer>& bi
|
||||
if (binding_count == 0) {
|
||||
return;
|
||||
}
|
||||
if (device.IsExtExtendedDynamicStateSupported()) {
|
||||
// Use BindVertexBuffers2EXT only if EDS1 is supported AND VIDS is not active
|
||||
if (device.IsExtExtendedDynamicStateSupported() && !device.IsExtVertexInputDynamicStateSupported()) {
|
||||
scheduler.Record([bindings_ = std::move(bindings),
|
||||
buffer_handles_ = std::move(buffer_handles),
|
||||
binding_count](vk::CommandBuffer cmdbuf) {
|
||||
|
||||
@@ -418,6 +418,9 @@ ConditionalRenderingResolvePass::ConditionalRenderingResolvePass(
|
||||
|
||||
void ConditionalRenderingResolvePass::Resolve(VkBuffer dst_buffer, VkBuffer src_buffer,
|
||||
u32 src_offset, bool compare_to_zero) {
|
||||
if (!device.IsExtConditionalRendering()) {
|
||||
return;
|
||||
}
|
||||
const size_t compare_size = compare_to_zero ? 8 : 24;
|
||||
|
||||
compute_pass_descriptor_queue.Acquire();
|
||||
@@ -448,7 +451,7 @@ void ConditionalRenderingResolvePass::Resolve(VkBuffer dst_buffer, VkBuffer src_
|
||||
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_COMPUTE, *layout, 0, set, {});
|
||||
cmdbuf.Dispatch(1, 1, 1);
|
||||
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
|
||||
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, 0, write_barrier);
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, write_barrier);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -470,6 +473,14 @@ QueriesPrefixScanPass::QueriesPrefixScanPass(
|
||||
void QueriesPrefixScanPass::Run(VkBuffer accumulation_buffer, VkBuffer dst_buffer,
|
||||
VkBuffer src_buffer, size_t number_of_sums,
|
||||
size_t min_accumulation_limit, size_t max_accumulation_limit) {
|
||||
constexpr VkAccessFlags BASE_DST_ACCESS = VK_ACCESS_SHADER_READ_BIT |
|
||||
VK_ACCESS_TRANSFER_READ_BIT |
|
||||
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
|
||||
VK_ACCESS_INDIRECT_COMMAND_READ_BIT |
|
||||
VK_ACCESS_INDEX_READ_BIT |
|
||||
VK_ACCESS_UNIFORM_READ_BIT;
|
||||
const VkAccessFlags conditional_access =
|
||||
device.IsExtConditionalRendering() ? VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT : 0;
|
||||
size_t current_runs = number_of_sums;
|
||||
size_t offset = 0;
|
||||
while (current_runs != 0) {
|
||||
@@ -486,22 +497,18 @@ void QueriesPrefixScanPass::Run(VkBuffer accumulation_buffer, VkBuffer dst_buffe
|
||||
|
||||
scheduler.RequestOutsideRenderPassOperationContext();
|
||||
scheduler.Record([this, descriptor_data, min_accumulation_limit, max_accumulation_limit,
|
||||
runs_to_do, used_offset](vk::CommandBuffer cmdbuf) {
|
||||
runs_to_do, used_offset, conditional_access](vk::CommandBuffer cmdbuf) {
|
||||
static constexpr VkMemoryBarrier read_barrier{
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
|
||||
.pNext = nullptr,
|
||||
.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT,
|
||||
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT,
|
||||
};
|
||||
static constexpr VkMemoryBarrier write_barrier{
|
||||
const VkMemoryBarrier write_barrier{
|
||||
.sType = VK_STRUCTURE_TYPE_MEMORY_BARRIER,
|
||||
.pNext = nullptr,
|
||||
.srcAccessMask = VK_ACCESS_SHADER_WRITE_BIT,
|
||||
.dstAccessMask = VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_TRANSFER_READ_BIT |
|
||||
VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT |
|
||||
VK_ACCESS_INDIRECT_COMMAND_READ_BIT | VK_ACCESS_INDEX_READ_BIT |
|
||||
VK_ACCESS_UNIFORM_READ_BIT |
|
||||
VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT,
|
||||
.dstAccessMask = BASE_DST_ACCESS | conditional_access,
|
||||
};
|
||||
const QueriesPrefixScanPushConstants uniforms{
|
||||
.min_accumulation_base = static_cast<u32>(min_accumulation_limit),
|
||||
@@ -519,8 +526,7 @@ void QueriesPrefixScanPass::Run(VkBuffer accumulation_buffer, VkBuffer dst_buffe
|
||||
cmdbuf.PushConstants(*layout, VK_SHADER_STAGE_COMPUTE_BIT, uniforms);
|
||||
cmdbuf.Dispatch(1, 1, 1);
|
||||
cmdbuf.PipelineBarrier(VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT,
|
||||
VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, 0,
|
||||
write_barrier);
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, 0, write_barrier);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,6 +265,7 @@ GraphicsPipeline::GraphicsPipeline(
|
||||
std::ranges::copy(info->constant_buffer_used_sizes, uniform_buffer_sizes[stage].begin());
|
||||
num_textures += Shader::NumDescriptors(info->texture_descriptors);
|
||||
}
|
||||
fragment_has_color0_output = stage_infos[NUM_STAGES - 1].stores_frag_color[0];
|
||||
auto func{[this, shader_notify, &render_pass_cache, &descriptor_pool, pipeline_statistics] {
|
||||
DescriptorLayoutBuilder builder{MakeBuilder(device, stage_infos)};
|
||||
uses_push_descriptor = builder.CanUsePushDescriptor();
|
||||
@@ -734,13 +735,18 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||
.lineWidth = 1.0f,
|
||||
// TODO(alekpop): Transfer from regs
|
||||
};
|
||||
const bool smooth_lines_supported =
|
||||
device.IsExtLineRasterizationSupported() && device.SupportsSmoothLines();
|
||||
const bool stippled_lines_supported =
|
||||
device.IsExtLineRasterizationSupported() && device.SupportsStippledRectangularLines();
|
||||
VkPipelineRasterizationLineStateCreateInfoEXT line_state{
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT,
|
||||
.pNext = nullptr,
|
||||
.lineRasterizationMode = key.state.smooth_lines != 0
|
||||
.lineRasterizationMode = key.state.smooth_lines != 0 && smooth_lines_supported
|
||||
? VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT
|
||||
: VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT,
|
||||
.stippledLineEnable = dynamic.line_stipple_enable ? VK_TRUE : VK_FALSE,
|
||||
.stippledLineEnable =
|
||||
(dynamic.line_stipple_enable && stippled_lines_supported) ? VK_TRUE : VK_FALSE,
|
||||
.lineStippleFactor = key.state.line_stipple_factor,
|
||||
.lineStipplePattern = static_cast<uint16_t>(key.state.line_stipple_pattern),
|
||||
};
|
||||
@@ -771,6 +777,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||
provoking_vertex.pNext = std::exchange(rasterization_ci.pNext, &provoking_vertex);
|
||||
}
|
||||
|
||||
const bool supports_alpha_output = fragment_has_color0_output;
|
||||
const bool alpha_to_one_supported = device.SupportsAlphaToOne();
|
||||
const VkPipelineMultisampleStateCreateInfo multisample_ci{
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
|
||||
.pNext = nullptr,
|
||||
@@ -779,8 +787,10 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||
.sampleShadingEnable = Settings::values.sample_shading.GetValue() ? VK_TRUE : VK_FALSE,
|
||||
.minSampleShading = static_cast<float>(Settings::values.sample_shading_fraction.GetValue()) / 100.0f,
|
||||
.pSampleMask = nullptr,
|
||||
.alphaToCoverageEnable = key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
|
||||
.alphaToOneEnable = key.state.alpha_to_one_enabled != 0 ? VK_TRUE : VK_FALSE,
|
||||
.alphaToCoverageEnable =
|
||||
supports_alpha_output && key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
|
||||
.alphaToOneEnable = supports_alpha_output && alpha_to_one_supported &&
|
||||
key.state.alpha_to_one_enabled != 0 ? VK_TRUE : VK_FALSE,
|
||||
};
|
||||
const VkPipelineDepthStencilStateCreateInfo depth_stencil_ci{
|
||||
.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
|
||||
@@ -838,17 +848,27 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||
.blendConstants = {}
|
||||
};
|
||||
static_vector<VkDynamicState, 34> dynamic_states{
|
||||
VK_DYNAMIC_STATE_VIEWPORT, VK_DYNAMIC_STATE_SCISSOR,
|
||||
VK_DYNAMIC_STATE_DEPTH_BIAS, VK_DYNAMIC_STATE_BLEND_CONSTANTS,
|
||||
VK_DYNAMIC_STATE_DEPTH_BOUNDS, VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
|
||||
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, VK_DYNAMIC_STATE_STENCIL_REFERENCE,
|
||||
VK_DYNAMIC_STATE_VIEWPORT,
|
||||
VK_DYNAMIC_STATE_SCISSOR,
|
||||
VK_DYNAMIC_STATE_DEPTH_BIAS,
|
||||
VK_DYNAMIC_STATE_LINE_WIDTH,
|
||||
};
|
||||
|
||||
if (device.UsesAdvancedCoreDynamicState()) {
|
||||
static constexpr std::array core_dynamic_states{
|
||||
VK_DYNAMIC_STATE_BLEND_CONSTANTS,
|
||||
VK_DYNAMIC_STATE_DEPTH_BOUNDS,
|
||||
VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK,
|
||||
VK_DYNAMIC_STATE_STENCIL_WRITE_MASK,
|
||||
VK_DYNAMIC_STATE_STENCIL_REFERENCE,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), core_dynamic_states.begin(),
|
||||
core_dynamic_states.end());
|
||||
}
|
||||
if (key.state.extended_dynamic_state) {
|
||||
static constexpr std::array extended{
|
||||
VK_DYNAMIC_STATE_CULL_MODE_EXT,
|
||||
VK_DYNAMIC_STATE_FRONT_FACE_EXT,
|
||||
//VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, //Disabled for VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME
|
||||
VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
|
||||
@@ -856,48 +876,68 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
|
||||
VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_STENCIL_OP_EXT,
|
||||
};
|
||||
if (key.state.dynamic_vertex_input) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_VERTEX_INPUT_EXT);
|
||||
}
|
||||
dynamic_states.insert(dynamic_states.end(), extended.begin(), extended.end());
|
||||
if (key.state.extended_dynamic_state_2) {
|
||||
static constexpr std::array extended2{
|
||||
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), extended2.begin(), extended2.end());
|
||||
|
||||
// VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT is part of EDS1
|
||||
// Only use it if VIDS is not active (VIDS replaces it with full vertex input control)
|
||||
if (!key.state.dynamic_vertex_input) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT);
|
||||
}
|
||||
if (key.state.extended_dynamic_state_2_extra) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_LOGIC_OP_EXT);
|
||||
}
|
||||
|
||||
// VK_DYNAMIC_STATE_VERTEX_INPUT_EXT (VIDS) - Independent from EDS
|
||||
// Provides full dynamic vertex input control, replaces VERTEX_INPUT_BINDING_STRIDE
|
||||
if (key.state.dynamic_vertex_input) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_VERTEX_INPUT_EXT);
|
||||
}
|
||||
|
||||
// EDS2 - Core (3 states)
|
||||
if (key.state.extended_dynamic_state_2) {
|
||||
static constexpr std::array extended2{
|
||||
VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), extended2.begin(), extended2.end());
|
||||
}
|
||||
|
||||
// EDS2 - LogicOp (granular)
|
||||
if (key.state.extended_dynamic_state_2_logic_op) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_LOGIC_OP_EXT);
|
||||
}
|
||||
|
||||
// EDS3 - Blending (composite: 3 states)
|
||||
if (key.state.extended_dynamic_state_3_blend) {
|
||||
static constexpr std::array extended3{
|
||||
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
|
||||
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), extended3.begin(), extended3.end());
|
||||
}
|
||||
|
||||
// EDS3 - Enables (composite: per-feature)
|
||||
if (key.state.extended_dynamic_state_3_enables) {
|
||||
if (device.SupportsDynamicState3DepthClampEnable()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT);
|
||||
}
|
||||
if (key.state.extended_dynamic_state_3_blend) {
|
||||
static constexpr std::array extended3{
|
||||
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT,
|
||||
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT,
|
||||
|
||||
// VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), extended3.begin(), extended3.end());
|
||||
if (device.SupportsDynamicState3LogicOpEnable()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT);
|
||||
}
|
||||
if (key.state.extended_dynamic_state_3_enables) {
|
||||
static constexpr std::array extended3{
|
||||
VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT,
|
||||
|
||||
// additional state3 extensions
|
||||
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT,
|
||||
|
||||
VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT,
|
||||
|
||||
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT,
|
||||
VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT,
|
||||
};
|
||||
dynamic_states.insert(dynamic_states.end(), extended3.begin(), extended3.end());
|
||||
if (device.SupportsDynamicState3LineRasterizationMode()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT);
|
||||
}
|
||||
if (device.SupportsDynamicState3ConservativeRasterizationMode()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT);
|
||||
}
|
||||
if (device.SupportsDynamicState3LineStippleEnable()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT);
|
||||
}
|
||||
if (device.SupportsDynamicState3AlphaToCoverageEnable()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT);
|
||||
}
|
||||
if (device.SupportsDynamicState3AlphaToOneEnable()) {
|
||||
dynamic_states.push_back(VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,6 +82,17 @@ public:
|
||||
const std::array<const Shader::Info*, NUM_STAGES>& infos);
|
||||
|
||||
bool HasDynamicVertexInput() const noexcept { return key.state.dynamic_vertex_input; }
|
||||
bool SupportsAlphaToCoverage() const noexcept {
|
||||
return fragment_has_color0_output;
|
||||
}
|
||||
|
||||
bool SupportsAlphaToOne() const noexcept {
|
||||
return fragment_has_color0_output;
|
||||
}
|
||||
|
||||
bool UsesExtendedDynamicState() const noexcept {
|
||||
return key.state.extended_dynamic_state != 0;
|
||||
}
|
||||
GraphicsPipeline& operator=(GraphicsPipeline&&) noexcept = delete;
|
||||
GraphicsPipeline(GraphicsPipeline&&) noexcept = delete;
|
||||
|
||||
@@ -149,6 +160,7 @@ private:
|
||||
std::array<u32, 5> enabled_uniform_buffer_masks{};
|
||||
VideoCommon::UniformBufferSizes uniform_buffer_sizes{};
|
||||
u32 num_textures{};
|
||||
bool fragment_has_color0_output{};
|
||||
|
||||
vk::DescriptorSetLayout descriptor_set_layout;
|
||||
DescriptorAllocator descriptor_allocator;
|
||||
|
||||