Leider bleibt der Bildschirm schwarz, die Vertex-Positionen passen aber (direkt gezeichnet klappt es); d.h. irgendwo fehlt etwas bei meinem Umgang mit dem VBO. Was habe ich übersehen?
Code: Alles auswählen
from OpenGL.GL import *
from OpenGL.GLU import *
from ctypes import *
import pygame, array
from pygame.locals import *
def main():
pygame.init()
pygame.display.set_mode((800, 600), DOUBLEBUF|OPENGL)
glMatrixMode(GL_PROJECTION)
glLoadIdentity()
glOrtho(0, 800, 0, 600, -1, 1)
glMatrixMode(GL_MODELVIEW)
# create VBO
vbo = GLuint(0)
glEnableVertexAttribArray(1);
glGenBuffers(1, vbo)
# setup VBO-data
vertices = array.array('f', [
0, 0,
100, 0,
100, 100,
0, 100
])
glBindBuffer(GL_ARRAY_BUFFER, vbo)
glBufferData(GL_ARRAY_BUFFER, vertices.tostring(), GL_STATIC_DRAW)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
# draw using VBO
glDrawArrays(GL_QUADS, 0, 8);
# works when drawn directly
"""
glBegin(GL_QUADS)
glVertex2f(0, 0)
glVertex2f(100, 0)
glVertex2f(100, 100)
glVertex2f(0, 100)
glEnd()
"""
pygame.display.flip()
pygame.time.wait(10)
if __name__ == '__main__':
main()
LG Glocke