e02998cea7
Phase 3c — динамический текст через libfreetype6: открывается font (.ttf/.otf), измеряется bounding box строки, рендерится в RGBA-атлас с anti-aliased alpha из FT bitmap, заливается в VRAM. На каждом кадре блитится через cfc_cugrid_blit_rgba_nv12 (kernels уже есть). Поддержка UTF-8 через простой inline-decoder (1/2/3/4-byte). cfc_overlay_update_text() переподдерживает re-render atlas (text / color change) — для Phase 4 ZMQ control plane (динамическое изменение NO SIGNAL / RECORDING / timestamp'ов). Адаптация под GTX 1050 (Pascal) в проде: - CMAKE_CUDA_ARCHITECTURES = 61;75;86;89;120 (Pascal + Turing + Ampere + Ada + Blackwell, покрывает все production-кейсы) - grid_record default снижен с 4K@10Mbps на 1080p@4Mbps. 4K требует явных --width 3840 --height 2160 (Pascal NVENC 4K H.264 на грани). - Ссылка на research-документ + NVENC §Input Buffers рядом со staging buffer'ом в nvenc.c с цитатой "the client is required to use buffers allocated using the cuMemAlloc family of APIs". Содержимое Phase 3c: - overlay.h — cfc_overlay_create_text + update_text + text_size. - overlay.c — utf8_next decoder, text_measure (ascender/descender), text_render (alpha-over blend в RGBA), text_rebuild_atlas (VRAM cycle), full FreeType lifecycle. - CMakeLists.txt — find_package(Freetype REQUIRED) + link Freetype::Freetype. - examples/grid_record — флаг --text font,size,r,g,b,x,y,text.