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
