Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

OpenGL + Threads

Uploader:Mitgliedschildron
Datum/Zeit:18.09.2012 19:03:25

'-------------------------
'DIMs
'-------------------------
Dim Shared As String Tastendruck

'-------------------------
'Includes
'-------------------------
#Include "fbgfx.bi"
#Include "GL/gl.bi"
#Include "GL/glu.bi"

'-------------------------
'Declarationen
'-------------------------
Declare Sub Objekt1()
Declare Sub Objekt2()

'-------------------------
'Textausgabe in Konsole
'-------------------------
Dim Shared DateiNr As Integer
DateiNr = FreeFile
Open Cons For Output As #DateiNr

'-------------------------
' das Fenster öffnen
'-------------------------
Screen 19, 16, , 2

'-------------------------
' Open-GL Init
'-------------------------
glViewport 0, 0, 800, 600                      ' den Current Viewport auf eine Ausgangsposition setzen
glMatrixMode GL_PROJECTION                     ' Den Matrix-Modus Projection wählen
glLoadIdentity                                 ' Diesen Modus auf Anfangswerte setzen
gluPerspective 45.0, 800.0/600.0, 0.1, 100.0   ' Grundeinstellungen des Anezeigefensters festlegen
glMatrixMode GL_MODELVIEW                      ' Auf den Matrix-Modus Modelview schalten
glLoadIdentity                                 ' und 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                         ' den Tiefentest GL_DEPTH_TEST einschalten
glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT  'Tiefen- und Farbpufferbits löschen
'---------------------------
'HAUPTTEIL
'---------------------------

Do Until Tastendruck = Chr(27) :'die Schleife solange immer wiederholen, bis in der Variablen Tastendruck die Esc-Taste (chr(27) steht
    '---------------------------
    'ProgrammSchleife
    '---------------------------

    glClear GL_COLOR_BUFFER_BIT Or GL_DEPTH_BUFFER_BIT


    Tastendruck = InKey   'Jeder Tastendruck wird sofort in die Variable Tastendruck gespeichert


    Dim Vertex1 As Any Ptr = ThreadCall Objekt1()
    Dim Vertex2 As Any Ptr = ThreadCall Objekt2()


    'Objekt1               '<<<<<<<<<<<<<<<<hier die neue Programmzeile rein
    'Objekt2

    ThreadWait Vertex1
    ThreadWait Vertex2


    Flip                  'liebes OpenGL, zeig alles, was in der Schleife für dich vornedran steht, auf Monitor an
    '---------------------------
    'Ende der Schleife
    '---------------------------
Loop

Close #DateiNr

End

'-------------------------
Sub Objekt1 ()
    'hier kommen die Programmzeilen zum Anzeigen
    'von dem Dreieck rein
    Print #DateiNr, "O1 aufgerufen!"
    glBegin gl_TRIANGLES
    glColor3f 1.0,1.0,0.0       :' Zeichenfarbe auf gelb
    glVertex3f  0.5, 1.0, -6.0  :' der erste Punkt
    glVertex3f -0.5, 1.0, -6.0  :' der erste Punkt
    glVertex3f  0.0, 2.0, -6.0  :' der erste Punkt
    glEnd

End Sub

Sub Objekt2 ()
    'hier kommen die Programmzeilen zum Anzeigen
    'von dem Dreieck rein
    glBegin gl_TRIANGLES
    glColor3f 1.0,1.0,0.0       :' Zeichenfarbe auf gelb
    glVertex3f  0.5, -1.0, -6.0  :' der erste Punkt
    glVertex3f -0.5, -1.0, -6.0  :' der erste Punkt
    glVertex3f  0.0, 0.0, -6.0  :' der erste Punkt
    glEnd
End Sub