rustingcrab



Cleuton Sampaio

Veja no GitHub

Teleprompter em Rust (ggez)

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.

Funcionalidades

Requisitos

Build

Clone o repositório e compile:

git clone https://github.com/cleuton/rustingcrab.git
cd code_samples/teleprompter
cargo build --release

Execução

O teleprompter lê um arquivo de texto e exibe cada parágrafo numerado.

cargo run --release -- --file "./soneto.txt" --lpm 40 --zoom 36

Parâmetros

Exemplo:

cargo run --release -- --file "soneto.txt" --lpm 40 --zoom 40

Controles

Botões na tela

Atalhos de teclado

Implementação

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.