1
2from PyObjCTools.TestSupport import *
3from AppKit import *
4
5class TestNSOpenGL (TestCase):
6    def testConstants(self):
7        self.failUnlessEqual(NSOpenGLGOFormatCacheSize, 501)
8        self.failUnlessEqual(NSOpenGLGOClearFormatCache, 502)
9        self.failUnlessEqual(NSOpenGLGORetainRenderers, 503)
10        self.failUnlessEqual(NSOpenGLGOResetLibrary, 504)
11
12        self.failUnlessEqual(NSOpenGLPFAAllRenderers,   1)
13        self.failUnlessEqual(NSOpenGLPFADoubleBuffer,   5)
14        self.failUnlessEqual(NSOpenGLPFAStereo,   6)
15        self.failUnlessEqual(NSOpenGLPFAAuxBuffers,   7)
16        self.failUnlessEqual(NSOpenGLPFAColorSize,   8)
17        self.failUnlessEqual(NSOpenGLPFAAlphaSize,  11)
18        self.failUnlessEqual(NSOpenGLPFADepthSize,  12)
19        self.failUnlessEqual(NSOpenGLPFAStencilSize,  13)
20        self.failUnlessEqual(NSOpenGLPFAAccumSize,  14)
21        self.failUnlessEqual(NSOpenGLPFAMinimumPolicy,  51)
22        self.failUnlessEqual(NSOpenGLPFAMaximumPolicy,  52)
23        self.failUnlessEqual(NSOpenGLPFAOffScreen,  53)
24        self.failUnlessEqual(NSOpenGLPFAFullScreen,  54)
25        self.failUnlessEqual(NSOpenGLPFASampleBuffers,  55)
26        self.failUnlessEqual(NSOpenGLPFASamples,  56)
27        self.failUnlessEqual(NSOpenGLPFAAuxDepthStencil,  57)
28        self.failUnlessEqual(NSOpenGLPFAColorFloat,  58)
29        self.failUnlessEqual(NSOpenGLPFAMultisample,  59)
30        self.failUnlessEqual(NSOpenGLPFASupersample,  60)
31        self.failUnlessEqual(NSOpenGLPFASampleAlpha,  61)
32        self.failUnlessEqual(NSOpenGLPFARendererID,  70)
33        self.failUnlessEqual(NSOpenGLPFASingleRenderer,  71)
34        self.failUnlessEqual(NSOpenGLPFANoRecovery,  72)
35        self.failUnlessEqual(NSOpenGLPFAAccelerated,  73)
36        self.failUnlessEqual(NSOpenGLPFAClosestPolicy,  74)
37        self.failUnlessEqual(NSOpenGLPFARobust,  75)
38        self.failUnlessEqual(NSOpenGLPFABackingStore,  76)
39        self.failUnlessEqual(NSOpenGLPFAMPSafe,  78)
40        self.failUnlessEqual(NSOpenGLPFAWindow,  80)
41        self.failUnlessEqual(NSOpenGLPFAMultiScreen,  81)
42        self.failUnlessEqual(NSOpenGLPFACompliant,  83)
43        self.failUnlessEqual(NSOpenGLPFAScreenMask,  84)
44        self.failUnlessEqual(NSOpenGLPFAPixelBuffer,  90)
45        self.failUnlessEqual(NSOpenGLPFAVirtualScreenCount, 128)
46
47
48        self.failUnlessEqual(NSOpenGLCPSwapRectangle, 200)
49        self.failUnlessEqual(NSOpenGLCPSwapRectangleEnable, 201)
50        self.failUnlessEqual(NSOpenGLCPRasterizationEnable, 221)
51        self.failUnlessEqual(NSOpenGLCPSwapInterval, 222)
52        self.failUnlessEqual(NSOpenGLCPSurfaceOrder, 235)
53        self.failUnlessEqual(NSOpenGLCPSurfaceOpacity, 236)
54        self.failUnlessEqual(NSOpenGLCPStateValidation, 301)
55
56    @min_os_level("10.5")
57    def testConstants10_5(self):
58        self.failUnlessEqual(NSOpenGLPFAAllowOfflineRenderers, 96)
59
60
61    def testFunctions(self):
62        major, minor = NSOpenGLGetVersion(None, None)
63        self.failUnlessIsInstance(major, (int, long))
64        self.failUnlessIsInstance(minor, (int, long))
65
66        self.failUnlessArgIsOut(NSOpenGLGetOption, 1)
67        v = NSOpenGLGetOption(NSOpenGLGOFormatCacheSize, None)
68        self.failUnlessIsInstance(v, (int, long))
69
70        NSOpenGLSetOption(NSOpenGLGOFormatCacheSize, v)
71
72    def testMethods(self):
73        self.failUnlessArgIsNullTerminated(NSOpenGLPixelFormat.initWithAttributes_, 0)
74        self.failUnlessArgIsIn(NSOpenGLPixelFormat.initWithAttributes_, 0)
75
76        o = NSOpenGLPixelFormat.alloc().initWithAttributes_([NSOpenGLPFANoRecovery, NSOpenGLPFAAuxBuffers, 2])
77        self.failUnlessIsInstance(o, NSOpenGLPixelFormat)
78
79        #FIXME: I'm not entirely sure this test is correct.
80        self.failUnlessArgIsOut(NSOpenGLPixelFormat.getValues_forAttribute_forVirtualScreen_, 0)
81        v = o.getValues_forAttribute_forVirtualScreen_(
82                None, NSOpenGLPFANoRecovery, 0)
83        self.failUnlessIsInstance(v, (int, long))
84
85        self.failUnlessResultHasType(NSOpenGLPixelFormat.CGLPixelFormatObj,
86                '^{_CGLPixelFormatObject}')
87
88        self.failUnlessResultHasType(NSOpenGLContext.CGLContextObj,
89                '^{_CGLContextObj}')
90
91
92if __name__ == "__main__":
93    main()
94