1
2from PyObjCTools.TestSupport import *
3from Quartz import *
4
5try:
6    unicode
7except NameError:
8    unicode = str
9
10
11try:
12    long
13except NameError:
14    long = int
15class TestCVOpenGLBufferPool (TestCase):
16    def testTypes(self):
17        self.assertIsCFType(CVOpenGLBufferPoolRef)
18
19    def testConstants(self):
20        self.assertIsInstance(kCVOpenGLBufferPoolMinimumBufferCountKey, unicode)
21        self.assertIsInstance(kCVOpenGLBufferPoolMaximumBufferAgeKey, unicode)
22
23    def testFunctions(self):
24        self.assertIsInstance(CVOpenGLBufferPoolGetTypeID(), (int, long))
25
26        # FIXME: find some good creation parameters
27        self.assertArgIsOut(CVOpenGLBufferPoolCreate, 3)
28        self.assertArgIsCFRetained(CVOpenGLBufferPoolCreate, 3)
29        rv, pool = CVOpenGLBufferPoolCreate(None, {
30            kCVOpenGLBufferPoolMinimumBufferCountKey: 1,
31            kCVOpenGLBufferPoolMaximumBufferAgeKey: 42.0,
32            }, {}, None)
33        self.assertEqual(rv, 0)
34        self.assertIsInstance(pool, CVOpenGLBufferPoolRef)
35
36        v = CVOpenGLBufferPoolRetain(pool)
37        self.assertTrue(v is pool)
38        CVOpenGLBufferPoolRelease(v)
39
40        v = CVOpenGLBufferPoolGetAttributes(pool)
41        self.assertIsInstance(v, CFDictionaryRef)
42
43        v = CVOpenGLBufferPoolGetOpenGLBufferAttributes(pool)
44        self.assertIsInstance(v, CFDictionaryRef)
45
46        self.assertArgIsOut(CVOpenGLBufferPoolCreateOpenGLBuffer, 2)
47        self.assertArgIsCFRetained(CVOpenGLBufferPoolCreateOpenGLBuffer, 2)
48        rv, buf = CVOpenGLBufferPoolCreateOpenGLBuffer(None, pool, None)
49        self.assertIsInstance(rv, (int, long))
50        if rv == 0:
51            self.assertIsInstance(buf, CVOpenGLBufferRef)
52        else:
53            self.assertTrue(buf is None)
54
55if __name__ == "__main__":
56    main()
57