Voila mon script:
- include < windows.h>
- include < gl/gl.h>
- include < gl/glu.h>
- include < gl/glaux.h>
WNDCLASS wc;
MSG msg;
HWND hWnd;
HDC DC;
HGLRC RC;
unsigned texture[1];
int z;
void LoadTexture()
{
AUX_RGBImageRec *texture1;
texture1 = auxDIBImageLoad("machin.bmp");
glGenTextures ( 1, &[0]);
glBindTexture ( GL_TEXTURE_2D, texture[0]);
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,GL_LINEAR);
glTexParameteri ( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,GL_NEAREST);
glTexImage2D(GL_TEXTURE_2D, 0, 3, texture1->sizeX, texture1->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, texture1->data);
};
void RePaint ( )
{
z = -10;
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode ( GL_MODELVIEW);
glLoadIdentity ( );
glEnable ( GL_TEXTURE_2D);
gluLookAt(0,0,z,0,0,z+10,0,1,0);
glBegin(GL_QUADS);
glTexCoord2i(1,0);glVertex2i(-1,-1);
glTexCoord2i(1,1);glVertex2i(-1,1);
glTexCoord2i(0,1);glVertex2i(1,1);
glTexCoord2i(0,0);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, &), &);
}
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);
glEnable ( GL_DEPTH_TEST);
glClearColor ( 0,0,1,0);
glEnable(GL_TEXTURE_2D);
LoadTexture();
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;
case WM_KEYDOWN:
switch ( wParam) {
case VK_DOWN:
z--;
break;
case VK_UP:
z++;
break;
default:
break;
}
break;
case WM_LBUTTONDOWN:
z--;
break;
case WM_RBUTTONDOWN:
z++;
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(&);
hWnd = CreateWindow
("OGL", " Fenetre OpenGL",
WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE,
0, 0, 640, 480, NULL, NULL, hInstance, NULL
);
while ( GetMessage(&, NULL, 0, 0)) {
TranslateMessage(&);
DispatchMessage(&);
}
return 0;
}
La compilation est correcte mais dev C/C++ me met :"Failed to open DIB file machin.bmp"
Merci de m´aider