Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import appuifw as A
- import glcanvas
- from gles import *
- class BelajarGL:
- vert=array(GL_BYTE,3,(
- [0,0,-1], [1,1,1], [-1,1,1],
- [0,0,-1], [1,-1,1], [-1,-1,1]
- ))
- colors=array(GL_FLOAT,4,(
- [1.,0.,0.,0.], # merah
- [0.,1.,0.,0.], # hijau
- [1.,1.,0.,0], # kuning
- [0.,0.,1.,0.], # hijau
- [1.,0.,1.,0], # violet
- [0.,0.,1.,0.] # biru
- ))
- tri=array(GL_UNSIGNED_BYTE, 3, (
- [0,1,2], # depan
- [0,4,5], # belakang
- [0,2,5], # kiri
- [0,4,1], # kanan
- [1,2,5], # bawah
- [5,4,1] # bawah
- ))
- def __init__(self):
- self.run=1
- A.app.screen = 'full'
- self.canvas = glcanvas.GLCanvas(redraw_callback=self.redraw)
- A.app.body=self.canvas
- A.app.exit_key_handler = self.stop
- self.initgl()
- while self.run:
- self.canvas.drawNow()
- A.e32.ao_sleep(1e-04)
- def stop(self):
- self.run=0
- del(self.canvas)
- def initgl(self):
- glViewport(0, 0, self.canvas.size[0], self.canvas.size[1])
- glClearColor(0.,0.,0.,0.)
- glClearDepthf(1.0)
- glDepthFunc(GL_LESS)
- glEnable(GL_DEPTH_TEST)
- glShadeModel(GL_SMOOTH)
- glMatrixMode(GL_PROJECTION)
- #glLoadIdentity()
- glFrustumf(-1.0, 1.0, -1.0, 1.0, 3.0, 100.0)
- glMatrixMode(GL_MODELVIEW)
- glEnableClientState(GL_VERTEX_ARRAY)
- glVertexPointerb(self.vert)
- glEnableClientState(GL_COLOR_ARRAY)
- glColorPointerf(self.colors)
- def redraw(self,frame):
- self.iFrame=frame
- glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
- # depan
- glLoadIdentity()
- glScalef(1.,1.,.3)
- glTranslatef(0.,0.,-20.)
- glRotatef(100,1.,0.,0.)
- glRotatef(self.iFrame<<1,0.,0.,1.)
- glDrawElementsub(GL_TRIANGLES, self.tri)
- # kanan atas belakang
- glLoadIdentity()
- glScalef(1.,1.,.5)
- glTranslatef(1.5,1.,-20.)
- glRotatef(100,0.,0.,0.)
- glRotatef(self.iFrame<<1,1.,0.,0.)
- glDrawElementsub(GL_TRIANGLES, self.tri)
- # kiri atas belakang
- glLoadIdentity()
- glScalef(1.,1.,.5)
- glTranslatef(-1.5,1.,-20.)
- glRotatef(100,0.,0.,0.)
- glRotatef(self.iFrame<<1,0.,1.,0.)
- glDrawElementsub(GL_TRIANGLES, self.tri)
- d=BelajarGL()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement