begin process at 2012 05 29 21:34:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

probleme openGl niveau debutant


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

probleme openGl niveau debutant

mercredi 16 avril 2003 à 13:22:26 | probleme openGl niveau debutant

AmK

salut je debute en openGL et j'ai du mal a creer une fenetre le compilateur me mets 2 erreurs :


PS: les erreurs du compilateur(vc++ 6.0)sont plus bas !

// debut du code

#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>

HWND hWnd;
WNDCLASS wc;
MSG msg;
HDC DC;
HGLRC RC;



void RePaint ()
{
glClear (GL_COLOR_BUFFER_BIT);
glMatrixMode (GL_MODELVIEW);
glLoadIdentity ();

SwapBuffers (DC);
}


void InitPixelFormat (HDC hDC)
{
PIXELFORMATDESCRIPTOR pfd =
{
sizeof (PIXELFORMATDESCRIPTOR),
1,
PFD_SUPPORT_OPENGL | PFD_TYPE_RGBA | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER,
16,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16,
0, 0, 0, 0, 0, 0, 0
};

SetPixelFormat (hDC, ChoosePixelFormat (hDC, &pfd), &pfd);
}





LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
RC=wglCreateContext(DC);

wgMakeCurrent(DC,RC);

switch(uMsg)
{
case WM_CREATE:
DC=GetDC(hWnd);
InitPixelFormat(HDC);

break;

case WM_SIZE:
glViewport (0,0,LOWORD (lParam),HIWORD (lParam));
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
gluPerspective (45,(float)(LOWORD(lParam))/(float)(HIWORD (lParam)),1,100);
break;

case WM_PAINT :
RePaint();
break;

case WM_CLOSE :
wglMakeCurrent(NULL,NULL);
wglDeleteContext(RC);
ReleaseDC(hWnd,DC);
PostQuitMessage(0);

break;

default :
return DefWindowProc(hWnd,uMsg,wParam,lParam);
break;
}
return 0;
}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int CmdShow)

{

wc.style = CS_OWNDC;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
wc.lpszMenuName = NULL;
wc.lpszClassName = "OGL";

RegisterClass(&wc);

hWnd=CreateWindow("OGL","Fenetre OpenGl",WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,0,0,640,480,NULL,NULL,hInstance,NULL);

while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;

}

// fin du code


--------------------Configuration: sdf - Win32 Debug--------------------
Compiling...
sdf.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\jesis\sdf.cpp(46) : error C2065: 'wgMakeCurrent' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\jesis\sdf.cpp(51) : error C2275: 'HDC' : illegal use of this type as an expression
c:\program files\microsoft visual studio\vc98\include\windef.h(239) : see declaration of 'HDC'
Error executing cl.exe.

sdf.exe - 2 error(s), 0 warning(s)

merci de me dire ou sont les erreurs ! :)
mercredi 16 avril 2003 à 14:11:44 | Re : probleme openGl niveau debutant

payen

si c'est juste une fenetre que tu veux creer, tu te compliques mechamment la vie! Code pris sur http://www.linuxgraphic.org/section3d/openGL/didact.html

#include <GL/glut.h>

void affichage();
void clavier(unsigned char touche,int x,int y);

int main(int argc,char **argv)
{

/* initialisation de glut et creation
de la fenetre */
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_RGB);
glutInitWindowPosition(200,200);
glutInitWindowSize(250,250);
glutCreateWindow("ogl1");

/* Initialisation d'OpenGL */
glClearColor(0.0,0.0,0.0,0.0);
glColor3f(1.0,1.0,1.0);
glPointSize(2.0);
/* enregistrement des fonctions de rappel */
glutDisplayFunc(affichage);
glutKeyboardFunc(clavier);


/* Entree dans la boucle principale glut */
glutMainLoop();
return 0;
}

void affichage()
{
/* effacement de l'image avec la couleur de fond */
glClear(GL_COLOR_BUFFER_BIT);

/* Dessin du polygone */
glBegin(GL_POLYGON);
glColor3f(1.0,0.0,0.0);
glVertex2f(-0.5,-0.5);
glColor3f(0.0,1.0,0.0);
glVertex2f(0.5,-0.5);
glColor3f(0.0,0.0,1.0);
glVertex2f(0.5,0.5);
glColor3f(1.0,1.0,1.0);
glVertex2f(-0.5,0.5);
glEnd();

/* on force l'affichage du resultat */
glFlush();
}

void clavier(unsigned char touche,int x,int y)
{
switch (touche)
{
case 'p': /* affichage du carre plein */
glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
glutPostRedisplay();
break;
case 'f': /* affichage en mode fil de fer */
glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
glutPostRedisplay();
break;
case 's' : /* Affichage en mode sommets seuls */
glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
glutPostRedisplay();
break;
case 'q' : /*la touche 'q' permet de quitter le programme */
exit(0);
}
}

ca me semble plus simple a comprendre que tn premier code ...

-------------------------------
Réponse au message :
-------------------------------

> salut je debute en openGL et j'ai du mal a creer une fenetre le compilateur me mets 2 erreurs :
>
>
> PS: les erreurs du compilateur(vc++ 6.0)sont plus bas !
>
> // debut du code
>
> #include <windows.h>
> #include <gl/gl.h>
> #include <gl/glu.h>
>
> HWND hWnd;
> WNDCLASS wc;
> MSG msg;
> HDC DC;
> HGLRC RC;
>
>
>
> void RePaint ()
> {
> glClear (GL_COLOR_BUFFER_BIT);
> glMatrixMode (GL_MODELVIEW);
> glLoadIdentity ();
>
> SwapBuffers (DC);
> }
>
>
> void InitPixelFormat (HDC hDC)
> {
> PIXELFORMATDESCRIPTOR pfd =
> {
> sizeof (PIXELFORMATDESCRIPTOR),
> 1,
> PFD_SUPPORT_OPENGL | PFD_TYPE_RGBA | PFD_DRAW_TO_WINDOW | PFD_DOUBLEBUFFER,
> 16,
> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
> 16,
> 0, 0, 0, 0, 0, 0, 0
> };
>
> SetPixelFormat (hDC, ChoosePixelFormat (hDC, &pfd), &pfd);
> }
>
>
>
>
>
> LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
> {
> RC=wglCreateContext(DC);
>
> wgMakeCurrent(DC,RC);
>
> switch(uMsg)
> {
> case WM_CREATE:
> DC=GetDC(hWnd);
> InitPixelFormat(HDC);
>
> break;
>
> case WM_SIZE:
> glViewport (0,0,LOWORD (lParam),HIWORD (lParam));
> glMatrixMode (GL_PROJECTION);
> glLoadIdentity ();
> gluPerspective (45,(float)(LOWORD(lParam))/(float)(HIWORD (lParam)),1,100);
> break;
>
> case WM_PAINT :
> RePaint();
> break;
>
> case WM_CLOSE :
> wglMakeCurrent(NULL,NULL);
> wglDeleteContext(RC);
> ReleaseDC(hWnd,DC);
> PostQuitMessage(0);
>
> break;
>
> default :
> return DefWindowProc(hWnd,uMsg,wParam,lParam);
> break;
> }
> return 0;
> }
>
> int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int CmdShow)
>
> {
>
> wc.style = CS_OWNDC;
> wc.lpfnWndProc = WindowProc;
> wc.cbClsExtra = 0;
> wc.cbWndExtra = 0;
> wc.hInstance = hInstance;
> wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
> wc.hCursor = LoadCursor(NULL, IDC_ARROW);
> wc.hbrBackground = (HBRUSH)GetStockObject(LTGRAY_BRUSH);
> wc.lpszMenuName = NULL;
> wc.lpszClassName = "OGL";
>
> RegisterClass(&wc);
>
> hWnd=CreateWindow("OGL","Fenetre OpenGl",WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,0,0,640,480,NULL,NULL,hInstance,NULL);
>
> while(GetMessage(&msg,NULL,0,0))
> {
> TranslateMessage(&msg);
> DispatchMessage(&msg);
> }
> return 0;
>
> }
>
> // fin du code
>
>
> --------------------Configuration: sdf - Win32 Debug--------------------
> Compiling...
> sdf.cpp
> C:\Program Files\Microsoft Visual Studio\MyProjects\jesis\sdf.cpp(46) : error C2065: 'wgMakeCurrent' : undeclared identifier
> C:\Program Files\Microsoft Visual Studio\MyProjects\jesis\sdf.cpp(51) : error C2275: 'HDC' : illegal use of this type as an expression
> c:\program files\microsoft visual studio\vc98\include\windef.h(239) : see declaration of 'HDC'
> Error executing cl.exe.
>
> sdf.exe - 2 error(s), 0 warning(s)
>
> merci de me dire ou sont les erreurs ! :)


Cette discussion est classée dans : hwnd, hdc, wc, pfd, lparam


Répondre à ce message

Sujets en rapport avec ce message

API :: gestion du mulo [ par JackosKing ] LRESULT CALLBACK Twiny::WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){ static bool activate = FALSE; switch ( message ) { case WM_MO 2 Questions : icone fenetre & Taille... [ par clabe ] Bonjour, Je voudrais savoir comment je pourrais tout d'abord changer l'icone dans la barre de titre de ma fenetre... Ensuite j'aurais aimé savoir comm api window [ par ropars ] Bonjour<br Poblème avec un pointeur... [ par xxDarkSidexx ] Bonsoir,J'essaye tant bien que mal de mettre en place une ListView...Le seul problème est malheureusement cette ligne de code...je n'arrive pas a savo interface en c [ par Med2009 ] salut je suis Mohamed un petit développeur en c et qui désire etre le plus grand développeur dans le monde... Besoin d'aide openGL [ par suifer34 ] Bonjour, En cours d'opengl je dois créer un échiquier et mettre pour l'instant seulement des pions dessus. J'aimerais savoir comment faire pour qu'un Problème graphique avec C [ par le1scorpion1noir ] salut a tous je peux savoir c'est quoi le meilleur logiciel pour programmer en C puis y t il une différence entre le C et le C++ ? je débute et j ess Problème avec fichier manifest [ par Sceyllia ] Bonjour à tous, J'aurais besoin de l'avis de connaisseurs en c/c++ pour m'éclairer sur le soucis que j'ai depuis quelques semaines concernant ce morc


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,359 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales