Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3095 connectés 

 


Dernière réponse
Sujet : programmation graphique locker une surface
youdontcare 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]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
youdontcare 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]

antp 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)
kick 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
youdontcare 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.
kick 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?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)