Advertisement
phjoe

GL 3Piramid

Jan 11th, 2015
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import appuifw as A
  2. import glcanvas
  3. from gles import *
  4.  
  5. class BelajarGL:
  6.  vert=array(GL_BYTE,3,(
  7.     [0,0,-1], [1,1,1], [-1,1,1],
  8.     [0,0,-1], [1,-1,1], [-1,-1,1]
  9.    ))
  10.  colors=array(GL_FLOAT,4,(
  11.   [1.,0.,0.,0.], # merah
  12.   [0.,1.,0.,0.], # hijau
  13.   [1.,1.,0.,0], # kuning
  14.   [0.,0.,1.,0.], # hijau
  15.   [1.,0.,1.,0], # violet
  16.   [0.,0.,1.,0.] # biru
  17.   ))
  18.  tri=array(GL_UNSIGNED_BYTE, 3, (
  19.  [0,1,2], # depan
  20.  [0,4,5], # belakang
  21.  [0,2,5], # kiri
  22.  [0,4,1], # kanan
  23.  [1,2,5], # bawah
  24.  [5,4,1] # bawah
  25.  ))
  26.  
  27.  def __init__(self):
  28.   self.run=1
  29.   A.app.screen = 'full'
  30.   self.canvas = glcanvas.GLCanvas(redraw_callback=self.redraw)
  31.   A.app.body=self.canvas
  32.   A.app.exit_key_handler = self.stop
  33.   self.initgl()
  34.   while self.run:
  35.    self.canvas.drawNow()
  36.    A.e32.ao_sleep(1e-04)
  37.  
  38.  def stop(self):
  39.   self.run=0
  40.   del(self.canvas)
  41.  
  42.  def initgl(self):
  43.   glViewport(0, 0, self.canvas.size[0], self.canvas.size[1])
  44.   glClearColor(0.,0.,0.,0.)
  45.   glClearDepthf(1.0)
  46.   glDepthFunc(GL_LESS)
  47.   glEnable(GL_DEPTH_TEST)
  48.   glShadeModel(GL_SMOOTH)
  49.   glMatrixMode(GL_PROJECTION)
  50.   #glLoadIdentity()
  51.   glFrustumf(-1.0, 1.0, -1.0, 1.0, 3.0, 100.0)
  52.   glMatrixMode(GL_MODELVIEW)
  53.   glEnableClientState(GL_VERTEX_ARRAY)
  54.   glVertexPointerb(self.vert)
  55.   glEnableClientState(GL_COLOR_ARRAY)
  56.   glColorPointerf(self.colors)
  57.  
  58.  def redraw(self,frame):
  59.   self.iFrame=frame
  60.   glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
  61.  
  62.   # depan
  63.   glLoadIdentity()
  64.   glScalef(1.,1.,.3)
  65.   glTranslatef(0.,0.,-20.)
  66.   glRotatef(100,1.,0.,0.)
  67.   glRotatef(self.iFrame<<1,0.,0.,1.)
  68.   glDrawElementsub(GL_TRIANGLES, self.tri)
  69.  
  70.   # kanan atas belakang
  71.   glLoadIdentity()
  72.   glScalef(1.,1.,.5)
  73.   glTranslatef(1.5,1.,-20.)
  74.   glRotatef(100,0.,0.,0.)
  75.   glRotatef(self.iFrame<<1,1.,0.,0.)
  76.   glDrawElementsub(GL_TRIANGLES, self.tri)
  77.  
  78.   # kiri atas belakang
  79.   glLoadIdentity()
  80.   glScalef(1.,1.,.5)
  81.   glTranslatef(-1.5,1.,-20.)
  82.   glRotatef(100,0.,0.,0.)
  83.   glRotatef(self.iFrame<<1,0.,1.,0.)
  84.   glDrawElementsub(GL_TRIANGLES, self.tri)
  85.  
  86. d=BelajarGL()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement