Mittlerweile habe ich mich durch haufenweise Tutorials durchgearbeitet und dabei immer wieder das Beispiel im examples-Ordner verändert...
Jetzt habe ich versucht mir mein "eigenes" Programm zu schreiben (natürlich immer noch mit reichlicher Hilfe durch Tutorials), allerdings öffnet sich nur das graue Fenster, das Dreieck wird nicht gezeichnet...
Wäre schön, wenn mir jemand weiterhelfen könnte.
Hier der Code:
Code: Alles auswählen
IncludeFile "OpenGL.pbi" ;;; OpenGL wird eingebunden
;;;;;;;;;;;;;;;;;;;;;;;;
;;; Vorbereitungen
;;;;;;;;;;;;;;;;;;;;;;;;
pfd.PIXELFORMATDESCRIPTOR ;;; Das Pixelformat wird definiert
Width = 800 ;;; Breite des Fensters
Height = 600 ;;; Höhe des Fensters
hWnd = OpenWindow(0, 10, 10, Width, Height, "First OpenGL Test") ;;; Fenster wird geöffnet
hdc = GetDC_(hWnd)
pfd\nSize = SizeOf(PIXELFORMATDESCRIPTOR) ;;; Größe des Pixelformats
pfd\nVersion = 1 ;;; Version des Pixelformats
pfd\dwFlags = #PFD_SUPPORT_OPENGL | #PFD_DOUBLEBUFFER | #PFD_DRAW_TO_WINDOW ;;; Ünterstützung für OpenGL | Doppelbuffer (SwapBuffers) | Windows
pfd\iPixelType = #PFD_TYPE_RGBA ;;; Farbmodus RGB-A
pfd\cColorBits = 16 ;;; Farbtiefe
pfd\cDepthBits = 16 ;;; 16-Bit Tiefenbuffer
pfd\cStencilBits =0 ;;; Kein Stencil-Buffer
pfd\cAuxBuffers =0 ;;; Kein Auxiliary-Buffer
pfd\iLayerType = #PFD_MAIN_PLANE ;;; Haupt-Renderplane
pixformat = ChoosePixelFormat_(hdc, pfd) ;;; Pixelformat nach obigen Angaben auswählen
hrc = wglCreateContext_(hdc) ;;; Renderkontext wird erstellt
glViewport_ (0, 0, Width, Height) ;;; Viewport auf eine Ausgangsposition setzen
glMatrixMode_ (#GL_PROJECTION) ;;; Den Matrix-Modus Projection wählen
glLoadIdentity_ () ;;; Diesen Modus auf Anfangswerte setzen
gluPerspective_ (45.0, Width/Height, 0.1, 100.0) ;;; Grundeinstellungen des Anezeigefensters festlegen
glMatrixMode_ (#GL_MODELVIEW) ;;; Auf den Matrix-Modus Modelview schalten
glLoadIdentity_ () ;;; Auch diesen auf Anfangswerte setzen
glClearColor_ (0.5, 0.5, 0.50, 0.0) ;;; Setze Farbe für löschen auf Mittelgrau
glClearDepth_ (1.0) ;;; Depth-Buffer Löschen erlauben
glEnable_ (#GL_DEPTH_TEST) ;;; Tiefentest GL_DEPTH_TEST einschalten
glClear_ (#GL_COLOR_BUFFER_BIT | #GL_DEPTH_BUFFER_BIT) ;;; Tiefen- und Farbpufferbits löschen
;;;;;;;;;;;;;;;;;;;;;;;;
;;; Hauptprogramm
;;;;;;;;;;;;;;;;;;;;;;;;
While Quit = 0
Repeat
EventID = WindowEvent()
Select EventID
Case #PB_Event_CloseWindow
Quit = 1
EndSelect
Until EventID = 0
glBegin_ (GL_TRIANGLES)
glColor3f_ (1, 0, 0)
glVertex3f_ ( 0, 1, -2)
glColor3f_ (0, 1, 0)
glVertex3f_ (-1,-1, -2)
glColor3f_ (0, 0, 1)
glVertex3f_ ( 1,-1, -2)
glEnd_()
SwapBuffers_(hdc)
Wend
End