affichage du cursor

affichage du cursor - C - Programmation

Marsh Posté le 04-11-2005 à 20:47:59    

salut   !!
 
je voudrais afficher quelque chose a la place du cursor en ecrivant directement  
 
dans la memoire video ou par des in/out.par exemple,supposons que nous avons  
 
entrer dans le mode VGA:comment ecrire une fonction indepandante de la  
 
librairie standart qui affiche un point lumineux aux cordonnees de la souris ?
 
ça je peux le faire ,mais le probleme se pose que lors du mouvement du  
 
coursor,ou on doit vider la memoire vidéo et reecrire au dessus ,ou copier un  
 
nouveau buffer dans la memoire video .c'est a dire en tout les cas,ça va  
 
diminuer de la qualité d'affichage  !!!prenons un nouveau exemple : si vous  
 
utiliser un systeme d'explotation 32 bits ,lors du mouvement de la souris ,le  
 
cursor se deplace sur l'ecran comme si aucune affection d'une memoire virtuelle  
 
ne s'est passé !!
 
merçi d'avance pour vos suggestions .
@++

Reply

Marsh Posté le 04-11-2005 à 20:47:59   

Reply

Marsh Posté le 04-11-2005 à 20:55:09    

1. Vu que ce ne peut-être du C standard, il serait de bon ton de préciser sur quel OS tu travailles.
 
2. Tu parles de mode VGA, euuh... tu es sous DOS 3 ?
 
3. C'est un calvaire de te lire, je n'ai quasi rien compris.

Reply

Marsh Posté le 04-11-2005 à 21:26:42    

je crois que j'ai bien expliqué  :) .sinon je vais essayer de clarifier plus les  
 
choses .  
1 - j'ai dit le mode VGA que pour donner un exemple d'un mode graphique.
 
2 - je vous ai annonce que seul l'utilisation de memoire vidéo et des in/out est  
 
possible,donc ç'est pas question de l'OS sur lequel on execute le programme  
 
sinon tu peux supposer qu'il tourne sous Dos.
@++
 

Reply

Marsh Posté le 04-11-2005 à 21:58:23    

Désolé, mais moi aussi je ne comprends pas très bien la question.
 
Je lis "comment ecrire une fonction ...." et tout de suite après "ça je peux le faire" qui annule la question.
 
Ensuite, je lis "le probleme se pose que lors du mouvement du coursor ...
en tout les cas,ça va  diminuer de la qualité d'affichage"

 
Ah bon ? Pourquoi ? De quelle qualité s'agit-il ? Habituellement, la qualité d'affichage désigne la résolution de l'écran, mais là cela métonnerait que cela soit çà. Donc c'est peut-être plutôt une diminution de la rapidité d'affichage.
 
Donc, peut-être que la question n'est pas "comment faire", comme je le croyais au début, mais plutôt "comment optimiser ?". Malheureusement, sans voir le programme, il est impossible à quiconque de répondre à cette question. Désolé.

Reply

Marsh Posté le 04-11-2005 à 22:47:28    

wé c'est ça ! comment optimiser ?                                                    
 
"il est impossible à quiconque de répondre à cette question" .
 
je ne veux que des idées pas corriger mon code,parceque j'arrive pas  
 
comprendre comment se passe l'affichage du cursor pour un OS !
 
merçi d'avance.

Reply

Marsh Posté le 05-11-2005 à 10:01:01    

En fait, il y a deux solutions :
 
1. Remplacer la souris par un "sprite". C'est la technique retenue dans beaucoup de jeux, car cela permet de personaliser les curseurs sans contrainte. Et c'est cette voix que je croyais que tu voulais emprunter. Mais cette technique a effectivement les problèmes liés au sprites, qui sont qu'il faut gérer non seulement l'image du curseur, mais aussi son masque, et qu'il faut les afficher suffisament rapidement pour que le joueur ne soit pas trop gêner.
 
2. Utiliser les fonctions spécifiques aux curseurs. Quasiment toutes les cartes graphiques ont des fonctions particulières pour gérer le curseur de la souris. Mais la contrepartie, c'est que seul des curseurs d'une taille donnée sont disponibles, par exemple juste 8x8, 16x 16 ou 32x32, et parfois seuls quelques formes de curseurs sont disponibles. Tout dépend des cartes vidéo, et comme il y en a beaucoup, le plus simple est de passer par les routines du système d'exploitation, et donc dans le cas du DOS, d'utiliser les interruptions. Dans le cas du DOS et du mode VGA, c'est l'interruption 33h qui est utilisé. Mais il peut aussi y avoir d'autres interruptions plus intéressantes. Pour les PC, voir la fameuse liste des interruptions de Ralf Brown.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed