Graphics et asm - ASM - Programmation
Marsh Posté le 04-03-2003 à 17:00:11
oui bien sûr, il y a toujours les services DOS ou BIOS, ou mieux, manipuler directement la carte vidéo
Franchement la méthode que tu décris est la plus facile.
Marsh Posté le 04-03-2003 à 17:22:15
Al zheimeR a écrit : Je sais qu'en pokant dans a000:x on peut faire des jolis pixels.. |
Sauf si tu es en mode X
Marsh Posté le 04-03-2003 à 22:31:33
drasche a écrit : |
Mais est-ce la plus rapide ?
Marsh Posté le 04-03-2003 à 22:45:10
Al zheimeR a écrit : |
le plus rapide est de tout écrire dans une zone off-screen et de tout balancer dans la vram à coup de rep movsb
Marsh Posté le 04-03-2003 à 22:58:25
si tu veux que ca aille plus vite, il faut faire un buffer comme le dit Harko mais par contre utilise rep movsw ou movsd qui font les copies par paquets de 2 ou 4 octets...
pour info, des routines bien optimisées permettent de faire tourner a plein tube (aka 70 images/sec la limite du VGA)
3000 sprites avec scrolling sur un 486DX...
ensuite, si tu veux rester en assembleur, tu peux utiliser la norme VESA (qui est implémenté dans toutes les cartes vidéo) qui te permet d'acceder aux hautes resolutions (taille et couleurs) mais c'est la merde a programmer (switchage de buffer, plan de bit (comme le mode x) )
nb: le mode x est un hack du vga qui te permet de passer en 320x240 au lieu de 320x200...
tu as aussi un autre hack qui est de supprimer le double chain du VGA ce qui te permet de passer en 320x400...
Marsh Posté le 05-03-2003 à 20:21:21
le plus rapide c'est d'utiliser le hardware dédié pour
écrire en mémoire vidéo..
Après tout dépend quelles sont tes ambitions..
LeGreg
Marsh Posté le 05-03-2003 à 21:43:34
djok_fb a écrit : si tu veux que ca aille plus vite, il faut faire un buffer comme le dit Harko mais par contre utilise rep movsw ou movsd qui font les copies par paquets de 2 ou 4 octets... |
c'est la que jme dit que win avec directx spa si terrible que ca
sinon pour transfere des bytes ya pas moyen de demander a la carte graphique de le faire (blitting) plutot que avec des move??
Marsh Posté le 06-03-2003 à 10:13:58
red faction a écrit : |
pas en VGA...
si tu veux que ce soit la carte qui le fasse, il faut que tu appelles les fonctions de la carte directement en ASM (a priori, ca doit etre poilu car ca veut dire ecrire un driver) sachant aussi que Ati et nVidia sont pas mouchards sur leur spec'...
sinon faut passer par une API toute faite (comme DirectX ou SQL) qui te "générifie" les fonctions d'affichage...
Marsh Posté le 06-03-2003 à 10:37:21
djok_fb a écrit : |
SDL plutot, non ?
Marsh Posté le 04-03-2003 à 16:18:50
Je sais qu'en pokant dans a000:x on peut faire des jolis pixels.. Mais ya t il d'autres méthodes pour afficher des graphs sur l'écran (en mode dos) que d'écrire directement ds la memoire ?
Inutile de préciser que je débute (niveau "Hello world" )