Files
@ 7d3a0f9107a8
Branch filter:
Location: light9/lightsim/openglsim.py - annotation
7d3a0f9107a8
2.2 KiB
text/x-python
try to resolve version conflict problems
45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 | # see http://www.sgi.com/software/opengl/advanced97/notes/node57.html for accum notes
import sys
from Image import *
from OpenGL.GL import *
from OpenGL.Tk import *
class Surface:
def Display(self, event=None):
glClearColor(0.0, 0.0, 0.0, 0)
glClear( GL_COLOR_BUFFER_BIT |GL_ACCUM_BUFFER_BIT)
l=glGenLists(1)
glNewList(l,GL_COMPILE)
glEndList()
# glDrawBuffer(GL_BACK)
for x in range(1,2):
mag = self.scales[x].get()
print "pic %i at %f" % (x,mag)
glClear(GL_COLOR_BUFFER_BIT)
glDrawPixels(self.imageWidth, self.imageHeight, GL_RGB, GL_UNSIGNED_BYTE, self.image[x])
if x==0:
glAccum(GL_LOAD,mag)
else:
glAccum(GL_ACCUM,mag)
# glAccum(GL_ADD,self.x)
self.x=(self.x+.1)%2.0
print "return"
glAccum(GL_RETURN,1)
def SetupWindow(self):
self.OglFrame = Frame()
self.OglFrame.pack(side = 'top',fill='both',expand=1)
self.QuitButton = Button(self.OglFrame, {'text':'Quit'})
self.QuitButton.bind('<ButtonRelease-1>', sys.exit)
self.QuitButton.pack({'side':'top'})
def SetupOpenGL(self):
self.ogl = Opengl(master=self.OglFrame, width = 270, height = 270, double = 1, depth = 0)
self.ogl.pack(side = 'top', expand = 1, fill = 'both')
self.ogl.set_centerpoint(0, 0, 0)
self.ogl.redraw = self.Display
for x in range(0,2):
self.scales[x] = Scale(self.OglFrame,label="s%i"%x,from_=0,to=1,res=.05,orient='horiz',command=self.ogl.tkRedraw)
self.scales[x].pack()
def __init__(self):
self.x=0
self.scales=[None,None]
self.SetupWindow()
self.image=[]
for filename in ('pic1.ppm','pic2.ppm'):
im = open(filename)
self.imageWidth = im.size[0]
self.imageHeight = im.size[1]
self.image.append(im.tostring("raw", "RGB", 0, -1))
print self.imageWidth, self.imageHeight, self.imageWidth * self.imageHeight*4, len(self.image)
self.SetupOpenGL()
glDisable(GL_CULL_FACE)
# glEnable(GL_DEPTH_TEST)
# glEnable(GL_NORMALIZE)
glShadeModel(GL_FLAT)
self.ogl.tkRedraw()
self.ogl.mainloop()
if __name__ == '__main__':
Surface()
demo = Surface
|