from pyglet import window
from pyglet.gl import *
import pyglet
from pyglet.window import key

import random as rd
import ctypes
from numpy import *


class VertexArrayTest(pyglet.window.Window):

    def __init__(self):
        super(VertexArrayTest,self).__init__(800,600)
        self.glInit()
        self.setupVA()

    def glInit(self):
        glClearColor(0, 0, 0, 0)
        glMatrixMode(GL_PROJECTION)
        glLoadIdentity()
        glOrtho(0.0, 800.0, 0.0, 600.0,  0.0, 20.0)
        glMatrixMode(GL_MODELVIEW)

        glEnable(GL_DEPTH_TEST)
        #glEnable(GL_VERTEX_ARRAY)

        glLoadIdentity()



    def setupVA(self):
        self.vertarray = array([ [10+10*i,10+10*i, 10+10*i,20+10*i, 20+10*i,20+10*i, 20+10*i,10+10*i]
                                 for i in range(50)
                               ],
                               dtype=float64)
        self.vertarray=self.vertarray.reshape(50*4,2)
        print self.vertarray
        print self.vertarray.dtype


    def on_draw(self):
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)

        glLoadIdentity()

        glEnableClientState(GL_VERTEX_ARRAY)
        #glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT)
        self.cverts = ascontiguousarray(self.vertarray)
        glColor4f(1,0,1,1)


        glVertexPointer(2,GL_DOUBLE,
                        0,self.cverts.ctypes.data_as(ctypes.POINTER(ctypes.c_double)))

        glDrawArrays(GL_QUADS,0,4*50)
        #glPopClientAttrib()

vat=VertexArrayTest()
pyglet.app.run()
