sto insegnando la mia programmazione figlio "il diritto/modo più duro", quindi stiamo iniziando con C, come gli uomini veri :)Posso scrivere byte direttamente nella memoria video sotto Linux, o c'è un modo migliore per ottenere i dati sullo schermo?
Stampa di testo alla console è divertente, ma mi ricordo ancora l'ebbrezza di commutazione il mio vecchio i386 alla modalità 320x200x256 e il disegno di alcuni rettangoli colorati ... nel corso della giornata era facile come invocare int 10h
e quindi basta scrivere byte a [A000:0000]
per disegnare pixel sullo schermo.
Con il moderno Linux, tuttavia, tale accesso di basso livello all'hardware sembra essere più complicato (per ovvi motivi). Ho brevemente esaminato mmap
-ing /dev/fd0
come descritto here - risulta che non esiste un dispositivo /dev/fb0
sulla mia Ubuntu 13.04. Ho anche guardato usando svgalib
- tuttavia, il loro codice di esempio non visualizza nulla sul mio monitor.
Quindi la domanda è: ci sono modi semplici per ottenere l'accesso diretto alla memoria video in Linux moderno che non richiede molta configurazione di sistema e codice boilerplate? Non deve essere un accesso a schermo intero: l'apertura di una finestra X e il disegno dei pixel potrebbero andare bene, a patto che venga eseguito scrivendo i dati direttamente nella memoria.
Si consiglia di imparare come utilizzare SDL e quindi lasciare che il sistema decida meglio come gestirlo per schiaffarlo sullo schermo. –
@ IgnacioVazquez-Abrams: Wow, grazie per aver menzionato SDL. Sono stato in grado di compilare un programma di esempio SDL e sembra esattamente quello che stavo cercando. Se aggiungi il tuo commento come risposta, ti prometto di accettarlo in un paio di giorni a condizione che non venga menzionato nemmeno un quadro più meraviglioso :) – Sergey
Assemblaggio codice programmatore reale :). O meglio ancora, i veri programmatori brandiscono [farfalle] (http://xkcd.com/378/), vai a prendere a tuo figlio una rete da farfalle, avvialo ora che è giovane! – terdon