Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 1 | #! /usr/bin/env python |
| 2 | """Very simple test script for the SGI gl library extension module |
| 3 | taken mostly from the documentation. |
| 4 | Roger E. Masse |
| 5 | """ |
Georg Brandl | 8fd107f | 2010-02-06 23:06:24 +0000 | [diff] [blame] | 6 | import unittest |
R. David Murray | 59beec3 | 2009-03-30 19:04:00 +0000 | [diff] [blame] | 7 | from test.test_support import verbose, import_module |
| 8 | import time |
| 9 | gl = import_module('gl') |
| 10 | GL = import_module('GL') |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 11 | |
| 12 | glattrs = ['RGBcolor', 'RGBcursor', 'RGBmode', 'RGBrange', 'RGBwritemask', |
| 13 | '__doc__', '__name__', 'addtopup', 'altgetmatrix', 'arc', 'arcf', |
| 14 | 'arcfi', 'arcfs', 'arci', 'arcs', 'attachcursor', 'backbuffer', |
| 15 | 'backface', 'bbox2', 'bbox2i', 'bbox2s', 'bgnclosedline', 'bgnline', |
| 16 | 'bgnpoint', 'bgnpolygon', 'bgnsurface', 'bgntmesh', 'bgntrim', |
| 17 | 'blankscreen', 'blanktime', 'blendfunction', 'blink', 'c3f', 'c3i', |
| 18 | 'c3s', 'c4f', 'c4i', 'c4s', 'callobj', 'charstr', 'chunksize', 'circ', |
| 19 | 'circf', 'circfi', 'circfs', 'circi', 'circs', 'clear', |
| 20 | 'clearhitcode', 'clkoff', 'clkon', 'closeobj', 'cmode', 'cmov', |
| 21 | 'cmov2', 'cmov2i', 'cmov2s', 'cmovi', 'cmovs', 'color', 'colorf', |
| 22 | 'compactify', 'concave', 'cpack', 'crv', 'crvn', 'curorigin', |
| 23 | 'cursoff', 'curson', 'curstype', 'curvebasis', 'curveit', |
| 24 | 'curveprecision', 'cyclemap', 'czclear', 'defbasis', 'defcursor', |
| 25 | 'deflinestyle', 'delobj', 'deltag', 'depthcue', 'devport', 'dglclose', |
| 26 | 'dglopen', 'dither', 'dopup', 'doublebuffer', 'draw', 'draw2', |
| 27 | 'draw2i', 'draw2s', 'drawi', 'drawmode', 'draws', 'editobj', |
| 28 | 'endclosedline', 'endfullscrn', 'endline', 'endpick', 'endpoint', |
| 29 | 'endpolygon', 'endpupmode', 'endselect', 'endsurface', 'endtmesh', |
| 30 | 'endtrim', 'finish', 'font', 'foreground', 'freepup', 'frontbuffer', |
| 31 | 'fudge', 'fullscrn', 'gRGBcolor', 'gRGBmask', 'gammaramp', 'gbegin', |
| 32 | 'gconfig', 'genobj', 'gentag', 'getbackface', 'getbuffer', |
| 33 | 'getbutton', 'getcmmode', 'getcolor', 'getcpos', 'getcursor', |
| 34 | 'getdcm', 'getdepth', 'getdescender', 'getdisplaymode', 'getdrawmode', |
| 35 | 'getfont', 'getgdesc', 'getgpos', 'getheight', 'gethitcode', |
| 36 | 'getlsbackup', 'getlsrepeat', 'getlstyle', 'getlwidth', 'getmap', |
| 37 | 'getmatrix', 'getmcolor', 'getmmode', 'getmonitor', |
| 38 | 'getnurbsproperty', 'getopenobj', 'getorigin', 'getothermonitor', |
| 39 | 'getpattern', 'getplanes', 'getport', 'getresetls', 'getscrmask', |
| 40 | 'getshade', 'getsize', 'getsm', 'gettp', 'getvaluator', 'getvideo', |
| 41 | 'getviewport', 'getwritemask', 'getzbuffer', 'gewrite', 'gflush', |
| 42 | 'ginit', 'glcompat', 'greset', 'gselect', 'gsync', 'gversion', |
| 43 | 'iconsize', 'icontitle', 'imakebackground', 'initnames', 'ismex', |
| 44 | 'isobj', 'isqueued', 'istag', 'keepaspect', 'lRGBrange', 'lampoff', |
| 45 | 'lampon', 'linesmooth', 'linewidth', 'lmbind', 'lmcolor', 'lmdef', |
| 46 | 'loadmatrix', 'loadname', 'logicop', 'lookat', 'lrectread', |
| 47 | 'lrectwrite', 'lsbackup', 'lsetdepth', 'lshaderange', 'lsrepeat', |
| 48 | 'makeobj', 'maketag', 'mapcolor', 'mapw', 'mapw2', 'maxsize', |
| 49 | 'minsize', 'mmode', 'move', 'move2', 'move2i', 'move2s', 'movei', |
| 50 | 'moves', 'multimap', 'multmatrix', 'n3f', 'newpup', 'newtag', |
| 51 | 'noborder', 'noise', 'noport', 'normal', 'nurbscurve', 'nurbssurface', |
| 52 | 'nvarray', 'objdelete', 'objinsert', 'objreplace', 'onemap', 'ortho', |
| 53 | 'ortho2', 'overlay', 'packrect', 'pagecolor', 'pagewritemask', |
| 54 | 'passthrough', 'patch', 'patchbasis', 'patchcurves', 'patchprecision', |
| 55 | 'pclos', 'pdr', 'pdr2', 'pdr2i', 'pdr2s', 'pdri', 'pdrs', |
| 56 | 'perspective', 'pick', 'picksize', 'pixmode', 'pmv', 'pmv2', 'pmv2i', |
| 57 | 'pmv2s', 'pmvi', 'pmvs', 'pnt', 'pnt2', 'pnt2i', 'pnt2s', 'pnti', |
| 58 | 'pnts', 'pntsmooth', 'polarview', 'polf', 'polf2', 'polf2i', 'polf2s', |
| 59 | 'polfi', 'polfs', 'poly', 'poly2', 'poly2i', 'poly2s', 'polyi', |
| 60 | 'polys', 'popattributes', 'popmatrix', 'popname', 'popviewport', |
| 61 | 'prefposition', 'prefsize', 'pupmode', 'pushattributes', 'pushmatrix', |
| 62 | 'pushname', 'pushviewport', 'pwlcurve', 'qdevice', 'qenter', 'qgetfd', |
| 63 | 'qread', 'qreset', 'qtest', 'rcrv', 'rcrvn', 'rdr', 'rdr2', 'rdr2i', |
| 64 | 'rdr2s', 'rdri', 'rdrs', 'readdisplay', 'readsource', 'rect', |
| 65 | 'rectcopy', 'rectf', 'rectfi', 'rectfs', 'recti', 'rects', 'rectzoom', |
| 66 | 'resetls', 'reshapeviewport', 'ringbell', 'rmv', 'rmv2', 'rmv2i', |
| 67 | 'rmv2s', 'rmvi', 'rmvs', 'rot', 'rotate', 'rpatch', 'rpdr', 'rpdr2', |
| 68 | 'rpdr2i', 'rpdr2s', 'rpdri', 'rpdrs', 'rpmv', 'rpmv2', 'rpmv2i', |
| 69 | 'rpmv2s', 'rpmvi', 'rpmvs', 'sbox', 'sboxf', 'sboxfi', 'sboxfs', |
| 70 | 'sboxi', 'sboxs', 'scale', 'screenspace', 'scrmask', 'setbell', |
| 71 | 'setcursor', 'setdepth', 'setlinestyle', 'setmap', 'setmonitor', |
| 72 | 'setnurbsproperty', 'setpattern', 'setpup', 'setshade', 'setvaluator', |
| 73 | 'setvideo', 'shademodel', 'shaderange', 'singlebuffer', 'smoothline', |
| 74 | 'spclos', 'splf', 'splf2', 'splf2i', 'splf2s', 'splfi', 'splfs', |
| 75 | 'stepunit', 'strwidth', 'subpixel', 'swapbuffers', 'swapinterval', |
| 76 | 'swaptmesh', 'swinopen', 'textcolor', 'textinit', 'textport', |
| 77 | 'textwritemask', 'tie', 'tpoff', 'tpon', 'translate', 'underlay', |
| 78 | 'unpackrect', 'unqdevice', 'v2d', 'v2f', 'v2i', 'v2s', 'v3d', 'v3f', |
| 79 | 'v3i', 'v3s', 'v4d', 'v4f', 'v4i', 'v4s', 'varray', 'videocmd', |
| 80 | 'viewport', 'vnarray', 'winattach', 'winclose', 'winconstraints', |
| 81 | 'windepth', 'window', 'winget', 'winmove', 'winopen', 'winpop', |
| 82 | 'winposition', 'winpush', 'winset', 'wintitle', 'wmpack', 'writemask', |
| 83 | 'writepixels', 'xfpt', 'xfpt2', 'xfpt2i', 'xfpt2s', 'xfpt4', 'xfpt4i', |
| 84 | 'xfpt4s', 'xfpti', 'xfpts', 'zbuffer', 'zclear', 'zdraw', 'zfunction', |
| 85 | 'zsource', 'zwritemask'] |
| 86 | |
Brett Cannon | 7dbd918 | 2008-03-03 04:19:29 +0000 | [diff] [blame] | 87 | def test_main(): |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 88 | # insure that we at least have an X display before continuing. |
| 89 | import os |
| 90 | try: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 91 | display = os.environ['DISPLAY'] |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 92 | except: |
Benjamin Peterson | bec087f | 2009-03-26 21:10:30 +0000 | [diff] [blame] | 93 | raise unittest.SkipTest, "No $DISPLAY -- skipping gl test" |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 94 | |
| 95 | # touch all the attributes of gl without doing anything |
| 96 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 97 | print 'Touching gl module attributes...' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 98 | for attr in glattrs: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 99 | if verbose: |
| 100 | print 'touching: ', attr |
| 101 | getattr(gl, attr) |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 102 | |
| 103 | # create a small 'Crisscross' window |
| 104 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 105 | print 'Creating a small "CrissCross" window...' |
| 106 | print 'foreground' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 107 | gl.foreground() |
| 108 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 109 | print 'prefposition' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 110 | gl.prefposition(500, 900, 500, 900) |
| 111 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 112 | print 'winopen "CrissCross"' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 113 | w = gl.winopen('CrissCross') |
| 114 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 115 | print 'clear' |
Guido van Rossum | 9d1a02c | 1997-01-03 22:42:08 +0000 | [diff] [blame] | 116 | gl.clear() |
| 117 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 118 | print 'ortho2' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 119 | gl.ortho2(0.0, 400.0, 0.0, 400.0) |
| 120 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 121 | print 'color WHITE' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 122 | gl.color(GL.WHITE) |
| 123 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 124 | print 'color RED' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 125 | gl.color(GL.RED) |
| 126 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 127 | print 'bgnline' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 128 | gl.bgnline() |
| 129 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 130 | print 'v2f' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 131 | gl.v2f(0.0, 0.0) |
| 132 | gl.v2f(400.0, 400.0) |
| 133 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 134 | print 'endline' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 135 | gl.endline() |
| 136 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 137 | print 'bgnline' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 138 | gl.bgnline() |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 139 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 140 | print 'v2i' |
Guido van Rossum | 9d1a02c | 1997-01-03 22:42:08 +0000 | [diff] [blame] | 141 | gl.v2i(400, 0) |
| 142 | gl.v2i(0, 400) |
| 143 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 144 | print 'endline' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 145 | gl.endline() |
Guido van Rossum | 9d1a02c | 1997-01-03 22:42:08 +0000 | [diff] [blame] | 146 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 147 | print 'Displaying window for 2 seconds...' |
Guido van Rossum | 9d1a02c | 1997-01-03 22:42:08 +0000 | [diff] [blame] | 148 | time.sleep(2) |
| 149 | if verbose: |
Guido van Rossum | 41360a4 | 1998-03-26 19:42:58 +0000 | [diff] [blame] | 150 | print 'winclose' |
Roger E. Masse | 6da2953 | 1996-12-24 19:36:07 +0000 | [diff] [blame] | 151 | gl.winclose(w) |
Fred Drake | 004d5e6 | 2000-10-23 17:22:08 +0000 | [diff] [blame] | 152 | |
Brett Cannon | 7dbd918 | 2008-03-03 04:19:29 +0000 | [diff] [blame] | 153 | |
| 154 | if __name__ == '__main__': |
| 155 | test_main() |