diff options
Diffstat (limited to 'Demo/sgi/video/VGrabber.py')
-rwxr-xr-x | Demo/sgi/video/VGrabber.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/Demo/sgi/video/VGrabber.py b/Demo/sgi/video/VGrabber.py deleted file mode 100755 index 242ebf2..0000000 --- a/Demo/sgi/video/VGrabber.py +++ /dev/null @@ -1,80 +0,0 @@ -# Class to grab frames from a window. -# (This has fewer user-settable parameters than Displayer.) -# It is the caller's responsibility to initialize the window and to -# ensure that it is current when using grabframe() - -import gl, GL -import VFile -import GET -from VFile import Error - -class VGrabber(VFile.VideoParams): - - # XXX The constructor of VideoParams is just fine, for now - - # Grab a frame. - # Return (data, chromdata) just like getnextframe(). - - def grabframe(self): - grabber = choose_grabber(self.format) - return grabber(self.width, self.height, self.packfactor) - - -# Choose one of the grabber functions below based upon a color system name - -def choose_grabber(format): - try: - return eval('grab_' + format) - except: - raise Error, 'Unknown color system: ' + `format` - - -# Routines to grab data, per color system (only a few really supported). -# (These functions are used via eval with a constructed argument!) - -def grab_rgb(w, h, pf): - if gl.getdisplaymode() <> GET.DMRGB: - raise Error, 'Sorry, can only grab rgb in single-buf rgbmode' - if pf <> (1, 1): - raise Error, 'Sorry, only grab rgb with packfactor (1,1)' - return gl.lrectread(0, 0, w-1, h-1), None - -def grab_rgb8(w, h, pf): - if gl.getdisplaymode() <> GET.DMRGB: - raise Error, 'Sorry, can only grab rgb8 in single-buf rgbmode' - if pf <> (1, 1): - raise Error, 'Sorry, can only grab rgb8 with packfactor (1,1)' - if not VFile.is_entry_indigo(): - raise Error, 'Sorry, can only grab rgb8 on entry level Indigo' - # XXX Dirty Dirty here. - # XXX Set buffer to cmap mode, grab image and set it back. - gl.cmode() - gl.gconfig() - gl.pixmode(GL.PM_SIZE, 8) - data = gl.lrectread(0, 0, w-1, h-1) - data = data[:w*h] # BUG FIX for python lrectread - gl.RGBmode() - gl.gconfig() - gl.pixmode(GL.PM_SIZE, 32) - return data, None - -def grab_grey(w, h, pf): - raise Error, 'Sorry, grabbing grey not implemented' - -def grab_yiq(w, h, pf): - raise Error, 'Sorry, grabbing yiq not implemented' - -def grab_hls(w, h, pf): - raise Error, 'Sorry, grabbing hls not implemented' - -def grab_hsv(w, h, pf): - raise Error, 'Sorry, grabbing hsv not implemented' - -def grab_jpeg(w, h, pf): - data, dummy = grab_rgb(w, h, pf) - import jpeg - data = jpeg.compress(data, w, h, 4) - return data, None - -def grab_jpeggrey(w, h, pf): - raise Error, 'sorry, grabbing jpeggrey not implemented' |