Ich habe ein Programm geschrieben, dass ein Bild erzeugt. Da Dieser Prozess einige Zeit dauert möchte ich den Entstehungsprozess darstellen. Die Pixel Daten des Bildes werden in ein 1D Array geschrieben der Länge (Breite * Höhe * 3) (3: für rgb). Am ende des Prozesses speichere ich Dieses Array als PPM Datei.
Ich Möchte jetzt alle paar Sekunden diesen Array mit OpenGL darstellen (bzw rendern). Ich hab auch schon ne Menge darüber gelesen und mit "glDrawPixels" experimentiert - bis jetzt aber ohne Erfolg.
Folgendes Script ist mein Test. Kann mir jemand helfen dieses zum laufen zu bekommen?
Code: Alles auswählen
from OpenGL.GLUT import *
import array
breit, hoch = 100,100
#erzeuge Array
a = array.array("B", [0] * (breit * hoch * 3))
#Array mit ein Farbe versehen
for i in range(len(a)):
a[i] = i % 255
def main():
global a
glLoadIdentity();
glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
glDrawPixels(breit, hoch, GL_RGB, GL_INT, a)
glutSwapBuffers()
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_ALPHA | GLUT_DEPTH)
glutInitWindowSize(breit ,hoch)
glutInitWindowPosition(0, 0)
window = glutCreateWindow("Test")
glutDisplayFunc(main)
glutIdleFunc(main)
glutMainLoop()