opengl geht nicht
-
http://home.arcor.de/myukew/opengl.zip (8kb)
http://home.arcor.de/myukew/freeglut.zip (62kb)debugger? hab keine ahnung wie der funktioniert...
für die ohne dev-cpp:
#include <freeglut.h> #include <stdlib.h> static int slices = 16; static int stacks = 16; /* GLUT callback Handlers */ static void resize(int width, int height) { const float ar = (float) width / (float) height; glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glFrustum(-ar, ar, -1.0, 1.0, 2.0, 100.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity() ; } static void display(void) { const double t = glutGet(GLUT_ELAPSED_TIME) / 1000.0; const double a = t*90.0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor3d(1,0,0); glPushMatrix(); glTranslated(-2.4,1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutSolidSphere(1,slices,stacks); glPopMatrix(); glPushMatrix(); glTranslated(0,1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutSolidCone(1,1,slices,stacks); glPopMatrix(); glPushMatrix(); glTranslated(2.4,1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutSolidTorus(0.2,0.8,slices,stacks); glPopMatrix(); glPushMatrix(); glTranslated(-2.4,-1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutWireSphere(1,slices,stacks); glPopMatrix(); glPushMatrix(); glTranslated(0,-1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutWireCone(1,1,slices,stacks); glPopMatrix(); glPushMatrix(); glTranslated(2.4,-1.2,-6); glRotated(60,1,0,0); glRotated(a,0,0,1); glutWireTorus(0.2,0.8,slices,stacks); glPopMatrix(); glutSwapBuffers(); } static void key(unsigned char key, int x, int y) { switch (key) { case 27 : case 'q': exit(0); break; case '+': slices++; stacks++; break; case '-': if (slices>3 && stacks>3) { slices--; stacks--; } break; } glutPostRedisplay(); } static void idle(void) { glutPostRedisplay(); } const GLfloat light_ambient[] = { 0.0f, 0.0f, 0.0f, 1.0f }; const GLfloat light_diffuse[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat light_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat light_position[] = { 2.0f, 5.0f, 5.0f, 0.0f }; const GLfloat mat_ambient[] = { 0.7f, 0.7f, 0.7f, 1.0f }; const GLfloat mat_diffuse[] = { 0.8f, 0.8f, 0.8f, 1.0f }; const GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; const GLfloat high_shininess[] = { 100.0f }; /* Program entry point */ int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitWindowSize(640,480); glutInitWindowPosition(10,10); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutCreateWindow("FreeGLUT Shapes"); glutReshapeFunc(resize); glutDisplayFunc(display); glutKeyboardFunc(key); glutIdleFunc(idle); glClearColor(1,1,1,1); glEnable(GL_CULL_FACE); glCullFace(GL_BACK); glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); glEnable(GL_LIGHT0); glEnable(GL_NORMALIZE); glEnable(GL_COLOR_MATERIAL); glEnable(GL_LIGHTING); glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); glLightfv(GL_LIGHT0, GL_POSITION, light_position); glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialfv(GL_FRONT, GL_SHININESS, high_shininess); glutMainLoop(); return EXIT_SUCCESS; }
#include <windows.h> #include <gl/gl.h> /************************** * Function Declarations * **************************/ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC); void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC); /************************** * WinMain * **************************/ int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { WNDCLASS wc; HWND hWnd; HDC hDC; HGLRC hRC; MSG msg; BOOL bQuit = FALSE; float theta = 0.0f; /* register window class */ wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; 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 (BLACK_BRUSH); wc.lpszMenuName = NULL; wc.lpszClassName = "GLSample"; RegisterClass (&wc); /* create main window */ hWnd = CreateWindow ( "GLSample", "OpenGL Sample", WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, 0, 0, 256, 256, NULL, NULL, hInstance, NULL); /* enable OpenGL for the window */ EnableOpenGL (hWnd, &hDC, &hRC); /* program main loop */ while (!bQuit) { /* check for messages */ if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE)) { /* handle or dispatch messages */ if (msg.message == WM_QUIT) { bQuit = TRUE; } else { TranslateMessage (&msg); DispatchMessage (&msg); } } else { /* OpenGL animation code goes here */ glClearColor (0.0f, 0.0f, 0.0f, 0.0f); glClear (GL_COLOR_BUFFER_BIT); glPushMatrix (); glRotatef (theta, 0.0f, 0.0f, 1.0f); glBegin (GL_TRIANGLES); glColor3f (1.0f, 0.0f, 0.0f); glVertex2f (0.0f, 1.0f); glColor3f (0.0f, 1.0f, 0.0f); glVertex2f (0.87f, -0.5f); glColor3f (0.0f, 0.0f, 1.0f); glVertex2f (-0.87f, -0.5f); glEnd (); glPopMatrix (); SwapBuffers (hDC); theta += 1.0f; Sleep (1); } } /* shutdown OpenGL */ DisableOpenGL (hWnd, hDC, hRC); /* destroy the window explicitly */ DestroyWindow (hWnd); return msg.wParam; } /******************** * Window Procedure * ********************/ LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage (0); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch (wParam) { case VK_ESCAPE: PostQuitMessage(0); return 0; } return 0; default: return DefWindowProc (hWnd, message, wParam, lParam); } } /******************* * Enable OpenGL * *******************/ void EnableOpenGL (HWND hWnd, HDC *hDC, HGLRC *hRC) { PIXELFORMATDESCRIPTOR pfd; int iFormat; /* get the device context (DC) */ *hDC = GetDC (hWnd); /* set the pixel format for the DC */ ZeroMemory (&pfd, sizeof (pfd)); pfd.nSize = sizeof (pfd); pfd.nVersion = 1; pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; pfd.iPixelType = PFD_TYPE_RGBA; pfd.cColorBits = 24; pfd.cDepthBits = 16; pfd.iLayerType = PFD_MAIN_PLANE; iFormat = ChoosePixelFormat (*hDC, &pfd); SetPixelFormat (*hDC, iFormat, &pfd); /* create and enable the render context (RC) */ *hRC = wglCreateContext( *hDC ); wglMakeCurrent( *hDC, *hRC ); } /****************** * Disable OpenGL * ******************/ void DisableOpenGL (HWND hWnd, HDC hDC, HGLRC hRC) { wglMakeCurrent (NULL, NULL); wglDeleteContext (hRC); ReleaseDC (hWnd, hDC); }
-
muhkuhmasta schrieb:
debugger? hab keine ahnung wie der funktioniert...
Na da finds mal raus, du Drops.
Bye, TGGC (Ein Jahr Helden)
-
Also bei mir funktioniert dass erste Projekt,
wird wohl an deinem Rechner liegenDas zweite auch
-
Also bei mir klappt OpenGL nicht, wenn ich neue Windows NVidia Treiber benutze. Meine Grafikkarte ist etwas älter. Vielleicht probierts du mal verschiedene Treiber versionen aus.
-
Oder verschiedene Gehirn-Versionen? Mit Autocogito und so....
Bye, TGGC (Ein Jahr Helden)
-
TGGC schrieb:
Oder verschiedene Gehirn-Versionen? Mit Autocogito und so....
cogitare = Lat. glauben, meinen --> Hä, was willst du sagen?
-
ProgChild schrieb:
TGGC schrieb:
Oder verschiedene Gehirn-Versionen? Mit Autocogito und so....
cogitare = Lat. glauben, meinen --> Hä, was willst du sagen?
und auch denken
-
Die Standard-DevCPP Templates sollten eigentlich überall funzen.
Ich tippe auf eine schrottige OpenGL32.dll.
Hast Du MS "Treiber" drauf?
-
ich bin mir ziemlich sicher dass ich nicht die standard windows treiber für meine riva tnt 2 hab, sondern irgendwelche aktuelleren
-
ein update auf die neuste version des graphikkartentreibers hat das problem beseitigt.