2009-12-08 19 views
8

Come può un programma disegnare il testo su un frame buffer associato come array? Ciò che è necessario è sia un mezzo per rappresentare i singoli personaggi, sia per disegnare i personaggi pixel per pixel in un modo che non sia troppo inefficiente. La rappresentazione dei personaggi dovrebbe idealmente essere definita esclusivamente in codice, e non sarebbe necessaria alcuna libreria di terze parti.Disegno di testo su un framebuffer in Linux da C

Qualcuno sa del codice per farlo disponibile con una licenza liberale? O uno strumento per generare definizioni dei dati per il carattere da utilizzare nel codice del programma, ad es. l'array di valori di glifo/carattere bitmap?

+0

L'intento è di visualizzare il risultato su uno schermo o di scriverlo in un file? –

+1

Per visualizzare sullo schermo, idealmente fino a 60 fps – grrussel

risposta

3

Non ho alcuna informazione specifica per i buffer dei frame, ma ho un modo interessante di codificare un font.

Se si dispone di un'applicazione in grado di scrivere su XBM format, è possibile codificare un carattere semplicemente creando un'immagine contenente tutti i caratteri. Il file XBM può essere incluso come file C o C++ e, utilizzando gli offset corretti, è possibile accedere facilmente a un singolo carattere. Assicurati che ogni carattere inizi con una coordinata X divisibile per 8, perché l'immagine è codificata come un bit per pixel; tutto ciò che non si allinea su un limite a 8 bit avrà bisogno di mascheramento e spostamento.

-3

Per disegnare una linea su un array 2D, utilizzare Besengam's algorithm.

Per disegnare i caratteri utilizzando linee rette, crea il tuo alfabeto utilizzando una serie di moveTo, lineTo. Per esempio. per un semplice 'L':

image.moveTo(0,-fontHeight); 
image.lineTo(0, 0); 
image.lineTo(fontWidth,0);