programmation graphique locker une surface

programmation graphique locker une surface - Programmation

Marsh Posté le 07-11-2001 à 14:42:02    

bon voila ma question,  
à quoi ca sert de locker une surface d'écran. Dans la pratique ca permet de pouvoir ecrire dessus mais en concret qu'est-ce que ca fait?

Reply

Marsh Posté le 07-11-2001 à 14:42:02   

Reply

Marsh Posté le 07-11-2001 à 14:52:32    

bah écrire dessus justement, t'as ta réponse dans ta question :lol:
 
sous dx, pour utiliser une texture, tu charges l'image, créés une surface, la lockes, la remplies avec l'image, et tu l'unlockes.
 
et hop ... pareil pour les textures dynamiques, ou le render to texture : renderer un bout de scène 3d dans une texture, pour faire un effet de mirroir, des ombres, etc.

Reply

Marsh Posté le 07-11-2001 à 15:53:00    

oui mais pourquoi on a besoin de locker la surface? (et dites moi pas :"bah c pour ecrire dedans!" ).
pourquoi on ne peut pas ecrire directement dedans

Reply

Marsh Posté le 07-11-2001 à 16:51:30    

bah parce que si tu écris directement dedans elle est pas lockée :D
 
sérieusement, je suppose que c'est pour maintenant l'ordre et la discipline dans le système... (c'est pas toujours réussi pourtant)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-11-2001 à 19:45:54    

parce que la mémoire ne t'appartient pas : la texture est stockée sur la carte graphique. dans le cas d'un lock pour lire les données, il faut faire transiter la texture de la mem graphique vers la mem centrale. dans le cas d'un lock pour écrire c'est l'inverse.
 
ça sert donc à dire à directx "arrête le rendu jusqu'à ce que j'aie fini d'utiliser cette texture". imagine, tu veux écrire dans une texture qui est utilisée par un objet en train d'être rendu ... ou tu veux lire le backbuffer alors qu'un rendu est en train de se passer ... comme tout ça c'est asynchrone, il faut un moyen de dire qui fait quoi quand.
 
et donc, faut faire gaffe dans le lock ... ne pas locker une texture pour écrire dedans alors qu'elle est en train d'être utilisée par des objets (donc locker au début de la frame) ... en cas de lock pour lecture, spécifier le bon flag : si c'est une texture compressée, l'unlock() la recompressera ... etc.

 

[edtdd]--Message édité par youdontcare--[/edtdd]

Reply

Sujets relatifs:

Leave a Replay

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