Comment afficher en 1 coup un bloc de pixels à l'écran?

Comment afficher en 1 coup un bloc de pixels à l'écran? - C++ - Programmation

Marsh Posté le 23-05-2003 à 10:54:05    

   Voilà, je voudrais trouver un moyen de faire la même manip que quand on utilise memcpy pour transférer un bloc de données vers un autre. Pour l'instant, pour afficher des pixels, j'utilise une boucle qui affiche pixel par pixel via setpixel. Aussi, je voudrais une fonction qui me permette  de transférer un bloc de données (contenant les couleurs des pixels à afficher) directement à l'écran. Merci :)
 
ps: je voudrais une méthote qui n'utilise pas DirectX (j'arrive pas à compiler alors que les chemins des includes et lib sont bons :()

Reply

Marsh Posté le 23-05-2003 à 10:54:05   

Reply

Marsh Posté le 23-05-2003 à 10:55:30    

bitblt

Reply

Marsh Posté le 23-05-2003 à 11:14:48    


 
j'ai regardé dans la doc, mais il me dit que c'est du DirectX. Mais il me semble que c'est une api windows (je crois que je l'avait utilisé un jour sous vb6). Je dois faire comment pour pouvoir l'utiliser, svp? merci :)

Reply

Marsh Posté le 23-05-2003 à 11:17:30    

c une api windows mais il existe possiblement un objet ddraw possedant une fonction du meme nom
 
(google + msdn pour comment ca marche, ca fait trop long que j'ai plus utiliser)
sinon t'as fonction gdi fillrect et tout ca
 

Reply

Marsh Posté le 23-05-2003 à 11:23:53    

ddraw, ca fait partie de DirectX .... Enfin ... Ca faisait partie de DirectX, pardon ... :D


---------------
last.fm
Reply

Marsh Posté le 23-05-2003 à 11:28:04    

theShOcKwAvE a écrit :

ddraw, ca fait partie de DirectX .... Enfin ... Ca faisait partie de DirectX, pardon ... :D


 
oue merci, je sais :D J'expliquais juste pkoi en faisait ses recherches il etait tbe sur ce bitonio DX :D

Reply

Marsh Posté le 23-05-2003 à 11:31:59    

bon, je vais déjà voir avec bitblt. Su un autre sujet, j'ai peut-être trouvé la solution à mon pc de linkage avec DirectX...

Reply

Marsh Posté le 23-05-2003 à 11:32:37    

du reste, j'ai le même pc de linkage avec les librairies OpenGl de VC++ 5.0 :(

Reply

Marsh Posté le 23-05-2003 à 13:10:59    

c'est pas assez clair ton truc : t'as quoi en entrée ? un bitmap ? une matrice contenant les pts ? un hdc ? autre chose ?
 
dans tous les cas, les fonctions gdi te permettent de faire ce ke tu veux, mais certaines sont plus complexes ke les autres.

Reply

Marsh Posté le 23-05-2003 à 13:20:53    

(en fait, memcpy, ca peut marcher dans certains cas .... :D C'est ce que font les blits software, il me semble, non ?)


---------------
last.fm
Reply

Marsh Posté le 23-05-2003 à 13:20:53   

Reply

Marsh Posté le 23-05-2003 à 13:55:43    

theShOcKwAvE a écrit :

(en fait, memcpy, ca peut marcher dans certains cas .... :D C'est ce que font les blits software, il me semble, non ?)


 
sauf que le pointeur de destination, c'est quoi? le hdc de la fenêtre???

Reply

Marsh Posté le 23-05-2003 à 14:19:41    

rufo a écrit :


 
sauf que le pointeur de destination, c'est quoi? le hdc de la fenêtre???


 
surement pas ...
Tu dois bien avoir une fonction pour le récuperer via les GDI, non ?


---------------
last.fm
Reply

Marsh Posté le 23-05-2003 à 14:34:08    

rufo a écrit :

   Voilà, je voudrais trouver un moyen de faire la même manip que quand on utilise memcpy pour transférer un bloc de données vers un autre. Pour l'instant, pour afficher des pixels, j'utilise une boucle qui affiche pixel par pixel via setpixel. Aussi, je voudrais une fonction qui me permette  de transférer un bloc de données (contenant les couleurs des pixels à afficher) directement à l'écran. Merci :)
 
ps: je voudrais une méthote qui n'utilise pas DirectX (j'arrive pas à compiler alors que les chemins des includes et lib sont bons :()


 
La fonction SetDIBitsToDevice devrait convenir à ce genre d'utilisation


---------------
"Dieu a exploité tous nos complexes d'infériorité, en commençant par notre incapacité de croire à notre propre divinité." - Emil Michel Cioran
Reply

Marsh Posté le 25-05-2003 à 14:41:12    

Tetragrammaton IHVH a écrit :


 
La fonction SetDIBitsToDevice devrait convenir à ce genre d'utilisation


 
merci je vais regarder. Sinon, j'ai réussi à compiler avec du code contenant des instructions DirectX, donc, j'ai réussi à faire ce que je voulais. Je vous remercie pour votre aide :jap:

Reply

Marsh Posté le 26-05-2003 à 22:46:49    

rufo a écrit :


 
merci je vais regarder. Sinon, j'ai réussi à compiler avec du code contenant des instructions DirectX, donc, j'ai réussi à faire ce que je voulais. Je vous remercie pour votre aide :jap:


Est ce qu'il serait possible que tu montres ton code, parce que j'ai le meme genre de probleme, et je ne m'en sorts pas...
(c'est pour un projet que je dois rendre à la fin de la semaine...autant dire que je suis  :pfff: )

Reply

Marsh Posté le 27-05-2003 à 09:15:22    

sbbtn a écrit :


Est ce qu'il serait possible que tu montres ton code, parce que j'ai le meme genre de probleme, et je ne m'en sorts pas...
(c'est pour un projet que je dois rendre à la fin de la semaine...autant dire que je suis  :pfff: )


 
c'est quoi ton pb? t'arrives pas à compiler du DirectX ou c'est que t'arrives pas à afficher une image?

Reply

Marsh Posté le 27-05-2003 à 09:18:07    

si c'est compiler du DX, j'ai résolu le pb via l'instruction en début de prgm : pragma comment('maLibDirectX.lib')

Reply

Marsh Posté le 27-05-2003 à 11:23:05    

rufo a écrit :

si c'est compiler du DX, j'ai résolu le pb via l'instruction en début de prgm : pragma comment('maLibDirectX.lib')


 
Les pragma comment(...) c'est jamais vraiment conseillé. Si ca marche, ca veut dire que tu ne linkais pas correctement avec ta lib (je ne parle pas du .h mais bel et bien du .lib)


---------------
last.fm
Reply

Marsh Posté le 27-05-2003 à 14:03:44    

theShOcKwAvE a écrit :


 
Les pragma comment(...) c'est jamais vraiment conseillé. Si ca marche, ca veut dire que tu ne linkais pas correctement avec ta lib (je ne parle pas du .h mais bel et bien du .lib)


 
oui, je sais, mais pourtant, mon .lib est bien répertorié dans les path de VC++ et pourtant, il le trouve pas :(

Reply

Marsh Posté le 27-05-2003 à 14:04:55    

rufo a écrit :


 
oui, je sais, mais pourtant, mon .lib est bien répertorié dans les path de VC++ et pourtant, il le trouve pas :(


 
Y faut AUSSI l'inserer dans ton projet

Reply

Marsh Posté le 27-05-2003 à 14:58:37    

chrisbk a écrit :


 
Y faut AUSSI l'inserer dans ton projet


 
Merci, chrisbk ! :D
 
Tu sais, dans la liste des libs dans les settings de ton projet ... Sous l'onglet "LINK" ... Si tu ne l'ajoutes pas manuellement là, c'est logique que ton compilo ne devine pas qu'il faut qu'il prenne ta lib ...
 
l'autre solution, c'est effectivement d'ajouter carrément le fichier lib à la liste des fichiers du projet ...


Message édité par theshockwave le 27-05-2003 à 14:58:56

---------------
last.fm
Reply

Marsh Posté le 28-05-2003 à 09:15:17    

theShOcKwAvE a écrit :


 
Merci, chrisbk ! :D
 
Tu sais, dans la liste des libs dans les settings de ton projet ... Sous l'onglet "LINK" ... Si tu ne l'ajoutes pas manuellement là, c'est logique que ton compilo ne devine pas qu'il faut qu'il prenne ta lib ...
 
l'autre solution, c'est effectivement d'ajouter carrément le fichier lib à la liste des fichiers du projet ...


 
pourquoi il faut rajouter dans mon projet le .lib de DirectX alors que quand j'utilise conio.h c'est pas la peine? :??: Pourtant, les .lib correspondant à ddraw.h et conio.h se trouvent dans le même répertoire...

Reply

Marsh Posté le 28-05-2003 à 09:44:14    

rufo a écrit :


 
pourquoi il faut rajouter dans mon projet le .lib de DirectX alors que quand j'utilise conio.h c'est pas la peine? :??: Pourtant, les .lib correspondant à ddraw.h et conio.h se trouvent dans le même répertoire...


 
par defaut visu link avec tout un tas de librairie pour justement pas avoir a se prendre la tete avec ca. Mais bon, pas ddraw

Reply

Marsh Posté le 28-05-2003 à 11:17:57    

chrisbk a écrit :


 
par defaut visu link avec tout un tas de librairie pour justement pas avoir a se prendre la tete avec ca. Mais bon, pas ddraw
 


 
ahhhhhhhhhhh! Bon ben tout s'explique. Je savais ce détail... Merci. :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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