annotate lightsim/openglsim.py @ 62:2f2eb802e93d

stage shows levels now. aims have blue halo for easy recognition. stage shows levels now. aims have blue halo for easy recognition. old dummy config stored
author dmcc
date Tue, 09 Jul 2002 08:35:27 +0000
parents 45b12307c695
children f866d4dec57b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 # see http://www.sgi.com/software/opengl/advanced97/notes/node57.html for accum notes
45b12307c695 Initial revision
drewp
parents:
diff changeset
2
45b12307c695 Initial revision
drewp
parents:
diff changeset
3 import sys
45b12307c695 Initial revision
drewp
parents:
diff changeset
4 from Image import *
45b12307c695 Initial revision
drewp
parents:
diff changeset
5 from OpenGL.GL import *
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 from OpenGL.Tk import *
45b12307c695 Initial revision
drewp
parents:
diff changeset
7
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 class Surface:
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 def Display(self, event=None):
45b12307c695 Initial revision
drewp
parents:
diff changeset
10
45b12307c695 Initial revision
drewp
parents:
diff changeset
11 glClearColor(0.0, 0.0, 0.0, 0)
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 glClear( GL_COLOR_BUFFER_BIT |GL_ACCUM_BUFFER_BIT)
45b12307c695 Initial revision
drewp
parents:
diff changeset
13
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 l=glGenLists(1)
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 glNewList(l,GL_COMPILE)
45b12307c695 Initial revision
drewp
parents:
diff changeset
16 glEndList()
45b12307c695 Initial revision
drewp
parents:
diff changeset
17
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 # glDrawBuffer(GL_BACK)
45b12307c695 Initial revision
drewp
parents:
diff changeset
19
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 for x in range(1,2):
45b12307c695 Initial revision
drewp
parents:
diff changeset
21
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 mag = self.scales[x].get()
45b12307c695 Initial revision
drewp
parents:
diff changeset
23 print "pic %i at %f" % (x,mag)
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 glClear(GL_COLOR_BUFFER_BIT)
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 glDrawPixels(self.imageWidth, self.imageHeight, GL_RGB, GL_UNSIGNED_BYTE, self.image[x])
45b12307c695 Initial revision
drewp
parents:
diff changeset
26
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 if x==0:
45b12307c695 Initial revision
drewp
parents:
diff changeset
28 glAccum(GL_LOAD,mag)
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 glAccum(GL_ACCUM,mag)
45b12307c695 Initial revision
drewp
parents:
diff changeset
31
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 # glAccum(GL_ADD,self.x)
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 self.x=(self.x+.1)%2.0
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 print "return"
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 glAccum(GL_RETURN,1)
45b12307c695 Initial revision
drewp
parents:
diff changeset
36
45b12307c695 Initial revision
drewp
parents:
diff changeset
37 def SetupWindow(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 self.OglFrame = Frame()
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 self.OglFrame.pack(side = 'top',fill='both',expand=1)
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 self.QuitButton = Button(self.OglFrame, {'text':'Quit'})
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 self.QuitButton.bind('<ButtonRelease-1>', sys.exit)
45b12307c695 Initial revision
drewp
parents:
diff changeset
42 self.QuitButton.pack({'side':'top'})
45b12307c695 Initial revision
drewp
parents:
diff changeset
43
45b12307c695 Initial revision
drewp
parents:
diff changeset
44
45b12307c695 Initial revision
drewp
parents:
diff changeset
45 def SetupOpenGL(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 self.ogl = Opengl(master=self.OglFrame, width = 270, height = 270, double = 1, depth = 0)
45b12307c695 Initial revision
drewp
parents:
diff changeset
47 self.ogl.pack(side = 'top', expand = 1, fill = 'both')
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 self.ogl.set_centerpoint(0, 0, 0)
45b12307c695 Initial revision
drewp
parents:
diff changeset
49 self.ogl.redraw = self.Display
45b12307c695 Initial revision
drewp
parents:
diff changeset
50
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 for x in range(0,2):
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 self.scales[x] = Scale(self.OglFrame,label="s%i"%x,from_=0,to=1,res=.05,orient='horiz',command=self.ogl.tkRedraw)
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 self.scales[x].pack()
45b12307c695 Initial revision
drewp
parents:
diff changeset
54
45b12307c695 Initial revision
drewp
parents:
diff changeset
55
45b12307c695 Initial revision
drewp
parents:
diff changeset
56 def __init__(self):
45b12307c695 Initial revision
drewp
parents:
diff changeset
57 self.x=0
45b12307c695 Initial revision
drewp
parents:
diff changeset
58 self.scales=[None,None]
45b12307c695 Initial revision
drewp
parents:
diff changeset
59
45b12307c695 Initial revision
drewp
parents:
diff changeset
60 self.SetupWindow()
45b12307c695 Initial revision
drewp
parents:
diff changeset
61
45b12307c695 Initial revision
drewp
parents:
diff changeset
62 self.image=[]
45b12307c695 Initial revision
drewp
parents:
diff changeset
63 for filename in ('pic1.ppm','pic2.ppm'):
45b12307c695 Initial revision
drewp
parents:
diff changeset
64 im = open(filename)
45b12307c695 Initial revision
drewp
parents:
diff changeset
65 self.imageWidth = im.size[0]
45b12307c695 Initial revision
drewp
parents:
diff changeset
66 self.imageHeight = im.size[1]
45b12307c695 Initial revision
drewp
parents:
diff changeset
67 self.image.append(im.tostring("raw", "RGB", 0, -1))
45b12307c695 Initial revision
drewp
parents:
diff changeset
68 print self.imageWidth, self.imageHeight, self.imageWidth * self.imageHeight*4, len(self.image)
45b12307c695 Initial revision
drewp
parents:
diff changeset
69
45b12307c695 Initial revision
drewp
parents:
diff changeset
70 self.SetupOpenGL()
45b12307c695 Initial revision
drewp
parents:
diff changeset
71
45b12307c695 Initial revision
drewp
parents:
diff changeset
72 glDisable(GL_CULL_FACE)
45b12307c695 Initial revision
drewp
parents:
diff changeset
73 # glEnable(GL_DEPTH_TEST)
45b12307c695 Initial revision
drewp
parents:
diff changeset
74 # glEnable(GL_NORMALIZE)
45b12307c695 Initial revision
drewp
parents:
diff changeset
75 glShadeModel(GL_FLAT)
45b12307c695 Initial revision
drewp
parents:
diff changeset
76
45b12307c695 Initial revision
drewp
parents:
diff changeset
77 self.ogl.tkRedraw()
45b12307c695 Initial revision
drewp
parents:
diff changeset
78 self.ogl.mainloop()
45b12307c695 Initial revision
drewp
parents:
diff changeset
79
45b12307c695 Initial revision
drewp
parents:
diff changeset
80 if __name__ == '__main__':
45b12307c695 Initial revision
drewp
parents:
diff changeset
81 Surface()
45b12307c695 Initial revision
drewp
parents:
diff changeset
82
45b12307c695 Initial revision
drewp
parents:
diff changeset
83 demo = Surface