Comment afficher en 1 coup un bloc de pixels à l'écran? - C++ - Programmation
Marsh Posté le 23-05-2003 à 11:14:48
chrisbk a écrit : bitblt |
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
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
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 ... |
oue merci, je sais J'expliquais juste pkoi en faisait ses recherches il etait tbe sur ce bitonio DX
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...
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
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.
Marsh Posté le 23-05-2003 à 13:55:43
theShOcKwAvE a écrit : (en fait, memcpy, ca peut marcher dans certains cas .... 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???
Marsh Posté le 23-05-2003 à 14:19:41
rufo a écrit : |
surement pas ...
Tu dois bien avoir une fonction pour le récuperer via les GDI, non ?
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 |
La fonction SetDIBitsToDevice devrait convenir à ce genre d'utilisation
Marsh Posté le 25-05-2003 à 14:41:12
Tetragrammaton IHVH 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
Marsh Posté le 26-05-2003 à 22:46:49
rufo 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 )
Marsh Posté le 27-05-2003 à 09:15:22
sbbtn a écrit : |
c'est quoi ton pb? t'arrives pas à compiler du DirectX ou c'est que t'arrives pas à afficher une image?
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')
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)
Marsh Posté le 27-05-2003 à 14:03:44
theShOcKwAvE a écrit : |
oui, je sais, mais pourtant, mon .lib est bien répertorié dans les path de VC++ et pourtant, il le trouve pas
Marsh Posté le 27-05-2003 à 14:04:55
rufo a écrit : |
Y faut AUSSI l'inserer dans ton projet
Marsh Posté le 27-05-2003 à 14:58:37
chrisbk a écrit : |
Merci, chrisbk !
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 ...
Marsh Posté le 28-05-2003 à 09:15:17
theShOcKwAvE 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...
Marsh Posté le 28-05-2003 à 09:44:14
rufo 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
Marsh Posté le 28-05-2003 à 11:17:57
chrisbk a écrit : |
ahhhhhhhhhhh! Bon ben tout s'explique. Je savais ce détail... Merci.
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 )