fb:porticula NoPaste
OpenGL + Threads
Uploader: | schildron |
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