1
if __name__ == '__main__':
4
pkg_dir = os.path.split(os.path.abspath(__file__))[0]
5
parent_dir, pkg_name = os.path.split(pkg_dir)
6
is_pygame_pkg = (pkg_name == 'tests' and
7
os.path.split(parent_dir)[1] == 'pygame')
9
sys.path.insert(0, parent_dir)
11
is_pygame_pkg = __name__.startswith('pygame.tests.')
16
from pygame.locals import *
18
class BlitTest( unittest.TestCase ):
19
def test_SRCALPHA( self ):
23
s = pygame.Surface((1,1), SRCALPHA, 32)
24
s.fill((255, 255,255, 0))
26
d = pygame.Surface((1,1), SRCALPHA, 32)
27
d.fill((0, 0,255, 255))
30
self.assertEqual(s.get_at((0,0)), d.get_at((0,0)) )
33
s = pygame.Surface((1,1), SRCALPHA, 32)
34
s.fill((123, 0, 0, 255))
35
s1 = pygame.Surface((1,1), SRCALPHA, 32)
36
s1.fill((123, 0, 0, 255))
37
d = pygame.Surface((1,1), SRCALPHA, 32)
40
self.assertEqual(s.get_at((0,0)), s1.get_at((0,0)) )
42
#TODO: these should be true too.
44
#blend(255, sA, 255) = 255
45
#blend(s, sA, d) <= 255
47
def test_BLEND( self ):
51
#test that it doesn't overflow, and that it is saturated.
52
s = pygame.Surface((1,1), SRCALPHA, 32)
53
s.fill((255, 255,255, 0))
55
d = pygame.Surface((1,1), SRCALPHA, 32)
56
d.fill((0, 0,255, 255))
58
s.blit(d, (0,0), None, BLEND_ADD)
60
#print "d %s" % (d.get_at((0,0)),)
61
#print s.get_at((0,0))
62
#self.assertEqual(s.get_at((0,0))[2], 255 )
63
#self.assertEqual(s.get_at((0,0))[3], 0 )
67
s.blit(d, (0,0), None, BLEND_RGBA_ADD)
68
#print s.get_at((0,0))
69
self.assertEqual(s.get_at((0,0))[3], 255 )
73
s.fill((20, 255,255, 0))
74
d.fill((10, 0,255, 255))
75
s.blit(d, (0,0), None, BLEND_ADD)
76
self.assertEqual(s.get_at((0,0))[2], 255 )
79
s.fill((20, 255,255, 0))
80
d.fill((10, 0,255, 255))
81
s.blit(d, (0,0), None, BLEND_SUB)
82
self.assertEqual(s.get_at((0,0))[0], 10 )
84
# no overflow in sub blend.
85
s.fill((20, 255,255, 0))
86
d.fill((30, 0,255, 255))
87
s.blit(d, (0,0), None, BLEND_SUB)
88
self.assertEqual(s.get_at((0,0))[0], 0 )
92
if __name__ == '__main__':