comment ecrire dans un HDC [C/C++/OPENGL] - Programmation
Marsh Posté le 21-03-2001 à 11:30:54
un HDC (a la sauce windows) ca represente beaucoup plus: tout ton etat graphique en fait.
A+,
Marsh Posté le 21-03-2001 à 11:34:51
il est tt a fait possible de faire de la 2D en opengl !!!
Marsh Posté le 21-03-2001 à 12:14:01
OpenGL = API 2D/3D
Je vais t'etonner:
il est meme possible d'accelerer de l'affichage 2D
avec une carte acceleratrice 3D.
Voila
LEGREG
Marsh Posté le 21-03-2001 à 14:36:57
Voici le code si tu veux inserer de l'opengl avec une application sous MFC (Windows) :
HWND ghWnd;
HDC ghDC;
HGLRC ghRC;
CDC* cDC;
cDC = m_Opengl.GetDC();
ghDC = cDC->m_hDC;
ghRC = wglCreateContext(ghDC);
wglMakeCurrent(ghDC, ghRC);
displayGL(ghDC);
m_Opengl represente un objet graphique.
displayGL affiche les objets opengl.
Marsh Posté le 21-03-2001 à 16:30:40
oui merci, c'est bien bo tout ca, mais meme si on peut faire du 2d, on peut pas acceder à la zone memoire representant l'ecran, pour faire par exemple, un effet de feu par exemple.
Et autrement, comment faire pour afficher à des coordonnées voulus sur l'ecran quand il y a une camera(les coordonnées sont relative à la camera et non plus à la resolution de l'ecran).voila, merci quand meme pour vos reponse ci dessus.
Marsh Posté le 21-03-2001 à 16:50:48
tu peux recuperer et logiquement remplacer une partie de l'image en cours de realisation
glReadPixels(0,0,largeur_ecran,hauteur_ecran,GL_RGB, GL_UNSIGNED_BYTE, image);
Marsh Posté le 23-03-2001 à 13:35:46
merci, mais je sais pas comment on ecrit dans un hdc, ya pas des tutoriaux
merci
Marsh Posté le 23-03-2001 à 17:50:18
on ne peut écrire directement sur une surface openGL? il ne faut pas espérer avoir un pointeur sur les données graphiques, et de toute manière c'est tant mieux, car ça ralentirait tout d'obliger le bus AGP à transférer des données non consécutives et dans les deux sens en plus.
Le mieux pour tripatouiller directement et avoir des effets est de rendre son effet en RGB (par exemple) dans une zone mémoire réservée par ses propres soins, et de la copier à l'écran avec glCopyPixels.
Enfin, y'a pas de données graphiques dans un HDC, c'est juste le contexte graphique.
Marsh Posté le 23-03-2001 à 18:17:50
Pour écrire dans un HDC il faut utliser les primitive graphiques GDI de windows ( Bitblt entre autre)
Donc tu fais une recherche sur "GDI" dans le SDK de microsoft et tu trouve ton bonheur.
Marsh Posté le 24-03-2001 à 11:33:37
ok je vais essayer avec glcopypixel, mais ca risque pas d'etre un peut lent si je fait un truc du style à chaque frame
Marsh Posté le 25-03-2001 à 12:54:36
petite question, comment on fait pour reserver une zone memoire en rgb, pasqu'avec glCopyPixels, le dernier parametre representant la surface correspond à un unsigned int et je sais pas comment on associe une zone memoire à un entier
HEEEEEEEELLLLLLLPPPPPPPPPPPPPPPP
Marsh Posté le 21-03-2001 à 11:19:00
voila, je m'interresse à la programmation graphique depuis quelque temps, et je me pose quelques question.
Est il possible de faire du 2D en opengl?(je crois pas)
Peut-on ecrire dans un HDC? ca doit etre une zone memoire representant chque pixel de l'ecran?
merci d'avance
KICK