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