def test_pixels2d(self):
if not arraytype:
self.fail("no array package installed")
if arraytype == 'numeric':
# This is known to fail with Numeric
# (incompatible get_rgb and array element types).
return
sources = [self._make_surface(8),
self._make_surface(16, srcalpha=True),
self._make_surface(32, srcalpha=True)]
for surf in sources:
self.failIf(surf.get_locked())
arr = pygame.surfarray.pixels2d(surf)
self.failUnless(surf.get_locked())
# Numpy uses the surface's buffer.
if arraytype == "numeric":
self.failUnlessEqual(surf.get_locks(), (ar,))
self._fill_array2d(arr, surf)
surf.unlock()
self.failUnless(surf.get_locked())
del arr
self.failIf(surf.get_locked())
self.failUnlessEqual(surf.get_locks(), ())
self._assert_surface(surf)
# Error checks
def do_pixels2d(surf):
pygame.surfarray.pixels2d(surf)
self.failUnlessRaises(ValueError,
do_pixels2d,
self._make_surface(24))
评论列表
文章目录