mirror of
https://github.com/by-sonic/tglock.git
synced 2026-07-31 07:45:13 +03:00
fix(gui): просить программный рендер, чтобы окно создавалось без 3D (#28)
Интерфейс построен на системном WebView, а тот без 3D-ускорения окно не создаёт. Отсюда весь класс жалоб: не стартует в виртуалке, не стартует с дефолтным драйвером Microsoft, не стартует без монитора. Диагноз в #17 дал @de4me: в VirtualBox приложение запускается только после включения галочки «Включить ускорение 3D». Перед стартом Tauri TGLock теперь сам запрашивает программный рендер: - Windows: WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS с --disable-gpu и --disable-gpu-compositing; - Linux: WEBKIT_DISABLE_COMPOSITING_MODE и WEBKIT_DISABLE_DMABUF_RENDERER; - macOS: не требуется, WebKit сам уходит в программный рендер. Для панели со статусом программный рендер не стоит ничего заметного, поэтому он выбран значением по умолчанию, а не аварийным режимом. Уже заданные оператором переменные не перезаписываются, TGLOCK_FORCE_GPU=1 отключает механизм целиком. Логика вынесена в чистую функцию software_rendering_vars и покрыта четырьмя тестами: значение по умолчанию, отключение через TGLOCK_FORCE_GPU, уважение чужой переменной и правильный набор ключей на каждой платформе. Версия поднята до 2.0.0-beta.2 в Cargo.toml, package.json и tauri.conf.json: нужен тег, чтобы в релиз попали и tglock-cli, и этот фикс. README получил отдельный вопрос в FAQ про «окно не появляется», ARCHITECTURE_V2.md — обновлённый пункт в Current limitations. Co-authored-by: by-sonic <171230345+by-sonic@users.noreply.github.com>
This commit is contained in:
+12
-8
@@ -12,9 +12,11 @@
|
||||
|
||||
Фича `gui` включена по умолчанию и подтягивает `tauri`, `tauri-build` и `open`.
|
||||
При `--no-default-features` ни Tauri, ни системный WebView, ни фронтенд в сборку
|
||||
не попадают, и `build.rs` не вызывает `tauri_build`. Это единственный способ
|
||||
собрать и запустить TGLock там, где WebView не создаёт окно: сервер, контейнер,
|
||||
виртуалка, машина без монитора или без 3D-ускорения.
|
||||
не попадают, и `build.rs` не вызывает `tauri_build`. Так TGLock собирается и
|
||||
работает там, где WebView недоступен в принципе: сервер без графического
|
||||
окружения, контейнер, машина без монитора. Для случаев, где WebView есть, но нет
|
||||
3D-ускорения, GUI дополнительно просит программный рендер — см. Current
|
||||
limitations.
|
||||
|
||||
## Local protocols
|
||||
|
||||
@@ -109,11 +111,13 @@ Worker должен принимать WebSocket на:
|
||||
- SNI camouflage не включена: небезопасное отключение hostname verification
|
||||
из референсной реализации не переносится.
|
||||
- Голосовые звонки по UDP не поддерживаются.
|
||||
- **GUI не запускается там, где WebView не может создать окно** — нет
|
||||
3D-ускорения, дефолтный видеодрайвер, отсутствует монитор, виртуальная
|
||||
машина. Это ограничение Tauri, а не транспорта; программный рендер как
|
||||
обходной путь не проверен. Рабочий вариант для таких машин — `tglock-cli`
|
||||
(issues #10, #17).
|
||||
- **GUI зависит от WebView, а тот — от 3D-ускорения.** Начиная с
|
||||
2.0.0-beta.2 приложение перед стартом Tauri само просит программный рендер:
|
||||
на Windows через `WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS`, на Linux через
|
||||
`WEBKIT_DISABLE_COMPOSITING_MODE` и `WEBKIT_DISABLE_DMABUF_RENDERER`. Уже
|
||||
заданные оператором значения не перезаписываются, а `TGLOCK_FORCE_GPU=1`
|
||||
возвращает аппаратное ускорение. Для машин без монитора остаётся
|
||||
`tglock-cli`, которому WebView не нужен вовсе (issues #10, #17).
|
||||
- Windows-инсталлятор не подписан, macOS-сборка не нотарифицирована. Часть
|
||||
антивирусов реагирует на неподписанный установщик, открывающий локальный
|
||||
сокет; проверяемый ответ — сборка из исходников либо публичные логи
|
||||
|
||||
Reference in New Issue
Block a user