Polygones diverses sans glut[dev c++...]

Soyez le premier à donner votre avis sur cette source.

Vue 7 057 fois - Téléchargée 216 fois

Description

Différents exemples de plygones en gl/glu

Source / Exemple :


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

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

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

    gluLookAt (0,0,-10,0,0,0,0,1,0);

    glBegin (GL_POLYGON);
            glColor3d (0,0,1);
            glVertex2i (-5,-2);
            glVertex2i (-5,0);
            glVertex2i (-4,1);
            glVertex2i (-3,0);
            glVertex2i (-3,-2);
            glVertex2i (-4,-3);
    glEnd ();

    glBegin (GL_QUADS);
            glColor3d (1,1,0);
            glVertex2i (2,2);
            glVertex2i (2,4);
            glVertex2i (4,4);
            glVertex2i (4,2);
    glEnd ();

    glBegin (GL_TRIANGLES);
            glColor3d (0,1,0);
            glVertex2i (3,-4);
            glVertex2i (1,-2);
            glVertex2i (1,-4);
    glEnd ();

    glBegin (GL_LINES);
            glColor3d (1,0,1);
            glVertex2i (1,1);
            glVertex2i (-1,-1);
    glEnd ();

	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)
{
	switch (uMsg)
	{
	case WM_CREATE:
		DC=GetDC (hwnd);
        InitPixelFormat (DC);
        RC = wglCreateContext (DC);
        wglMakeCurrent (DC, RC);
		break;
	case WM_CLOSE:
        wglMakeCurrent (NULL, NULL);
        wglDeleteContext (RC);
        ReleaseDC (hwnd,DC);
		PostQuitMessage (0);
		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;
	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;
}

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

albert0
Messages postés
249
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
9 août 2008

LoL ce truc n'est meme pas de TOI
BenjaminRare
Messages postés
7
Date d'inscription
lundi 14 janvier 2002
Statut
Membre
Dernière intervention
19 mai 2003

Il faut que tu ailles dans Projects->Settings->Links and ajoute les bibliotheques suivantes: glu32.lib, glut32.lib et opengl32.lib

ca devrait marcher ....
nycos62
Messages postés
11
Date d'inscription
vendredi 7 mars 2003
Statut
Membre
Dernière intervention
30 juillet 2007

j'ai l'impression qu'il me maque les bibliothèques gl pour compiler ce code, voici la liste des erreurs quand je le compile:
--------------------Configuration: nono - Win32 Debug--------------------
Linking...
main.obj : error LNK2001: unresolved external symbol __imp__glEnd@0
main.obj : error LNK2001: unresolved external symbol __imp__glVertex2i@8
main.obj : error LNK2001: unresolved external symbol __imp__glColor3d@24
main.obj : error LNK2001: unresolved external symbol __imp__glBegin@4
main.obj : error LNK2001: unresolved external symbol _gluLookAt@72
main.obj : error LNK2001: unresolved external symbol __imp__glLoadIdentity@0
main.obj : error LNK2001: unresolved external symbol __imp__glMatrixMode@4
main.obj : error LNK2001: unresolved external symbol __imp__glClear@4
main.obj : error LNK2001: unresolved external symbol _gluPerspective@32
main.obj : error LNK2001: unresolved external symbol __imp__glViewport@16
main.obj : error LNK2001: unresolved external symbol __imp__wglDeleteContext@4
main.obj : error LNK2001: unresolved external symbol __imp__wglMakeCurrent@8
main.obj : error LNK2001: unresolved external symbol __imp__wglCreateContext@4
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/nono.exe : fatal error LNK1120: 14 unresolved externals
Error executing link.exe.

nono.exe - 15 error(s), 0 warning(s)

que faudrait-il faire pour qu'il fonctionnne ?

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.