

Este é um teleprompter implementado em Rust, usando a biblioteca ggez para renderização gráfica e entrada de eventos. Serve para quem precisa gravar vídeos e ler textos. É um trabalho em andamento, mas já funciona razoavelmente.
A rolagem é suave e contínua, linha a linha, com espaçamento configurável entre parágrafos e um lead-in inicial que mantém a tela vazia antes do início da fala. O layout do texto é prequebrado para caber na largura disponível, evitando reflow e “pulinhos” durante a leitura.
ggez (no Linux, instale libasound2-dev libudev-dev pkg-config).Clone o repositório e compile:
git clone https://github.com/cleuton/rustingcrab.git
cd code_samples/teleprompter
cargo build --release
O teleprompter lê um arquivo de texto e exibe cada parágrafo numerado.
cargo run --release -- --file "./soneto.txt" --lpm 40 --zoom 36
--file (obrigatório): caminho para o arquivo .txt contendo o texto.--lpm: linhas por minuto (padrão: 60).--zoom: tamanho da fonte em pixels (padrão: 36).Exemplo:
cargo run --release -- --file "soneto.txt" --lpm 40 --zoom 40
+ ou =: Aumenta o zoom.-: Diminui o zoom.R: Reinicia.O código divide o texto em parágrafos, remove numeração pré-existente e re-numera.
Cada parágrafo é quebrado em linhas que cabem na largura da janela com base no tamanho da fonte e largura disponível.
Essas linhas são organizadas em um vetor único (stream_lines) que inclui:
A rolagem é feita controlando o índice da linha corrente como um valor f32, permitindo deslocamentos parciais e rolagem suave.