diff --git a/TASK.md b/TASK.md deleted file mode 100644 index bbf1b9a..0000000 --- a/TASK.md +++ /dev/null @@ -1,32 +0,0 @@ -# Фикс би-нокулярного рендера RayNeo: scale=true → scale=false - -Живой тест на RayNeo X2: экран 1280×480, каждый глаз видит СВОЮ половину -(640×480). `Binocular(scale = true)` (GlassesMovieScreen.kt:63) рисует -контент на весь экран и сжимает scaleX 0.5 → каждый SurfaceView (буфер -~850×455, полный кадр) визуально 425px в половине глаза 640px → **каждый -глаз видит ПОЛОВИНУ кадра**, растянутую на 640px (масштаб ×1.5) → видео -выглядит «сплющенным по горизонтали» (жалоба пользователя). - -SurfaceFlinger подтверждает: слои #0/#1 с scaleX=0.5006, translate 215/640. - -## Изменение (app-glasses, GlassesMovieScreen.kt) - -`Binocular(scale = true)` → `Binocular(scale = false)`. - -Что это даёт (scale=false — ветка Row + two Columns weight 1f): -- BinocularScreenSize = (ширина/2, высота) = (640, 480); -- calculateVideoSizeFull(896×480, maxWidth=640, maxHeight=455) → - SurfaceView 640×343 (16:9 вписан в пол-экрана, поля 68+69 сверху/снизу - — чёрный фон Row); -- ДВА SurfaceView 640×343: левый в левой половине, правый в правой — - каждый глаз видит ПОЛНЫЙ кадр с полями. Пропорции правильные. - -letterboxRect в drawFrame оставить (страховка: SurfaceView 640×343 = -ровно 16:9 — letterboxRect вернёт полный viewport, ничего не сломает). - -## Проверка -- Тесты/сборка зелёные (`./gradlew :app-glasses:testDebugUnitTest - :app-glasses:assembleDebug`). -- Железо (после установки): скрин очков — ДВА одинаковых кадра 640×343 - (поля сверху/снизу), в каждом глазу полный кадр; пользователь видит - правильные пропорции (не «квадратное»).