From de056a56df4d2625318352f8e682e3946c42face Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 25 May 2022 16:59:12 +0200 Subject: [PATCH 1/6] :globe_with_meridians: Update translation files --- po/ar.po | 87 +++++++++++++++++++++++++----------------------- po/cs.po | 87 +++++++++++++++++++++++++----------------------- po/de.po | 87 +++++++++++++++++++++++++----------------------- po/es.po | 87 +++++++++++++++++++++++++----------------------- po/fa.po | 87 +++++++++++++++++++++++++----------------------- po/fi.po | 87 +++++++++++++++++++++++++----------------------- po/fr.po | 87 +++++++++++++++++++++++++----------------------- po/it.po | 87 +++++++++++++++++++++++++----------------------- po/ko.po | 87 +++++++++++++++++++++++++----------------------- po/nb_NO.po | 91 +++++++++++++++++++++++++++------------------------ po/nl.po | 87 +++++++++++++++++++++++++----------------------- po/pl.po | 87 +++++++++++++++++++++++++----------------------- po/ru.po | 87 +++++++++++++++++++++++++----------------------- po/sk.po | 87 +++++++++++++++++++++++++----------------------- po/sv.po | 87 +++++++++++++++++++++++++----------------------- po/tr.po | 87 +++++++++++++++++++++++++----------------------- po/zh_Hans.po | 87 +++++++++++++++++++++++++----------------------- 17 files changed, 784 insertions(+), 699 deletions(-) diff --git a/po/ar.po b/po/ar.po index 66d7b58..64aea04 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: burn-my-windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-05-17 19:18+0000\n" "Last-Translator: fawaz006 \n" "Language-Team: Arabic =11 ? 4 : 5;\n" "X-Generator: Weblate 4.13-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "خيارات التأثير" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "عُد" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "خيارات عامة" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "الرعاة الذهبيون" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "الرعاة الفضيون" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "الرعاة البرونزيون" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "الرعاة السابقون" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "معاينة لـ %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "أغلق هذه النافذة لمعاينة التأثير!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "زجاج المكسور" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "تأثير التلفزيون" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "هجوم تي ريكس" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "الانفجار القطع" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "قطع" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "نار" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "النار الافتراضية" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "نار حارقة" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "داكن وقذر" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "نسيم بارد" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "سانتا قادم" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "سداسي الزوايا" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "تنشيط أ" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "شبح" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "تنشيط ب" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "ماتركس" @@ -182,21 +182,22 @@ msgstr "المدة [م,ث]" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -346,6 +347,10 @@ msgstr "إغلاق التأثيرات للنافذة" msgid "Also Add Effects to Dialogs" msgstr "أضف أيضًا تأثيرات إلى الحوارات" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "شدة الدوران" diff --git a/po/cs.po b/po/cs.po index 183a5c6..da8021b 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-05-23 08:18+0000\n" "Last-Translator: Jose Riha \n" "Language-Team: Czech =2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.13-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Obecné možnosti" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Náhled %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "Zavřete toto okno, pokud chcete vidět efekt!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "Střepy" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "Televize" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "Tyrannosaurus" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "Obláčky" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Oheň" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Výchozí oheň" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "Pekelný oheň" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "Temný" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Studený vánek" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Santa přichází" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "Energizovat A" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "Energizovat B" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "Matrix" @@ -181,21 +181,22 @@ msgstr "Délka animace [ms]" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -345,6 +346,10 @@ msgstr "Animace při zavírání okna" msgid "Also Add Effects to Dialogs" msgstr "Použít efekt i na dialogová okna" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "" diff --git a/po/de.po b/po/de.po index 23f6f12..784a4c9 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-04-05 18:37+0000\n" "Last-Translator: Simon Schneegans \n" "Language-Team: German \n" "Language-Team: Spanish \n" "Language-Team: Persian 1;\n" "X-Generator: Weblate 4.13-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "انتخاب‌های جلوه" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "بازگشت" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "انتخاب‌های عمومی" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "حامیان طلایی" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "حامیان نقره‌ای" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "حامیان برنزی" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "حامیان گذشته" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "پیش‌نمایش برای %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "برای پیش‌نمایش جلوه، پنجره را ببندید!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "شیشهٔ شکسته" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "جلوهٔ تلویزیون" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "حملهٔ تی‌رکس" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "ضربهٔ فروپاشی" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "جرقه‌ها" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "آتش" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "آتش پیش‌گزیده" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "آتش جهنمی" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "تاریک و دودی" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "نسیم سرد" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "بابانوئل می‌آید" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "شش ضلعی" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "انرژی آ" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "تجسم" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "انرژی ب" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "ماتریکس" @@ -181,21 +181,22 @@ msgstr "زمان پویانمایی (میلی‌ثانیه)" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -345,6 +346,10 @@ msgstr "پویانمایی بستن پنجره" msgid "Also Add Effects to Dialogs" msgstr "همچنین جلوه‌ها را به گفت‌وگوها اضافه کن" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "شدّت چرخش" diff --git a/po/fi.po b/po/fi.po index 17f268d..2e5c28c 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: burn-my-windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-04-08 07:11+0000\n" "Last-Translator: Jiri Grönroos \n" "Language-Team: Finnish \n" "Language-Team: French 1;\n" "X-Generator: Weblate 4.12.1\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "Options de l'effet" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "Retour" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Options générales" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "Sponsors Or" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "Sponsors Argent" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "Sponsors Bronze" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "Anciens Sponsors" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Aperçu pour %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "Fermez cette fenêtre pour un aperçu de l'effet !" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "Verre brisé" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "Effet TV" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "Attaque de T-Rex" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "Désintégration" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "Feux follets" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Feu" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Feu par défaut" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "Feu de l'enfer" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "Sombre et ténébreux" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Brise froide" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Le Père Noël arrive" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "Hexagone" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "Énergie A" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "Apparition" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "Énergie B" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "Matrix" @@ -181,21 +181,22 @@ msgstr "Durée de l'animation (ms)" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -348,6 +349,10 @@ msgstr "Animation de fermeture de fenêtre" msgid "Also Add Effects to Dialogs" msgstr "Appliquer également les effets aux boîtes de dialogue" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "Intensité du tournoiement" diff --git a/po/it.po b/po/it.po index 6d5452a..f7c1377 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-04-16 11:14+0000\n" "Last-Translator: albanobattistella \n" "Language-Team: Italian \n" "Language-Team: Korean \n" -"Language-Team: Norwegian Bokmål \n" +"Language-Team: Norwegian Bokmål \n" "Language: nb_NO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,107 +19,107 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "Effektalternativer" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "Gå tilbake" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Generelle innstillinger" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "Gullsponsorer" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "Sølvsponsorer" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "Bronsesponsorer" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "Tidligere sponsorer" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Forhåndsvisning for %s" -#: prefs.js:532 +#: prefs.js:531 #, fuzzy msgid "Close this Window to Preview the Effect!" msgstr "Lukk dette vinduet for å forhåndsvise effekten" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 #, fuzzy msgid "Broken Glass" msgstr "Knust glass" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "TV-effekt" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "T-rex-angrep" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Brann" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Forvalgt brann" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Kald bris" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Julenissen kommer" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "Heksagon" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "" @@ -183,21 +183,22 @@ msgstr "Animasjonstid [ms]" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -346,6 +347,10 @@ msgstr "" msgid "Also Add Effects to Dialogs" msgstr "" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "Hvirvelintensitet" diff --git a/po/nl.po b/po/nl.po index 899bac3..a65fddb 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-04-05 18:37+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch \n" "Language-Team: Polish =20) ? 1 : 2;\n" "X-Generator: Weblate 4.13-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "Opcje Efektów" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "Wstecz" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Opcje Ogólne" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "Złoci Sponsorzy" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "Srebrni Sponsorzy" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "Brązowi Sponsorzy" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "Byli Sponsorzy" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Podgląd dla %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "Zamknij to Okno, aby zobaczyć Efekt!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "Rozbicie Szkła" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "Efekt TV" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "Atak T-Rex-a" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "Pstryknięcie Dezintegracji" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "Ogniki" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Ogień" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Domyślny Ogień" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "Ogień Piekielny" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "Ciemny i Brudny" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Zimna Bryza" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Nadchodzi Święty Mikołaj" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "Sześciokąt" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "Energetyzacja A" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "Teleportacja" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "Energetyzacja B" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "Matrix" @@ -182,21 +182,22 @@ msgstr "Czas Animacji [ms]" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -347,6 +348,10 @@ msgstr "Animacja Zamykania Okna" msgid "Also Add Effects to Dialogs" msgstr "Dodaj Efekty również do Okien Dialogowych" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "Intensywność Wirowania" diff --git a/po/ru.po b/po/ru.po index 14cde19..fd15022 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-04-13 13:09+0000\n" "Last-Translator: Егор Ермаков \n" "Language-Team: Russian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "Параметры эффекта" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "Назад" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Общие настройки" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "Золотые спонсоры" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "Серебряные спонсоры" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "Бронзовые спонсоры" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "Прошлые спонсоры" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Предпросмотр %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "Закройте это окно для предпросмотра эффекта!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "Разбитое стекло" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "Эффект ЭЛТ" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "Атака тираннозавра" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "Огоньки" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Огонь" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Обычный огонь" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "Адское пламя" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "Тёмный и грязный" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Холодный бриз" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Дед Мороз идёт" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "Гексагон" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "Энергия A" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "Энергия B" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "Матрица" @@ -182,21 +182,22 @@ msgstr "Время анимации (мс)" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -347,6 +348,10 @@ msgstr "Анимация закрытия окна" msgid "Also Add Effects to Dialogs" msgstr "Также добавить эффекты к диалогам" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "Интенсивность вращения" diff --git a/po/sk.po b/po/sk.po index d5fa77f..3a30cb2 100644 --- a/po/sk.po +++ b/po/sk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: burn-my-windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-05-23 08:18+0000\n" "Last-Translator: Jose Riha \n" "Language-Team: Slovak =2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.13-dev\n" -#: prefs.js:112 +#: prefs.js:113 msgid "Effect Options" msgstr "Možnosti efektov" -#: prefs.js:140 +#: prefs.js:141 msgid "Go Back" msgstr "Prejsť naspäť" -#: prefs.js:182 +#: prefs.js:183 msgid "General Options" msgstr "Všeobecné možnosti" -#: prefs.js:276 +#: prefs.js:277 msgid "Gold Sponsors" msgstr "Zlatí sponzori" -#: prefs.js:279 +#: prefs.js:280 msgid "Silver Sponsors" msgstr "Strieborní sponzori" -#: prefs.js:282 +#: prefs.js:283 msgid "Bronze Sponsors" msgstr "Bronzoví sponzori" -#: prefs.js:285 +#: prefs.js:286 msgid "Past Sponsors" msgstr "Bývalí sponzori" #. Translators: %s will be replaced by the effect's name. -#: prefs.js:510 +#: prefs.js:509 #, javascript-format msgid "Preview for %s" msgstr "Náhľad %s" -#: prefs.js:532 +#: prefs.js:531 msgid "Close this Window to Preview the Effect!" msgstr "Zatvorte toto okno, ak chcete vidieť efekt!" -#: src/BrokenGlass.js:57 +#: src/BrokenGlass.js:138 msgid "Broken Glass" msgstr "Črepiny" -#: src/TVEffect.js:56 +#: src/TVEffect.js:77 msgid "TV Effect" msgstr "Televízor" -#: src/TRexAttack.js:56 +#: src/TRexAttack.js:115 msgid "T-Rex Attack" msgstr "Tyrannosaurus" -#: src/SnapOfDisintegration.js:60 +#: src/SnapOfDisintegration.js:117 msgid "Snap of Disintegration" msgstr "Thanosove lusknutie" -#: src/Wisps.js:55 +#: src/Wisps.js:85 msgid "Wisps" msgstr "Obláčiky" -#: src/Fire.js:58 +#: src/Fire.js:99 msgid "Fire" msgstr "Oheň" -#: src/Fire.js:130 +#: src/Fire.js:154 msgid "Default Fire" msgstr "Predvolený oheň" -#: src/Fire.js:140 +#: src/Fire.js:164 msgid "Hell Fire" msgstr "Pekelný oheň" -#: src/Fire.js:150 +#: src/Fire.js:174 msgid "Dark and Smutty" msgstr "Tmavý a zafúľaný" -#: src/Fire.js:160 +#: src/Fire.js:184 msgid "Cold Breeze" msgstr "Studený vánok" -#: src/Fire.js:170 +#: src/Fire.js:194 msgid "Santa is Coming" msgstr "Santa prichádza" -#: src/Hexagon.js:53 +#: src/Hexagon.js:97 msgid "Hexagon" msgstr "Šesťhran" -#: src/EnergizeA.js:54 +#: src/EnergizeA.js:79 msgid "Energize A" msgstr "Nabudenie A" -#: src/Apparition.js:57 +#: src/Apparition.js:80 msgid "Apparition" msgstr "Prízrak" -#: src/EnergizeB.js:54 +#: src/EnergizeB.js:80 msgid "Energize B" msgstr "Nabudenie B" -#: src/Matrix.js:58 +#: src/Matrix.js:113 msgid "Matrix" msgstr "Matrix" @@ -181,21 +181,22 @@ msgstr "Trvanie animácie [ms]" #: resources/ui/gtk4/Hexagon.ui:178 resources/ui/gtk4/Hexagon.ui:212 #: resources/ui/gtk4/Hexagon.ui:265 resources/ui/gtk4/EnergizeB.ui:52 #: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132 -#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/Apparition.ui:52 -#: resources/ui/gtk4/Apparition.ui:98 resources/ui/gtk4/Apparition.ui:144 -#: resources/ui/gtk4/Apparition.ui:190 resources/ui/gtk4/Apparition.ui:236 -#: resources/ui/gtk3/Wisps.ui:68 resources/ui/gtk3/Wisps.ui:117 -#: resources/ui/gtk3/Wisps.ui:160 resources/ui/gtk3/Fire.ui:119 -#: resources/ui/gtk3/Fire.ui:167 resources/ui/gtk3/Fire.ui:215 -#: resources/ui/gtk3/Fire.ui:277 resources/ui/gtk3/Fire.ui:345 -#: resources/ui/gtk3/TVEffect.ui:61 resources/ui/gtk3/TVEffect.ui:104 -#: resources/ui/gtk3/EnergizeA.ui:68 resources/ui/gtk3/EnergizeA.ui:117 -#: resources/ui/gtk3/EnergizeA.ui:160 resources/ui/gtk3/Hexagon.ui:75 -#: resources/ui/gtk3/Hexagon.ui:124 resources/ui/gtk3/Hexagon.ui:173 -#: resources/ui/gtk3/Hexagon.ui:216 resources/ui/gtk3/Hexagon.ui:259 -#: resources/ui/gtk3/Hexagon.ui:321 resources/ui/gtk3/EnergizeB.ui:68 -#: resources/ui/gtk3/EnergizeB.ui:117 resources/ui/gtk3/EnergizeB.ui:160 -#: resources/ui/gtk3/prefs.ui:219 resources/ui/gtk3/Apparition.ui:89 +#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk4/prefs.ui:200 +#: resources/ui/gtk4/Apparition.ui:52 resources/ui/gtk4/Apparition.ui:98 +#: resources/ui/gtk4/Apparition.ui:144 resources/ui/gtk4/Apparition.ui:190 +#: resources/ui/gtk4/Apparition.ui:236 resources/ui/gtk3/Wisps.ui:68 +#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160 +#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167 +#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277 +#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61 +#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68 +#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160 +#: resources/ui/gtk3/Hexagon.ui:75 resources/ui/gtk3/Hexagon.ui:124 +#: resources/ui/gtk3/Hexagon.ui:173 resources/ui/gtk3/Hexagon.ui:216 +#: resources/ui/gtk3/Hexagon.ui:259 resources/ui/gtk3/Hexagon.ui:321 +#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117 +#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219 +#: resources/ui/gtk3/prefs.ui:263 resources/ui/gtk3/Apparition.ui:89 #: resources/ui/gtk3/Apparition.ui:138 resources/ui/gtk3/Apparition.ui:187 #: resources/ui/gtk3/Apparition.ui:236 resources/ui/gtk3/Apparition.ui:285 msgid "Reset to Default Value" @@ -344,6 +345,10 @@ msgstr "Animácia pri zatváraní okna" msgid "Also Add Effects to Dialogs" msgstr "Použiť efekt aj na dialógové okná" +#: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 +msgid "Disable on Battery Power" +msgstr "" + #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" msgstr "Intenzita vírenia" diff --git a/po/sv.po b/po/sv.po index 3861dd7..ab0e569 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: burn-my-windows\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-04-05 09:22+0200\n" +"POT-Creation-Date: 2022-05-25 12:59+0200\n" "PO-Revision-Date: 2022-05-11 12:17+0000\n" "Last-Translator: obslsessed \n" "Language-Team: Swedish \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified) Date: Wed, 25 May 2022 16:24:50 +0000 Subject: [PATCH 2/6] :globe_with_meridians: Translated using Weblate (Dutch) --- po/nl.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/nl.po b/po/nl.po index a65fddb..75f831d 100644 --- a/po/nl.po +++ b/po/nl.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-25 12:59+0200\n" -"PO-Revision-Date: 2022-04-05 18:37+0000\n" +"PO-Revision-Date: 2022-05-26 17:20+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.12-dev\n" +"X-Generator: Weblate 4.13-dev\n" #: prefs.js:113 msgid "Effect Options" @@ -350,7 +350,7 @@ msgstr "Dialoogvensters ook voorzien van effecten" #: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 msgid "Disable on Battery Power" -msgstr "" +msgstr "Uitschakelen bij gebruik van accu" #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" From 75d5b6ddd5b38842ac18487d44d3fde6c4ef4cfd Mon Sep 17 00:00:00 2001 From: albanobattistella Date: Thu, 26 May 2022 17:50:11 +0000 Subject: [PATCH 3/6] :globe_with_meridians: Translated using Weblate (Italian) --- po/it.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/po/it.po b/po/it.po index f7c1377..609d469 100644 --- a/po/it.po +++ b/po/it.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Burn-My-Windows\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2022-05-25 12:59+0200\n" -"PO-Revision-Date: 2022-04-16 11:14+0000\n" +"PO-Revision-Date: 2022-05-27 18:20+0000\n" "Last-Translator: albanobattistella \n" "Language-Team: Italian \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Generator: Weblate 4.12-dev\n" +"X-Generator: Weblate 4.13-dev\n" #: prefs.js:113 msgid "Effect Options" @@ -349,7 +349,7 @@ msgstr "Aggiungi anche effetti ai dialoghi" #: resources/ui/gtk4/prefs.ui:184 resources/ui/gtk3/prefs.ui:242 msgid "Disable on Battery Power" -msgstr "" +msgstr "Disattiva con alimentazione a batteria" #: resources/ui/gtk4/Apparition.ui:116 resources/ui/gtk3/Apparition.ui:161 msgid "Twirl Intensity" From c90f3a1c973ff64d21a04e4e4d9de4e12c59acad Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Fri, 27 May 2022 21:18:18 +0200 Subject: [PATCH 4/6] :truck: Move common includes to one file --- docs/how-to-create-new-effects.md | 5 +- resources/shaders/apparition.glsl | 18 ++- resources/shaders/broken-glass.glsl | 18 ++- .../{common/noise.glsl => common.glsl} | 130 +++++++++++++++--- resources/shaders/common/compositing.glsl | 6 - resources/shaders/common/easing.glsl | 5 - resources/shaders/common/edgeMask.glsl | 33 ----- resources/shaders/common/math2D.glsl | 10 -- resources/shaders/common/uniforms.glsl | 13 -- resources/shaders/energize-a.glsl | 21 ++- resources/shaders/energize-b.glsl | 21 ++- resources/shaders/fire.glsl | 22 +-- resources/shaders/hexagon.glsl | 19 ++- resources/shaders/matrix.glsl | 21 ++- resources/shaders/snap.glsl | 20 ++- resources/shaders/trex.glsl | 21 ++- resources/shaders/tv.glsl | 19 ++- resources/shaders/wisps.glsl | 22 +-- src/Shader.js | 21 +-- 19 files changed, 274 insertions(+), 171 deletions(-) rename resources/shaders/{common/noise.glsl => common.glsl} (50%) delete mode 100644 resources/shaders/common/compositing.glsl delete mode 100644 resources/shaders/common/easing.glsl delete mode 100644 resources/shaders/common/edgeMask.glsl delete mode 100644 resources/shaders/common/math2D.glsl delete mode 100644 resources/shaders/common/uniforms.glsl diff --git a/docs/how-to-create-new-effects.md b/docs/how-to-create-new-effects.md index d92b43a..7067551 100644 --- a/docs/how-to-create-new-effects.md +++ b/docs/how-to-create-new-effects.md @@ -85,15 +85,14 @@ Please study this code carefully, all of it is explained with inline comments. Expand this to show the GLSL code. ```glsl -// The code below injects some standard uniforms which will be updated during the -// animation. This includes: +// The content from common.glsl is automatically prepended to each shader effect. This +// provides some standard uniforms which will be updated during the animation. // bool uForOpening: True if a window-open animation is ongoing, false otherwise. // sampler2D uTexture: Contains the texture of the window. // float uProgress: A value which transitions from 0 to 1 during the entire animation. // float uTime: A steadily increasing value in seconds. // vec2 uSize: The size of uTexture in pixels. // float uPadding: The empty area around the actual window (e.g. where the shadow is drawn). -#include "common/uniforms.glsl" // The width of the fading effect is loaded from the settings. uniform float uFadeWidth; diff --git a/resources/shaders/apparition.glsl b/resources/shaders/apparition.glsl index eddce19..0134c04 100644 --- a/resources/shaders/apparition.glsl +++ b/resources/shaders/apparition.glsl @@ -1,7 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform vec2 uSeed; uniform float uShake; diff --git a/resources/shaders/broken-glass.glsl b/resources/shaders/broken-glass.glsl index 306d5ac..b8326ca 100644 --- a/resources/shaders/broken-glass.glsl +++ b/resources/shaders/broken-glass.glsl @@ -1,7 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform sampler2D uShardTexture; uniform vec2 uSeed; diff --git a/resources/shaders/common/noise.glsl b/resources/shaders/common.glsl similarity index 50% rename from resources/shaders/common/noise.glsl rename to resources/shaders/common.glsl index 5491b80..e8356fb 100644 --- a/resources/shaders/common/noise.glsl +++ b/resources/shaders/common.glsl @@ -1,12 +1,110 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////////////////////// +// This file is automatically included in each shader. // +////////////////////////////////////////////////////////////////////////////////////////// + +// --------------------------------------------------------------------- standard uniforms + +// uForOpening: True if a window-open animation is ongoing, false otherwise. +// uTexture: Contains the texture of the window. +// uProgress: A value which transitions from 0 to 1 during the entire animation. +// uTime: A steadily increasing value in seconds. +// uSize: The size of uTexture in pixels. +// uPadding: The empty area around the actual window (e.g. where the shadow is drawn). +uniform bool uForOpening; +uniform sampler2D uTexture; +uniform float uProgress; +uniform float uTime; +uniform vec2 uSize; +uniform float uPadding; + +// ----------------------------------------------------------------- compositing operators + +// The Shell.GLSLEffect uses straight alpha blending. This helper method allows +// compositing color values in the shader in the same way. +vec4 alphaOver(vec4 under, vec4 over) { + float alpha = over.a + under.a * (1.0 - over.a); + return vec4((over.rgb * over.a + under.rgb * under.a * (1.0 - over.a)) / alpha, alpha); +} + +// ---------------------------------------------------------------------- easing functions + +// Here are some basic easing function. More can be added if required! +// Taken from here: +// https://gitlab.gnome.org/GNOME/mutter/-/blob/main/clutter/clutter/clutter-easing.c + +float easeOutQuad(float x) { return -1.0 * x * (x - 2); } + +// --------------------------------------------------------------------- edge mask helpers + +// This method returns a mask which smoothly transitions towards zero when approaching +// the window's borders. There is a variant which takes the transition area width in +// pixels and one which takes this as a percentage. +float getEdgeMask(vec2 uv, vec2 maxUV, float fadeWidth) { + float mask = 1.0; + mask *= smoothstep(0, 1, clamp(uv.x / fadeWidth, 0, 1)); + mask *= smoothstep(0, 1, clamp(uv.y / fadeWidth, 0, 1)); + mask *= smoothstep(0, 1, clamp((maxUV.x - uv.x) / fadeWidth, 0, 1)); + mask *= smoothstep(0, 1, clamp((maxUV.y - uv.y) / fadeWidth, 0, 1)); + + return mask; +} + +// Returns an edge mask which fades to zero at the boundaries of the actor. The width of +// the fade zone is given in pixels. This uses the standard uniforms uSize and uPadding. +// This means that the fading zone is not actually at the actors boundaries but at the +// position of the window border in the texture. +// The offset paramter controls whether the fading is placed inside the window borders +// (offset = 0), ontop the window borders (offset = 0.5) or outside the window borders +// (offset = 1). +float getAbsoluteEdgeMask(float fadePixels, float offset) { + float padding = max(0, uPadding - fadePixels * offset); + vec2 uv = cogl_tex_coord_in[0].st * uSize - padding; + return getEdgeMask(uv, uSize - 2.0 * padding, fadePixels); +} + +// Returns an edge mask which fades to zero at the boundaries of the actor. The width of +// the fade zone is given relative to the actor size. This neither uses uSize and +// uPadding. +float getRelativeEdgeMask(float fadeAmount) { + vec2 uv = cogl_tex_coord_in[0].st; + return getEdgeMask(uv, vec2(1.0), fadeAmount); +} + +// ------------------------------------------------------------------------------- 2D math + +float distToLine(vec2 origin, vec2 direction, vec2 point) { + vec2 perpendicular = vec2(direction.y, -direction.x); + return abs(dot(normalize(perpendicular), origin - point)); +} + +float getWinding(vec2 a, vec2 b) { return cross(vec3(a, 0.0), vec3(b, 0.0)).z; } + +vec2 rotate(vec2 a, float angle) { + return vec2(a.x * cos(angle) - a.y * sin(angle), a.x * sin(angle) + a.y * cos(angle)); +} + +// --------------------------------------------------------------------------------- noise + // These noise algorithms are based on implementations by various authors from // shadertoy.com, which are all available under the MIT License. See the respective links // in the comments below. -//////////////////////////////////////////////////////////////////////////////////////// -// Hash without Sine // -// MIT License, https://www.shadertoy.com/view/4djSRW // -// Copyright (c) 2014 David Hoskins. // -//////////////////////////////////////////////////////////////////////////////////////// +// Hash functions +// MIT License, https://www.shadertoy.com/view/4djSRW +// Copyright (c) 2014 David Hoskins. // 1 out, 1 in... float hash11(float p) { @@ -100,12 +198,9 @@ vec4 hash44(vec4 p4) { return fract((p4.xxyz + p4.yzzw) * p4.zywx); } -//////////////////////////////////////////////////////////////////////////////////////// -// 2D Simplex Noise // -// MIT License, https://www.shadertoy.com/view/Msf3WH // -// Copyright © 2013 Inigo Quilez // -//////////////////////////////////////////////////////////////////////////////////////// - +// 2D Simplex Noise +// MIT License, https://www.shadertoy.com/view/Msf3WH +// Copyright © 2013 Inigo Quilez float simplex2D(vec2 p) { const float K1 = 0.366025404; // (sqrt(3)-1)/2; const float K2 = 0.211324865; // (3-sqrt(3))/6; @@ -137,12 +232,9 @@ float simplex2DFractal(vec2 p) { return f; } -//////////////////////////////////////////////////////////////////////////////////////// -// 3D Simplex Noise // -// MIT License, https://www.shadertoy.com/view/XsX3zB // -// Copyright © 2013 Nikita Miropolskiy // -//////////////////////////////////////////////////////////////////////////////////////// - +// 3D Simplex Noise +// MIT License, https://www.shadertoy.com/view/XsX3zB +// Copyright © 2013 Nikita Miropolskiy float simplex3D(vec3 p) { // skew constants for 3D simplex functions @@ -194,7 +286,7 @@ float simplex3D(vec3 p) { return dot(d, vec4(52.0)) * 0.5 + 0.5; } -// directional artifacts can be reduced by rotating each octave +// Directional artifacts can be reduced by rotating each octave float simplex3DFractal(vec3 m) { // const matrices for 3D rotation @@ -204,4 +296,4 @@ float simplex3DFractal(vec3 m) { return 0.5333333 * simplex3D(m * rot1) + 0.2666667 * simplex3D(2.0 * m * rot2) + 0.1333333 * simplex3D(4.0 * m * rot3) + 0.0666667 * simplex3D(8.0 * m); -} \ No newline at end of file +} diff --git a/resources/shaders/common/compositing.glsl b/resources/shaders/common/compositing.glsl deleted file mode 100644 index 8222665..0000000 --- a/resources/shaders/common/compositing.glsl +++ /dev/null @@ -1,6 +0,0 @@ -// The Shell.GLSLEffect uses straight alpha blending. This helper method allows -// compositing color values in the shader in the same way. -vec4 alphaOver(vec4 under, vec4 over) { - float alpha = over.a + under.a * (1.0 - over.a); - return vec4((over.rgb * over.a + under.rgb * under.a * (1.0 - over.a)) / alpha, alpha); -} \ No newline at end of file diff --git a/resources/shaders/common/easing.glsl b/resources/shaders/common/easing.glsl deleted file mode 100644 index 87c7a17..0000000 --- a/resources/shaders/common/easing.glsl +++ /dev/null @@ -1,5 +0,0 @@ -// This provides some basic easing function. More can be added if required! -// Taken from here: -// https://gitlab.gnome.org/GNOME/mutter/-/blob/main/clutter/clutter/clutter-easing.c - -float easeOutQuad(float x) { return -1.0 * x * (x - 2); } \ No newline at end of file diff --git a/resources/shaders/common/edgeMask.glsl b/resources/shaders/common/edgeMask.glsl deleted file mode 100644 index d14e981..0000000 --- a/resources/shaders/common/edgeMask.glsl +++ /dev/null @@ -1,33 +0,0 @@ -// This method returns a mask which smoothly transitions towards zero when approaching -// the window's borders. There is a variant which takes the transition area width in -// pixels and one which takes this as a percentage. -float getEdgeMask(vec2 uv, vec2 maxUV, float fadeWidth) { - float mask = 1.0; - mask *= smoothstep(0, 1, clamp(uv.x / fadeWidth, 0, 1)); - mask *= smoothstep(0, 1, clamp(uv.y / fadeWidth, 0, 1)); - mask *= smoothstep(0, 1, clamp((maxUV.x - uv.x) / fadeWidth, 0, 1)); - mask *= smoothstep(0, 1, clamp((maxUV.y - uv.y) / fadeWidth, 0, 1)); - - return mask; -} - -// Returns an edge mask which fades to zero at the boundaries of the actor. The width of -// the fade zone is given in pixels. This uses the standard uniforms uSize and uPadding. -// This means that the fading zone is not actually at the actors boundaries but at the -// position of the window border in the texture. -// The offset paramter controls whether the fading is placed inside the window borders -// (offset = 0), ontop the window borders (offset = 0.5) or outside the window borders -// (offset = 1). -float getAbsoluteEdgeMask(float fadePixels, float offset) { - float padding = max(0, uPadding - fadePixels * offset); - vec2 uv = cogl_tex_coord_in[0].st * uSize - padding; - return getEdgeMask(uv, uSize - 2.0 * padding, fadePixels); -} - -// Returns an edge mask which fades to zero at the boundaries of the actor. The width of -// the fade zone is given relative to the actor size. This neither uses uSize and -// uPadding. -float getRelativeEdgeMask(float fadeAmount) { - vec2 uv = cogl_tex_coord_in[0].st; - return getEdgeMask(uv, vec2(1.0), fadeAmount); -} \ No newline at end of file diff --git a/resources/shaders/common/math2D.glsl b/resources/shaders/common/math2D.glsl deleted file mode 100644 index 01a3620..0000000 --- a/resources/shaders/common/math2D.glsl +++ /dev/null @@ -1,10 +0,0 @@ -float distToLine(vec2 origin, vec2 direction, vec2 point) { - vec2 perpendicular = vec2(direction.y, -direction.x); - return abs(dot(normalize(perpendicular), origin - point)); -} - -float getWinding(vec2 a, vec2 b) { return cross(vec3(a, 0.0), vec3(b, 0.0)).z; } - -vec2 rotate(vec2 a, float angle) { - return vec2(a.x * cos(angle) - a.y * sin(angle), a.x * sin(angle) + a.y * cos(angle)); -} \ No newline at end of file diff --git a/resources/shaders/common/uniforms.glsl b/resources/shaders/common/uniforms.glsl deleted file mode 100644 index ab7589a..0000000 --- a/resources/shaders/common/uniforms.glsl +++ /dev/null @@ -1,13 +0,0 @@ -// These should be included in every shader. -// uForOpening: True if a window-open animation is ongoing, false otherwise. -// uTexture: Contains the texture of the window. -// uProgress: A value which transitions from 0 to 1 during the entire animation. -// uTime: A steadily increasing value in seconds. -// uSize: The size of uTexture in pixels. -// uPadding: The empty area around the actual window (e.g. where the shadow is drawn). -uniform bool uForOpening; -uniform sampler2D uTexture; -uniform float uProgress; -uniform float uTime; -uniform vec2 uSize; -uniform float uPadding; \ No newline at end of file diff --git a/resources/shaders/energize-a.glsl b/resources/shaders/energize-a.glsl index 054058d..77ab3fb 100644 --- a/resources/shaders/energize-a.glsl +++ b/resources/shaders/energize-a.glsl @@ -1,10 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/edgeMask.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform vec3 uColor; uniform float uScale; diff --git a/resources/shaders/energize-b.glsl b/resources/shaders/energize-b.glsl index 7283fd7..4ac4faf 100644 --- a/resources/shaders/energize-b.glsl +++ b/resources/shaders/energize-b.glsl @@ -1,10 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/edgeMask.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform vec3 uColor; uniform float uScale; diff --git a/resources/shaders/fire.glsl b/resources/shaders/fire.glsl index 12e395a..b4d5ded 100644 --- a/resources/shaders/fire.glsl +++ b/resources/shaders/fire.glsl @@ -1,11 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/compositing.glsl" -#include "common/edgeMask.glsl" -#include "common/noise.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform bool u3DNoise; uniform float uScale; diff --git a/resources/shaders/hexagon.glsl b/resources/shaders/hexagon.glsl index 79a0aa6..752d886 100644 --- a/resources/shaders/hexagon.glsl +++ b/resources/shaders/hexagon.glsl @@ -1,8 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform bool uAdditiveBlending; uniform vec2 uSeed; diff --git a/resources/shaders/matrix.glsl b/resources/shaders/matrix.glsl index 8b5010c..3afefb2 100644 --- a/resources/shaders/matrix.glsl +++ b/resources/shaders/matrix.glsl @@ -1,10 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/edgeMask.glsl" -#include "common/compositing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform sampler2D uFontTexture; uniform vec3 uTrailColor; diff --git a/resources/shaders/snap.glsl b/resources/shaders/snap.glsl index bf1489f..2432cb0 100644 --- a/resources/shaders/snap.glsl +++ b/resources/shaders/snap.glsl @@ -1,9 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/math2D.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform sampler2D uDustTexture; uniform vec4 uDustColor; diff --git a/resources/shaders/trex.glsl b/resources/shaders/trex.glsl index 3916b15..20dbb3b 100644 --- a/resources/shaders/trex.glsl +++ b/resources/shaders/trex.glsl @@ -1,10 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/compositing.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. // See assets/README.md for how this texture was created. uniform sampler2D uClawTexture; diff --git a/resources/shaders/tv.glsl b/resources/shaders/tv.glsl index 0201350..df54666 100644 --- a/resources/shaders/tv.glsl +++ b/resources/shaders/tv.glsl @@ -1,8 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform vec3 uColor; diff --git a/resources/shaders/wisps.glsl b/resources/shaders/wisps.glsl index 008ca73..a19617f 100644 --- a/resources/shaders/wisps.glsl +++ b/resources/shaders/wisps.glsl @@ -1,11 +1,17 @@ -// Inject some common shader snippets. It is only possible to include glsl files from the -// "common" directory. Also, the files in the "common" directory are not allowed to -// include any further files. -#include "common/uniforms.glsl" -#include "common/noise.glsl" -#include "common/edgeMask.glsl" -#include "common/compositing.glsl" -#include "common/easing.glsl" +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. uniform vec2 uSeed; uniform vec3 uColor; diff --git a/src/Shader.js b/src/Shader.js index 922bb69..8fa7e14 100644 --- a/src/Shader.js +++ b/src/Shader.js @@ -106,7 +106,7 @@ var Shader = GObject.registerClass( // Shell.GLSLEffect requires the declarations and the main source code as separate // strings. As it's more convenient to store the in one GLSL file, we use a regex // here to split the source code in two parts. - const code = this._loadGLSLResource(`/shaders/${this._nick}.glsl`); + const code = this._loadShaderResource(`/shaders/${this._nick}.glsl`); // Match anything between the curly brackets of "void main() {...}". const regex = RegExp('void main *\\(\\) *\\{([\\S\\s]+)\\}'); @@ -136,20 +136,13 @@ var Shader = GObject.registerClass( return ByteArray.toString(ByteArray.fromGBytes(data)); } - // This loads a GLSL file from the extension's resources to a JavaScript string. Any - // #include statements in this file are replaced with the corresponding file contents. - _loadGLSLResource(path) { - let code = this._loadStringResource(path); - - // This regex matches either #include "..." or #include <...>. The part between the - // brackets is captured in the capture group. - const regex = RegExp('#include ["<](.+)[">]', 'g'); - - code = code.replace(regex, (m, file) => { - return this._loadStringResource('/shaders/' + file); - }); + // This loads a GLSL file from the extension's resources to a JavaScript string. The + // code from "common.glsl" is prepended automatically. + _loadShaderResource(path) { + let common = this._loadStringResource('/shaders/common.glsl'); + let code = this._loadStringResource(path); // Add a trailing newline. Else the GLSL compiler complains... - return code + '\n'; + return common + '\n' + code + '\n'; } }); From 6a65d591445dfb786960254a3d36f0d08912f602 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Fri, 27 May 2022 21:21:05 +0200 Subject: [PATCH 5/6] :truck: Rename shader files --- docs/how-to-create-new-effects.md | 2 +- resources/shaders/{apparition.glsl => apparition.frag} | 0 resources/shaders/{broken-glass.glsl => broken-glass.frag} | 0 resources/shaders/{energize-a.glsl => energize-a.frag} | 0 resources/shaders/{energize-b.glsl => energize-b.frag} | 0 resources/shaders/{fire.glsl => fire.frag} | 0 resources/shaders/{hexagon.glsl => hexagon.frag} | 0 resources/shaders/{matrix.glsl => matrix.frag} | 0 resources/shaders/{snap.glsl => snap.frag} | 0 resources/shaders/{trex.glsl => trex.frag} | 0 resources/shaders/{tv.glsl => tv.frag} | 0 resources/shaders/{wisps.glsl => wisps.frag} | 0 src/Shader.js | 2 +- 13 files changed, 2 insertions(+), 2 deletions(-) rename resources/shaders/{apparition.glsl => apparition.frag} (100%) rename resources/shaders/{broken-glass.glsl => broken-glass.frag} (100%) rename resources/shaders/{energize-a.glsl => energize-a.frag} (100%) rename resources/shaders/{energize-b.glsl => energize-b.frag} (100%) rename resources/shaders/{fire.glsl => fire.frag} (100%) rename resources/shaders/{hexagon.glsl => hexagon.frag} (100%) rename resources/shaders/{matrix.glsl => matrix.frag} (100%) rename resources/shaders/{snap.glsl => snap.frag} (100%) rename resources/shaders/{trex.glsl => trex.frag} (100%) rename resources/shaders/{tv.glsl => tv.frag} (100%) rename resources/shaders/{wisps.glsl => wisps.frag} (100%) diff --git a/docs/how-to-create-new-effects.md b/docs/how-to-create-new-effects.md index 7067551..28e1a50 100644 --- a/docs/how-to-create-new-effects.md +++ b/docs/how-to-create-new-effects.md @@ -77,7 +77,7 @@ Just remember to replace `simple-fade` with your custom name! ### 2. Creating the Effect Class -You will have to create a new GLSL file called `resources/shaders/simple-fade.glsl` and a new JavaScript source file called `src/SimpleFade.js`. +You will have to create a new GLSL file called `resources/shaders/simple-fade.frag` and a new JavaScript source file called `src/SimpleFade.js`. Simply paste the following source code to the respective file. Please study this code carefully, all of it is explained with inline comments. diff --git a/resources/shaders/apparition.glsl b/resources/shaders/apparition.frag similarity index 100% rename from resources/shaders/apparition.glsl rename to resources/shaders/apparition.frag diff --git a/resources/shaders/broken-glass.glsl b/resources/shaders/broken-glass.frag similarity index 100% rename from resources/shaders/broken-glass.glsl rename to resources/shaders/broken-glass.frag diff --git a/resources/shaders/energize-a.glsl b/resources/shaders/energize-a.frag similarity index 100% rename from resources/shaders/energize-a.glsl rename to resources/shaders/energize-a.frag diff --git a/resources/shaders/energize-b.glsl b/resources/shaders/energize-b.frag similarity index 100% rename from resources/shaders/energize-b.glsl rename to resources/shaders/energize-b.frag diff --git a/resources/shaders/fire.glsl b/resources/shaders/fire.frag similarity index 100% rename from resources/shaders/fire.glsl rename to resources/shaders/fire.frag diff --git a/resources/shaders/hexagon.glsl b/resources/shaders/hexagon.frag similarity index 100% rename from resources/shaders/hexagon.glsl rename to resources/shaders/hexagon.frag diff --git a/resources/shaders/matrix.glsl b/resources/shaders/matrix.frag similarity index 100% rename from resources/shaders/matrix.glsl rename to resources/shaders/matrix.frag diff --git a/resources/shaders/snap.glsl b/resources/shaders/snap.frag similarity index 100% rename from resources/shaders/snap.glsl rename to resources/shaders/snap.frag diff --git a/resources/shaders/trex.glsl b/resources/shaders/trex.frag similarity index 100% rename from resources/shaders/trex.glsl rename to resources/shaders/trex.frag diff --git a/resources/shaders/tv.glsl b/resources/shaders/tv.frag similarity index 100% rename from resources/shaders/tv.glsl rename to resources/shaders/tv.frag diff --git a/resources/shaders/wisps.glsl b/resources/shaders/wisps.frag similarity index 100% rename from resources/shaders/wisps.glsl rename to resources/shaders/wisps.frag diff --git a/src/Shader.js b/src/Shader.js index 8fa7e14..718179f 100644 --- a/src/Shader.js +++ b/src/Shader.js @@ -106,7 +106,7 @@ var Shader = GObject.registerClass( // Shell.GLSLEffect requires the declarations and the main source code as separate // strings. As it's more convenient to store the in one GLSL file, we use a regex // here to split the source code in two parts. - const code = this._loadShaderResource(`/shaders/${this._nick}.glsl`); + const code = this._loadShaderResource(`/shaders/${this._nick}.frag`); // Match anything between the curly brackets of "void main() {...}". const regex = RegExp('void main *\\(\\) *\\{([\\S\\s]+)\\}'); From b99c80a3434042b6f71f6753bdec40a2074522a5 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Fri, 27 May 2022 21:23:54 +0200 Subject: [PATCH 6/6] :memo: Add changelog entry --- docs/changelog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/changelog.md b/docs/changelog.md index ca72b39..f20cba8 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -8,6 +8,10 @@ * An option has been added which allows to automatically disable all effects if running on battery power. +#### Enhancements + +* The shader include system has been simplified. There's now just one "common.glsl" which is automatically loaded into each shader. + ## [Burn My Windows 16](https://github.com/schneegans/Burn-My-Windows/releases/tag/v16) **Release Date:** 2022-05-21