Представлен открытый эмулятор терминала Ratty с отрисовкой на GPU и встроенной 3D-графикой
Разработчик Орхун Пармаксиз представил открытый проект под названием Ratty. Это эмулятор терминала с отрисовкой на GPU и встроенной 3D-графикой и курсором в виде крысы. Исходный код решения написан на Rust и опубликован на GitHub под лицензией MIT.
«Я попытался ответить на один простой вопрос: что, если бы терминал был трёхмерным? Проект вдохновлён TempleOS, создан на Rust и Ratatui», — пояснил в своём блоге автор решения.
Решение имеет вращающийся курсор в виде крысы (настраиваемый), поддерживает 2D и 3D режим, имеет встроенные 3D-объекты и выполняет рендеринг текста с использованием графического процессора.
Сборки проекта доступны для Linux (crates.io) и macOS.
Ratty также поддерживает протокол Kitty Image Protocol, поэтому проект может отображать изображения (например, логотип TempleOS в правом верхнем углу).
В настоящее время для буфера пользовательского интерфейса терминал Ratty использует ratatui, parley_ratatui для формирования/рендеринга текста и Bevy для сценарного отображения (scene presentation).
Текущий рабочий процесс: буфер Ratatui на CPU, рендеринг Parley/Vello на GPU, чтение RGBA в ЦП, копирование в изображение Bevy Bevy отображает это изображение в 2D и 3D, рисование на терминале выполняется с помощью GPU через Parley/Vello, но основное изображение терминала всё ещё проходит через память CPU, прежде чем Bevy его отобразит. Это мост, работающий на GPU, а не полностью резидентный путь к общей текстуре на GPU. Если проект позже перейдёт к полностью резидентному пути на GPU, это потребует специальной интеграции рендеринга Bevy, которая будет выполнять рендеринг в текстуру, принадлежащую Bevy, на устройстве рендеринга Bevy, вместо использования текущего моста обратного чтения.
«Всё, чего я хотел, — это создать
Читать на habr.com