Mercurial > pygame
annotate test/surface_test.py @ 3172:d1b367fc08bc tests-returncode
Use a return code of 1 when the tests fail.
| author | Thomas Kluyver <takowl@gmail.com> |
|---|---|
| date | Wed, 09 Jan 2013 10:13:57 +0000 |
| parents | 064cd23c4c2f |
| children | 4a4611239021 |
| rev | line source |
|---|---|
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1 if __name__ == '__main__': |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
2 import sys |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
3 import os |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
4 pkg_dir = os.path.split(os.path.abspath(__file__))[0] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
5 parent_dir, pkg_name = os.path.split(pkg_dir) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
6 is_pygame_pkg = (pkg_name == 'tests' and |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
7 os.path.split(parent_dir)[1] == 'pygame') |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
8 if not is_pygame_pkg: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
9 sys.path.insert(0, parent_dir) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
10 else: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
11 is_pygame_pkg = __name__.startswith('pygame.tests.') |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
12 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
13 if is_pygame_pkg: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
14 from pygame.tests import test_utils |
|
3127
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
15 from pygame.tests.test_utils import test_not_implemented, unittest, example_path |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
16 try: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
17 from pygame.tests.test_utils.arrinter import * |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
18 except ImportError: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
19 pass |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
20 else: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
21 from test import test_utils |
|
3127
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
22 from test.test_utils import test_not_implemented, unittest, example_path |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
23 try: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
24 from test.test_utils.arrinter import * |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
25 except ImportError: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
26 pass |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
27 import pygame |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
28 from pygame.locals import * |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
29 from pygame.compat import xrange_, as_bytes, as_unicode |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
30 from pygame._view import View |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
31 |
|
3031
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
32 import gc |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
33 import weakref |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
34 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
35 def intify(i): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
36 """If i is a long, cast to an int while preserving the bits""" |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
37 if 0x80000000 & i: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
38 return int((0xFFFFFFFF & i)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
39 return i |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
40 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
41 def longify(i): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
42 """If i is an int, cast to a long while preserving the bits""" |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
43 if i < 0: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
44 return 0xFFFFFFFF & i |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
45 return long(i) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
46 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
47 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
48 class SurfaceTypeTest(unittest.TestCase): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
49 def test_set_clip( self ): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
50 """ see if surface.set_clip(None) works correctly. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
51 """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
52 s = pygame.Surface((800, 600)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
53 r = pygame.Rect(10, 10, 10, 10) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
54 s.set_clip(r) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
55 r.move_ip(10, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
56 s.set_clip(None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
57 res = s.get_clip() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
58 # this was garbled before. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
59 self.assertEqual(res[0], 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
60 self.assertEqual(res[2], 800) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
61 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
62 def test_print(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
63 surf = pygame.Surface((70,70), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
64 self.assertEqual(repr(surf), '<Surface(70x70x32 SW)>') |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
65 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
66 def test_keyword_arguments(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
67 surf = pygame.Surface((70,70), flags=SRCALPHA, depth=32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
68 self.assertEqual(surf.get_flags() & SRCALPHA, SRCALPHA) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
69 self.assertEqual(surf.get_bitsize(), 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
70 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
71 # sanity check to make sure the check below is valid |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
72 surf_16 = pygame.Surface((70,70), 0, 16) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
73 self.assertEqual(surf_16.get_bytesize(), 2) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
74 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
75 # try again with an argument list |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
76 surf_16 = pygame.Surface((70,70), depth=16) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
77 self.assertEqual(surf_16.get_bytesize(), 2) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
78 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
79 def test_set_at(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
80 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
81 #24bit surfaces |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
82 s = pygame.Surface( (100, 100), 0, 24) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
83 s.fill((0,0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
84 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
85 # set it with a tuple. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
86 s.set_at((0,0), (10,10,10, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
87 r = s.get_at((0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
88 self.failUnless(isinstance(r, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
89 self.assertEqual(r, (10,10,10, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
90 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
91 # try setting a color with a single integer. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
92 s.fill((0,0,0,255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
93 s.set_at ((10, 1), 0x0000FF) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
94 r = s.get_at((10,1)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
95 self.assertEqual(r, (0,0,255, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
96 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
97 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
98 def test_SRCALPHA(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
99 # has the flag been passed in ok? |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
100 surf = pygame.Surface((70,70), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
101 self.assertEqual(surf.get_flags() & SRCALPHA, SRCALPHA) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
102 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
103 #24bit surfaces can not have SRCALPHA. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
104 self.assertRaises(ValueError, pygame.Surface, (100, 100), pygame.SRCALPHA, 24) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
105 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
106 # if we have a 32 bit surface, the SRCALPHA should have worked too. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
107 surf2 = pygame.Surface((70,70), SRCALPHA) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
108 if surf2.get_bitsize() == 32: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
109 self.assertEqual(surf2.get_flags() & SRCALPHA, SRCALPHA) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
110 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
111 def test_masks(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
112 def make_surf(bpp, flags, masks): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
113 pygame.Surface((10, 10), flags, bpp, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
114 # With some masks SDL_CreateRGBSurface does not work properly. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
115 masks = (0xFF000000, 0xFF0000, 0xFF00, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
116 self.assertEqual(make_surf(32, 0, masks), None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
117 # For 24 and 32 bit surfaces Pygame assumes no losses. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
118 masks = (0x7F0000, 0xFF00, 0xFF, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
119 self.failUnlessRaises(ValueError, make_surf, 24, 0, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
120 self.failUnlessRaises(ValueError, make_surf, 32, 0, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
121 # What contiguous bits in a mask. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
122 masks = (0x6F0000, 0xFF00, 0xFF, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
123 self.failUnlessRaises(ValueError, make_surf, 32, 0, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
124 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
125 def test_get_buffer (self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
126 surf = pygame.Surface ((70, 70), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
127 buf = surf.get_buffer () |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
128 # 70*70*4 bytes = 19600 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
129 self.assertEqual (repr (buf), "<BufferProxy(19600)>") |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
130 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
131 def test_get_bounding_rect (self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
132 surf = pygame.Surface ((70, 70), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
133 surf.fill((0,0,0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
134 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
135 self.assertEqual(bound_rect.width, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
136 self.assertEqual(bound_rect.height, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
137 surf.set_at((30,30),(255,255,255,1)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
138 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
139 self.assertEqual(bound_rect.left, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
140 self.assertEqual(bound_rect.top, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
141 self.assertEqual(bound_rect.width, 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
142 self.assertEqual(bound_rect.height, 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
143 surf.set_at((29,29),(255,255,255,1)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
144 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
145 self.assertEqual(bound_rect.left, 29) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
146 self.assertEqual(bound_rect.top, 29) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
147 self.assertEqual(bound_rect.width, 2) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
148 self.assertEqual(bound_rect.height, 2) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
149 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
150 surf = pygame.Surface ((70, 70), 0, 24) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
151 surf.fill((0,0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
152 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
153 self.assertEqual(bound_rect.width, surf.get_width()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
154 self.assertEqual(bound_rect.height, surf.get_height()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
155 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
156 surf.set_colorkey((0,0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
157 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
158 self.assertEqual(bound_rect.width, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
159 self.assertEqual(bound_rect.height, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
160 surf.set_at((30,30),(255,255,255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
161 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
162 self.assertEqual(bound_rect.left, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
163 self.assertEqual(bound_rect.top, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
164 self.assertEqual(bound_rect.width, 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
165 self.assertEqual(bound_rect.height, 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
166 surf.set_at((60,60),(255,255,255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
167 bound_rect = surf.get_bounding_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
168 self.assertEqual(bound_rect.left, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
169 self.assertEqual(bound_rect.top, 30) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
170 self.assertEqual(bound_rect.width, 31) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
171 self.assertEqual(bound_rect.height, 31) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
172 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
173 def test_copy(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
174 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
175 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.copy: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
176 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
177 # Surface.copy(): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
178 # create a new copy of a Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
179 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
180 color = (25, 25, 25, 25) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
181 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
182 s1.fill(color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
183 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
184 s2 = s1.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
185 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
186 s1rect = s1.get_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
187 s2rect = s2.get_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
188 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
189 self.assert_(s1rect.size == s2rect.size) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
190 self.assert_(s2.get_at((10,10)) == color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
191 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
192 def test_fill(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
193 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
194 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.fill: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
195 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
196 # Surface.fill(color, rect=None, special_flags=0): return Rect |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
197 # fill Surface with a solid color |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
198 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
199 color = (25, 25, 25, 25) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
200 fill_rect = pygame.Rect(0, 0, 16, 16) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
201 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
202 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
203 s1.fill(color, fill_rect) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
204 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
205 for pt in test_utils.rect_area_pts(fill_rect): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
206 self.assert_(s1.get_at(pt) == color ) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
207 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
208 for pt in test_utils.rect_outer_bounds(fill_rect): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
209 self.assert_(s1.get_at(pt) != color ) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
210 |
|
3120
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
211 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
212 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
213 def test_fill_negative_coordinates(self): |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
214 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
215 # negative coordinates should be clipped by fill, and not draw outside the surface. |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
216 color = (25, 25, 25, 25) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
217 color2 = (20, 20, 20, 25) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
218 fill_rect = pygame.Rect(-10, -10, 16, 16) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
219 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
220 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
3123
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
221 r1 = s1.fill(color, fill_rect) |
|
3120
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
222 c = s1.get_at((0,0)) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
223 self.assertEqual(c, color) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
224 |
|
3123
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
225 # make subsurface in the middle to test it doesn't over write. |
|
3120
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
226 s2 = s1.subsurface((5, 5, 5, 5)) |
|
3123
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
227 r2 = s2.fill(color2, (-3, -3, 5, 5)) |
|
3120
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
228 c2 = s1.get_at((4,4)) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
229 self.assertEqual(c, color) |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
230 |
|
3123
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
231 # rect returns the area we actually fill. |
|
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
232 r3 = s2.fill(color2, (-30, -30, 5, 5)) |
|
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
233 # since we are using negative coords, it should be an zero sized rect. |
|
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
234 self.assertEqual(tuple(r3), (0, 0, 0, 0)) |
|
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
235 |
|
ab2d5aeb0997
Added test for #123 using negative coords.
Rene Dudfield <renesd@gmail.com>
parents:
3122
diff
changeset
|
236 |
|
3120
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
237 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
238 |
|
bc8f95fbc4dd
Adding a surface.fill test with negative coordinates.
Rene Dudfield <renesd@gmail.com>
parents:
3033
diff
changeset
|
239 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
240 def test_fill_keyword_args(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
241 color = (1, 2, 3, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
242 area = (1, 1, 2, 2) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
243 s1 = pygame.Surface((4, 4), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
244 s1.fill(special_flags=pygame.BLEND_ADD, color=color, rect=area) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
245 self.assert_(s1.get_at((0, 0)) == (0, 0, 0, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
246 self.assert_(s1.get_at((1, 1)) == color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
247 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
248 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
249 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
250 def test_get_alpha(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
251 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
252 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_alpha: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
253 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
254 # Surface.get_alpha(): return int_value or None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
255 # get the current Surface transparency value |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
256 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
257 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
258 self.assert_(s1.get_alpha() == 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
259 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
260 for alpha in (0, 32, 127, 255): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
261 s1.set_alpha(alpha) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
262 for t in range(4): s1.set_alpha(s1.get_alpha()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
263 self.assert_(s1.get_alpha() == alpha) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
264 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
265 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
266 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
267 def test_get_bytesize(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
268 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
269 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_bytesize: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
270 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
271 # Surface.get_bytesize(): return int |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
272 # get the bytes used per Surface pixel |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
273 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
274 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
275 self.assert_(s1.get_bytesize() == 4) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
276 self.assert_(s1.get_bitsize() == 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
277 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
278 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
279 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
280 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
281 def test_get_flags(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
282 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
283 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_flags: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
284 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
285 # Surface.get_flags(): return int |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
286 # get the additional flags used for the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
287 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
288 s1 = pygame.Surface((32,32), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
289 self.assert_(s1.get_flags() == pygame.SRCALPHA) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
290 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
291 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
292 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
293 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
294 def test_get_parent(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
295 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
296 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_parent: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
297 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
298 # Surface.get_parent(): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
299 # find the parent of a subsurface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
300 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
301 parent = pygame.Surface((16, 16)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
302 child = parent.subsurface((0,0,5,5)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
303 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
304 self.assert_(child.get_parent() is parent) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
305 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
306 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
307 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
308 def test_get_rect(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
309 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
310 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_rect: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
311 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
312 # Surface.get_rect(**kwargs): return Rect |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
313 # get the rectangular area of the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
314 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
315 surf = pygame.Surface((16, 16)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
316 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
317 rect = surf.get_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
318 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
319 self.assert_(rect.size == (16, 16)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
320 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
321 ######################################################################## |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
322 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
323 def test_get_width__size_and_height(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
324 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
325 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.get_width: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
326 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
327 # Surface.get_width(): return width |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
328 # get the width of the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
329 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
330 for w in xrange_(0, 255, 32): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
331 for h in xrange_(0, 127, 15): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
332 s = pygame.Surface((w, h)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
333 self.assertEquals(s.get_width(), w) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
334 self.assertEquals(s.get_height(), h) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
335 self.assertEquals(s.get_size(), (w, h)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
336 |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
337 def test_get_view(self): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
338 # Check that Views are returned when array depth is supported, |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
339 # ValueErrors returned otherwise. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
340 Error = ValueError |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
341 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
342 s = pygame.Surface((5, 7), 0, 8) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
343 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
344 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
345 self.assertRaises(Error, s.get_view, '3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
346 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
347 s = pygame.Surface((5, 7), 0, 16) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
348 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
349 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
350 self.assertRaises(Error, s.get_view, '3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
351 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
352 s = pygame.Surface((5, 7), pygame.SRCALPHA, 16) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
353 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
354 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
355 self.assertRaises(Error, s.get_view, '3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
356 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
357 s = pygame.Surface((5, 7), 0, 24) |
|
2139
f804bebb7287
Surface.get_view('2') now returns a view for 24 bit surfaces.
Lenard Lindstrom <len-l@telus.net>
parents:
2137
diff
changeset
|
358 v = s.get_view('2') |
|
f804bebb7287
Surface.get_view('2') now returns a view for 24 bit surfaces.
Lenard Lindstrom <len-l@telus.net>
parents:
2137
diff
changeset
|
359 self.assert_(isinstance(v, View)) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
360 v = s.get_view('3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
361 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
362 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
363 s = pygame.Surface((5, 7), 0, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
364 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
365 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
366 v = s.get_view('3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
367 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
368 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
369 s = pygame.Surface((5, 7), pygame.SRCALPHA, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
370 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
371 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
372 v = s.get_view('3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
373 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
374 v = s.get_view('a') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
375 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
376 v = s.get_view('A') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
377 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
378 v = s.get_view('r') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
379 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
380 v = s.get_view('G') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
381 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
382 v = s.get_view('g') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
383 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
384 v = s.get_view('B') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
385 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
386 v = s.get_view('b') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
387 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
388 # Check argument defaults. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
389 s = pygame.Surface((5, 7), 0, 16) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
390 v = s.get_view() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
391 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
392 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
393 # Check keyword arguments. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
394 s = pygame.Surface((5, 7), 0, 24) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
395 v = s.get_view(kind='3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
396 self.assert_(isinstance(v, View)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
397 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
398 # Check locking. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
399 s = pygame.Surface((2, 4), 0, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
400 self.assert_(not s.get_locked()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
401 v = s.get_view() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
402 self.assert_(s.get_locked()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
403 del v |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
404 self.assert_(not s.get_locked()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
405 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
406 # Check invalid view kind values. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
407 s = pygame.Surface((2, 4), pygame.SRCALPHA, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
408 self.assertRaises(TypeError, s.get_view, '') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
409 self.assertRaises(TypeError, s.get_view, '0') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
410 self.assertRaises(TypeError, s.get_view, 'RGBA') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
411 self.assertRaises(TypeError, s.get_view, 2) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
412 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
413 # Both unicode and bytes strings are allowed for kind. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
414 s = pygame.Surface((2, 4), 0, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
415 s.get_view(as_unicode('2')) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
416 s.get_view(as_bytes('2')) |
|
3031
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
417 |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
418 # Garbage collection |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
419 s = pygame.Surface((2, 4), 0, 32) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
420 weak_s = weakref.ref(s) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
421 v = s.get_view('3') |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
422 weak_v = weakref.ref(v) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
423 gc.collect() |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
424 self.assertTrue(weak_s() is s) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
425 self.assertTrue(weak_v() is v) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
426 del v |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
427 gc.collect() |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
428 self.assertTrue(weak_s() is s) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
429 self.assertTrue(weak_v() is None) |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
430 del s |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
431 gc.collect() |
|
7cd7afdc9e10
Ensure Surface reference count bug fix (changeset 3705fa59dd5b) actually works.
Lenard Lindstrom <len-l@telus.net>
parents:
3004
diff
changeset
|
432 self.assertTrue(weak_s() is None) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
433 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
434 def test_set_colorkey(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
435 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
436 # __doc__ (as of 2008-06-25) for pygame.surface.Surface.set_colorkey: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
437 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
438 # Surface.set_colorkey(Color, flags=0): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
439 # Surface.set_colorkey(None): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
440 # Set the transparent colorkey |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
441 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
442 s = pygame.Surface((16,16), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
443 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
444 colorkeys = ((20,189,20, 255),(128,50,50,255), (23, 21, 255,255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
445 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
446 for colorkey in colorkeys: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
447 s.set_colorkey(colorkey) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
448 for t in range(4): s.set_colorkey(s.get_colorkey()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
449 self.assertEquals(s.get_colorkey(), colorkey) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
450 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
451 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
452 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
453 def test_set_masks(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
454 s = pygame.Surface((32,32)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
455 r,g,b,a = s.get_masks() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
456 s.set_masks((b,g,r,a)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
457 r2,g2,b2,a2 = s.get_masks() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
458 self.assertEqual((r,g,b,a), (b2,g2,r2,a2)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
459 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
460 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
461 def test_set_shifts(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
462 s = pygame.Surface((32,32)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
463 r,g,b,a = s.get_shifts() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
464 s.set_shifts((b,g,r,a)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
465 r2,g2,b2,a2 = s.get_shifts() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
466 self.assertEqual((r,g,b,a), (b2,g2,r2,a2)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
467 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
468 def test_blit_keyword_args(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
469 color = (1, 2, 3, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
470 s1 = pygame.Surface((4, 4), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
471 s2 = pygame.Surface((2, 2), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
472 s2.fill((1, 2, 3)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
473 s1.blit(special_flags=BLEND_ADD, source=s2, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
474 dest=(1, 1), area=s2.get_rect()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
475 self.assertEqual(s1.get_at((0, 0)), (0, 0, 0, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
476 self.assertEqual(s1.get_at((1, 1)), color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
477 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
478 def todo_test_blit(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
479 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.blit: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
480 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
481 # Surface.blit(source, dest, area=None, special_flags = 0): return Rect |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
482 # draw one image onto another |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
483 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
484 # Draws a source Surface onto this Surface. The draw can be positioned |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
485 # with the dest argument. Dest can either be pair of coordinates |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
486 # representing the upper left corner of the source. A Rect can also be |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
487 # passed as the destination and the topleft corner of the rectangle |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
488 # will be used as the position for the blit. The size of the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
489 # destination rectangle does not effect the blit. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
490 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
491 # An optional area rectangle can be passed as well. This represents a |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
492 # smaller portion of the source Surface to draw. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
493 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
494 # An optional special flags is for passing in new in 1.8.0: BLEND_ADD, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
495 # BLEND_SUB, BLEND_MULT, BLEND_MIN, BLEND_MAX new in 1.8.1: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
496 # BLEND_RGBA_ADD, BLEND_RGBA_SUB, BLEND_RGBA_MULT, BLEND_RGBA_MIN, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
497 # BLEND_RGBA_MAX BLEND_RGB_ADD, BLEND_RGB_SUB, BLEND_RGB_MULT, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
498 # BLEND_RGB_MIN, BLEND_RGB_MAX With other special blitting flags |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
499 # perhaps added in the future. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
500 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
501 # The return rectangle is the area of the affected pixels, excluding |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
502 # any pixels outside the destination Surface, or outside the clipping |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
503 # area. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
504 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
505 # Pixel alphas will be ignored when blitting to an 8 bit Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
506 # special_flags new in pygame 1.8. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
507 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
508 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
509 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
510 def test_blit__SRCALPHA_opaque_source(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
511 src = pygame.Surface( (256,256), SRCALPHA ,32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
512 dst = src.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
513 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
514 for i, j in test_utils.rect_area_pts(src.get_rect()): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
515 dst.set_at( (i,j), (i,0,0,j) ) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
516 src.set_at( (i,j), (0,i,0,255) ) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
517 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
518 dst.blit(src, (0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
519 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
520 for pt in test_utils.rect_area_pts(src.get_rect()): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
521 self.assertEquals ( dst.get_at(pt)[1], src.get_at(pt)[1] ) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
522 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
523 def todo_test_blit__blit_to_self(self): #TODO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
524 src = pygame.Surface( (256,256), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
525 rect = src.get_rect() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
526 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
527 for pt, color in test_utils.gradient(rect.width, rect.height): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
528 src.set_at(pt, color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
529 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
530 src.blit(src, (0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
531 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
532 def todo_test_blit__SRCALPHA_to_SRCALPHA_non_zero(self): #TODO |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
533 # " There is no unit test for blitting a SRCALPHA source with non-zero |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
534 # alpha to a SRCALPHA destination with non-zero alpha " LL |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
535 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
536 w,h = size = 32,32 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
537 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
538 s = pygame.Surface(size, pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
539 s2 = s.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
540 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
541 s.fill((32,32,32,111)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
542 s2.fill((32,32,32,31)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
543 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
544 s.blit(s2, (0,0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
545 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
546 # TODO: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
547 # what is the correct behaviour ?? should it blend? what algorithm? |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
548 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
549 self.assertEquals(s.get_at((0,0)), (32,32,32,31)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
550 |
|
2305
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
551 def test_blit__SRCALPHA32_to_8(self): |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
552 # Bug: fatal |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
553 # SDL_DisplayConvert segfaults when video is uninitialized. |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
554 target = pygame.Surface((11, 8), 0, 8) |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
555 color = target.get_palette_at(2) |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
556 source = pygame.Surface((1, 1), pygame.SRCALPHA, 32) |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
557 source.set_at((0, 0), color) |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
558 target.blit(source, (0, 0)) |
|
a1c860de4b0b
Bug fix: Surface.blit seqfaulted on Debian for 8 bit target and 32 source with per-pixel alpha when the display was not initialized; add special blit case.
Lenard Lindstrom <len-l@telus.net>
parents:
2141
diff
changeset
|
559 |
|
3127
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
560 def test_image_convert_bug_131(self): |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
561 # Bitbucket bug #131: Unable to Surface.convert(32) some 1-bit images. |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
562 # https://bitbucket.org/pygame/pygame/issue/131/unable-to-surfaceconvert-32-some-1-bit |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
563 pygame.display.init() |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
564 pygame.display.set_mode((640,480)) |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
565 |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
566 im = pygame.image.load(example_path(os.path.join("data", "city.png"))) |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
567 im2 = pygame.image.load(example_path(os.path.join("data", "brick.png"))) |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
568 |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
569 self.assertEquals( im.get_palette(), ((0, 0, 0, 255), (255, 255, 255, 255)) ) |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
570 self.assertEquals( im2.get_palette(), ((0, 0, 0, 255), (0, 0, 0, 255)) ) |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
571 |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
572 self.assertEqual(repr(im.convert(32)), '<Surface(24x24x32 SW)>') |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
573 self.assertEqual(repr(im2.convert(32)), '<Surface(469x137x32 SW)>') |
|
064cd23c4c2f
Adding test for issue #131.
Rene Dudfield <renesd@gmail.com>
parents:
3123
diff
changeset
|
574 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
575 def todo_test_convert(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
576 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
577 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.convert: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
578 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
579 # Surface.convert(Surface): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
580 # Surface.convert(depth, flags=0): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
581 # Surface.convert(masks, flags=0): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
582 # Surface.convert(): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
583 # change the pixel format of an image |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
584 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
585 # Creates a new copy of the Surface with the pixel format changed. The |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
586 # new pixel format can be determined from another existing Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
587 # Otherwise depth, flags, and masks arguments can be used, similar to |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
588 # the pygame.Surface() call. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
589 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
590 # If no arguments are passed the new Surface will have the same pixel |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
591 # format as the display Surface. This is always the fastest format for |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
592 # blitting. It is a good idea to convert all Surfaces before they are |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
593 # blitted many times. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
594 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
595 # The converted Surface will have no pixel alphas. They will be |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
596 # stripped if the original had them. See Surface.convert_alpha() for |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
597 # preserving or creating per-pixel alphas. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
598 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
599 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
600 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
601 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
602 def todo_test_convert_alpha(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
603 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
604 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.convert_alpha: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
605 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
606 # Surface.convert_alpha(Surface): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
607 # Surface.convert_alpha(): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
608 # change the pixel format of an image including per pixel alphas |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
609 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
610 # Creates a new copy of the surface with the desired pixel format. The |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
611 # new surface will be in a format suited for quick blitting to the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
612 # given format with per pixel alpha. If no surface is given, the new |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
613 # surface will be optimized for blitting to the current display. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
614 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
615 # Unlike the Surface.convert() method, the pixel format for the new |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
616 # image will not be exactly the same as the requested source, but it |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
617 # will be optimized for fast alpha blitting to the destination. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
618 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
619 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
620 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
621 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
622 def todo_test_get_abs_offset(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
623 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
624 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_abs_offset: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
625 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
626 # Surface.get_abs_offset(): return (x, y) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
627 # find the absolute position of a child subsurface inside its top level parent |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
628 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
629 # Get the offset position of a child subsurface inside of its top |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
630 # level parent Surface. If the Surface is not a subsurface this will |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
631 # return (0, 0). |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
632 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
633 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
634 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
635 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
636 def todo_test_get_abs_parent(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
637 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
638 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_abs_parent: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
639 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
640 # Surface.get_abs_parent(): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
641 # find the top level parent of a subsurface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
642 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
643 # Returns the parent Surface of a subsurface. If this is not a |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
644 # subsurface then this surface will be returned. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
645 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
646 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
647 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
648 |
|
2137
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
649 def test_get_at(self): |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
650 surf = pygame.Surface((2, 2), 0, 24) |
|
2137
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
651 c00 = pygame.Color(1, 2, 3) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
652 c01 = pygame.Color(5, 10, 15) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
653 c10 = pygame.Color(100, 50, 0) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
654 c11 = pygame.Color(4, 5, 6) |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
655 surf.set_at((0, 0), c00) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
656 surf.set_at((0, 1), c01) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
657 surf.set_at((1, 0), c10) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
658 surf.set_at((1, 1), c11) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
659 c = surf.get_at((0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
660 self.failUnless(isinstance(c, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
661 self.failUnlessEqual(c, c00) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
662 self.failUnlessEqual(surf.get_at((0, 1)), c01) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
663 self.failUnlessEqual(surf.get_at((1, 0)), c10) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
664 self.failUnlessEqual(surf.get_at((1, 1)), c11) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
665 for p in [(-1, 0), (0, -1), (2, 0), (0, 2)]: |
|
2137
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
666 self.failUnlessRaises(IndexError, surf.get_at, p) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
667 |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
668 def test_get_at_mapped(self): |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
669 color = pygame.Color(10, 20, 30) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
670 for bitsize in [8, 16, 24, 32]: |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
671 surf = pygame.Surface((2, 2), 0, bitsize) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
672 surf.fill(color) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
673 pixel = surf.get_at_mapped((0, 0)) |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
674 self.failUnlessEqual(pixel, surf.map_rgb(color), |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
675 "%i != %i, bitsize: %i" % |
|
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
676 (pixel, surf.map_rgb(color), bitsize)) |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
677 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
678 def todo_test_get_bitsize(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
679 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
680 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_bitsize: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
681 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
682 # Surface.get_bitsize(): return int |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
683 # get the bit depth of the Surface pixel format |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
684 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
685 # Returns the number of bits used to represent each pixel. This value |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
686 # may not exactly fill the number of bytes used per pixel. For example |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
687 # a 15 bit Surface still requires a full 2 bytes. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
688 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
689 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
690 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
691 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
692 def todo_test_get_clip(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
693 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
694 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_clip: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
695 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
696 # Surface.get_clip(): return Rect |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
697 # get the current clipping area of the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
698 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
699 # Return a rectangle of the current clipping area. The Surface will |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
700 # always return a valid rectangle that will never be outside the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
701 # bounds of the image. If the Surface has had None set for the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
702 # clipping area, the Surface will return a rectangle with the full |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
703 # area of the Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
704 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
705 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
706 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
707 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
708 def todo_test_get_colorkey(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
709 surf = pygame.surface((2, 2), 0, 24) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
710 self.failUnless(surf.get_colorykey() is None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
711 colorkey = pygame.Color(20, 40, 60) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
712 surf.set_colorkey(colorkey) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
713 ck = surf.get_colorkey() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
714 self.failUnless(isinstance(ck, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
715 self.failUnlessEqual(ck, colorkey) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
716 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
717 def todo_test_get_height(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
718 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
719 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_height: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
720 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
721 # Surface.get_height(): return height |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
722 # get the height of the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
723 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
724 # Return the height of the Surface in pixels. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
725 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
726 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
727 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
728 def todo_test_get_locked(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
729 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
730 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_locked: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
731 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
732 # Surface.get_locked(): return bool |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
733 # test if the Surface is current locked |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
734 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
735 # Returns True when the Surface is locked. It doesn't matter how many |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
736 # times the Surface is locked. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
737 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
738 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
739 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
740 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
741 def todo_test_get_locks(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
742 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
743 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_locks: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
744 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
745 # Surface.get_locks(): return tuple |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
746 # Gets the locks for the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
747 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
748 # Returns the currently existing locks for the Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
749 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
750 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
751 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
752 def todo_test_get_losses(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
753 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
754 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_losses: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
755 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
756 # Surface.get_losses(): return (R, G, B, A) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
757 # the significant bits used to convert between a color and a mapped integer |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
758 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
759 # Return the least significant number of bits stripped from each color |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
760 # in a mapped integer. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
761 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
762 # This value is not needed for normal Pygame usage. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
763 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
764 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
765 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
766 def todo_test_get_masks(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
767 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
768 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_masks: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
769 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
770 # Surface.get_masks(): return (R, G, B, A) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
771 # the bitmasks needed to convert between a color and a mapped integer |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
772 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
773 # Returns the bitmasks used to isolate each color in a mapped integer. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
774 # This value is not needed for normal Pygame usage. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
775 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
776 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
777 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
778 def todo_test_get_offset(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
779 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
780 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_offset: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
781 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
782 # Surface.get_offset(): return (x, y) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
783 # find the position of a child subsurface inside a parent |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
784 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
785 # Get the offset position of a child subsurface inside of a parent. If |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
786 # the Surface is not a subsurface this will return (0, 0). |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
787 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
788 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
789 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
790 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
791 def test_get_palette(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
792 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
793 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
794 palette = [Color(i, i, i) for i in range(256)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
795 pygame.display.set_mode((100, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
796 surf = pygame.Surface((2, 2), 0, 8) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
797 surf.set_palette(palette) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
798 palette2 = surf.get_palette() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
799 r,g,b = palette2[0] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
800 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
801 self.failUnlessEqual(len(palette2), len(palette)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
802 for c2, c in zip(palette2, palette): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
803 self.failUnlessEqual(c2, c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
804 for c in palette2: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
805 self.failUnless(isinstance(c, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
806 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
807 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
808 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
809 def test_get_palette_at(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
810 # See also test_get_palette |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
811 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
812 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
813 pygame.display.set_mode((100, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
814 surf = pygame.Surface((2, 2), 0, 8) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
815 color = pygame.Color(1, 2, 3, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
816 surf.set_palette_at(0, color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
817 color2 = surf.get_palette_at(0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
818 self.failUnless(isinstance(color2, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
819 self.failUnlessEqual(color2, color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
820 self.failUnlessRaises(IndexError, surf.get_palette_at, -1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
821 self.failUnlessRaises(IndexError, surf.get_palette_at, 256) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
822 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
823 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
824 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
825 def todo_test_get_pitch(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
826 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
827 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_pitch: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
828 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
829 # Surface.get_pitch(): return int |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
830 # get the number of bytes used per Surface row |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
831 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
832 # Return the number of bytes separating each row in the Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
833 # Surfaces in video memory are not always linearly packed. Subsurfaces |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
834 # will also have a larger pitch than their real width. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
835 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
836 # This value is not needed for normal Pygame usage. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
837 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
838 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
839 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
840 def todo_test_get_shifts(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
841 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
842 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_shifts: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
843 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
844 # Surface.get_shifts(): return (R, G, B, A) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
845 # the bit shifts needed to convert between a color and a mapped integer |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
846 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
847 # Returns the pixel shifts need to convert between each color and a |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
848 # mapped integer. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
849 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
850 # This value is not needed for normal Pygame usage. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
851 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
852 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
853 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
854 def todo_test_get_size(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
855 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
856 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.get_size: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
857 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
858 # Surface.get_size(): return (width, height) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
859 # get the dimensions of the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
860 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
861 # Return the width and height of the Surface in pixels. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
862 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
863 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
864 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
865 def todo_test_lock(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
866 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
867 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.lock: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
868 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
869 # Surface.lock(): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
870 # lock the Surface memory for pixel access |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
871 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
872 # Lock the pixel data of a Surface for access. On accelerated |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
873 # Surfaces, the pixel data may be stored in volatile video memory or |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
874 # nonlinear compressed forms. When a Surface is locked the pixel |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
875 # memory becomes available to access by regular software. Code that |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
876 # reads or writes pixel values will need the Surface to be locked. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
877 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
878 # Surfaces should not remain locked for more than necessary. A locked |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
879 # Surface can often not be displayed or managed by Pygame. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
880 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
881 # Not all Surfaces require locking. The Surface.mustlock() method can |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
882 # determine if it is actually required. There is no performance |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
883 # penalty for locking and unlocking a Surface that does not need it. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
884 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
885 # All pygame functions will automatically lock and unlock the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
886 # data as needed. If a section of code is going to make calls that |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
887 # will repeatedly lock and unlock the Surface many times, it can be |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
888 # helpful to wrap the block inside a lock and unlock pair. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
889 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
890 # It is safe to nest locking and unlocking calls. The surface will |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
891 # only be unlocked after the final lock is released. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
892 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
893 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
894 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
895 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
896 def test_map_rgb(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
897 color = Color(0, 128, 255, 64) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
898 surf = pygame.Surface((5, 5), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
899 c = surf.map_rgb(color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
900 self.failUnlessEqual(surf.unmap_rgb(c), color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
901 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
902 self.failUnlessEqual(surf.get_at((0, 0)), (0, 0, 0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
903 surf.fill(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
904 self.failUnlessEqual(surf.get_at((0, 0)), color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
905 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
906 surf.fill((0, 0, 0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
907 self.failUnlessEqual(surf.get_at((0, 0)), (0, 0, 0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
908 surf.set_at((0, 0), c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
909 self.failUnlessEqual(surf.get_at((0, 0)), color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
910 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
911 def todo_test_mustlock(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
912 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
913 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.mustlock: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
914 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
915 # Surface.mustlock(): return bool |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
916 # test if the Surface requires locking |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
917 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
918 # Returns True if the Surface is required to be locked to access pixel |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
919 # data. Usually pure software Surfaces do not require locking. This |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
920 # method is rarely needed, since it is safe and quickest to just lock |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
921 # all Surfaces as needed. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
922 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
923 # All pygame functions will automatically lock and unlock the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
924 # data as needed. If a section of code is going to make calls that |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
925 # will repeatedly lock and unlock the Surface many times, it can be |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
926 # helpful to wrap the block inside a lock and unlock pair. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
927 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
928 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
929 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
930 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
931 def todo_test_set_alpha(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
932 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
933 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.set_alpha: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
934 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
935 # Surface.set_alpha(value, flags=0): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
936 # Surface.set_alpha(None): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
937 # set the alpha value for the full Surface image |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
938 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
939 # Set the current alpha value fo r the Surface. When blitting this |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
940 # Surface onto a destination, the pixels will be drawn slightly |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
941 # transparent. The alpha value is an integer from 0 to 255, 0 is fully |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
942 # transparent and 255 is fully opaque. If None is passed for the alpha |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
943 # value, then the Surface alpha will be disabled. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
944 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
945 # This value is different than the per pixel Surface alpha. If the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
946 # Surface format contains per pixel alphas, then this alpha value will |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
947 # be ignored. If the Surface contains per pixel alphas, setting the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
948 # alpha value to None will disable the per pixel transparency. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
949 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
950 # The optional flags argument can be set to pygame.RLEACCEL to provide |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
951 # better performance on non accelerated displays. An RLEACCEL Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
952 # will be slower to modify, but quicker to blit as a source. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
953 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
954 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
955 s = pygame.Surface((1,1), SRCALHPA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
956 s.fill((1, 2, 3, 4)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
957 s.set_alpha(None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
958 self.failUnlessEqual(s.get_at((0, 0)), (1, 2, 3, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
959 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
960 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
961 def test_set_palette(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
962 palette = [pygame.Color(i, i, i) for i in range(256)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
963 palette[10] = tuple(palette[10]) # 4 element tuple |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
964 palette[11] = tuple(palette[11])[0:3] # 3 element tuple |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
965 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
966 surf = pygame.Surface((2, 2), 0, 8) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
967 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
968 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
969 pygame.display.set_mode((100, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
970 surf.set_palette(palette) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
971 for i in range(256): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
972 self.failUnlessEqual(surf.map_rgb(palette[i]), i, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
973 "palette color %i" % (i,)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
974 c = palette[i] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
975 surf.fill(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
976 self.failUnlessEqual(surf.get_at((0, 0)), c, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
977 "palette color %i" % (i,)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
978 for i in range(10): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
979 palette[i] = pygame.Color(255 - i, 0, 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
980 surf.set_palette(palette[0:10]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
981 for i in range(256): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
982 self.failUnlessEqual(surf.map_rgb(palette[i]), i, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
983 "palette color %i" % (i,)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
984 c = palette[i] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
985 surf.fill(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
986 self.failUnlessEqual(surf.get_at((0, 0)), c, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
987 "palette color %i" % (i,)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
988 self.failUnlessRaises(ValueError, surf.set_palette, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
989 [Color(1, 2, 3, 254)]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
990 self.failUnlessRaises(ValueError, surf.set_palette, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
991 (1, 2, 3, 254)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
992 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
993 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
994 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
995 def test_set_palette_at(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
996 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
997 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
998 pygame.display.set_mode((100, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
999 surf = pygame.Surface((2, 2), 0, 8) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1000 original = surf.get_palette_at(10) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1001 replacement = Color(1, 1, 1, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1002 if replacement == original: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1003 replacement = Color(2, 2, 2, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1004 surf.set_palette_at(10, replacement) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1005 self.failUnlessEqual(surf.get_palette_at(10), replacement) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1006 next = tuple(original) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1007 surf.set_palette_at(10, next) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1008 self.failUnlessEqual(surf.get_palette_at(10), next) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1009 next = tuple(original)[0:3] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1010 surf.set_palette_at(10, next) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1011 self.failUnlessEqual(surf.get_palette_at(10), next) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1012 self.failUnlessRaises(IndexError, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1013 surf.set_palette_at, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1014 256, replacement) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1015 self.failUnlessRaises(IndexError, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1016 surf.set_palette_at, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1017 -1, replacement) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1018 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1019 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1020 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1021 def test_subsurface(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1022 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1023 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.subsurface: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1024 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1025 # Surface.subsurface(Rect): return Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1026 # create a new surface that references its parent |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1027 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1028 # Returns a new Surface that shares its pixels with its new parent. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1029 # The new Surface is considered a child of the original. Modifications |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1030 # to either Surface pixels will effect each other. Surface information |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1031 # like clipping area and color keys are unique to each Surface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1032 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1033 # The new Surface will inherit the palette, color key, and alpha |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1034 # settings from its parent. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1035 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1036 # It is possible to have any number of subsurfaces and subsubsurfaces |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1037 # on the parent. It is also possible to subsurface the display Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1038 # if the display mode is not hardware accelerated. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1039 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1040 # See the Surface.get_offset(), Surface.get_parent() to learn more |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1041 # about the state of a subsurface. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1042 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1043 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1044 surf = pygame.Surface((16, 16)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1045 s = surf.subsurface(0,0,1,1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1046 s = surf.subsurface((0,0,1,1)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1047 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1048 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1049 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1050 #s = surf.subsurface((0,0,1,1), 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1051 # This form is not acceptable. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1052 #s = surf.subsurface(0,0,10,10, 1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1053 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1054 self.assertRaises(ValueError, surf.subsurface, (0,0,1,1,666)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1055 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1056 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1057 self.assertEquals(s.get_shifts(), surf.get_shifts()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1058 self.assertEquals(s.get_masks(), surf.get_masks()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1059 self.assertEquals(s.get_losses(), surf.get_losses()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1060 |
|
3004
38cdc3d7302a
Bug fix: Issue 2 - Surface.subsurface segfault
Lenard Lindstrom <len-l@telus.net>
parents:
2305
diff
changeset
|
1061 # Issue 2 at Bitbucket.org/pygame/pygame |
|
38cdc3d7302a
Bug fix: Issue 2 - Surface.subsurface segfault
Lenard Lindstrom <len-l@telus.net>
parents:
2305
diff
changeset
|
1062 surf = pygame.Surface.__new__(pygame.Surface) |
|
38cdc3d7302a
Bug fix: Issue 2 - Surface.subsurface segfault
Lenard Lindstrom <len-l@telus.net>
parents:
2305
diff
changeset
|
1063 self.assertRaises(pygame.error, surf.subsurface, (0, 0, 0, 0)) |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1064 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1065 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1066 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1067 def todo_test_unlock(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1068 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1069 # __doc__ (as of 2008-08-02) for pygame.surface.Surface.unlock: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1070 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1071 # Surface.unlock(): return None |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1072 # unlock the Surface memory from pixel access |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1073 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1074 # Unlock the Surface pixel data after it has been locked. The unlocked |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1075 # Surface can once again be drawn and managed by Pygame. See the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1076 # Surface.lock() documentation for more details. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1077 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1078 # All pygame functions will automatically lock and unlock the Surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1079 # data as needed. If a section of code is going to make calls that |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1080 # will repeatedly lock and unlock the Surface many times, it can be |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1081 # helpful to wrap the block inside a lock and unlock pair. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1082 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1083 # It is safe to nest locking and unlocking calls. The surface will |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1084 # only be unlocked after the final lock is released. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1085 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1086 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1087 self.fail() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1088 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1089 def test_unmap_rgb(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1090 # Special case, 8 bit-per-pixel surface (has a palette). |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1091 surf = pygame.Surface((2, 2), 0, 8) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1092 c = (1, 1, 1) # Unlikely to be in a default palette. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1093 i = 67 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1094 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1095 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1096 pygame.display.set_mode((100, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1097 surf.set_palette_at(i, c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1098 unmapped_c = surf.unmap_rgb(i) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1099 self.failUnlessEqual(unmapped_c, c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1100 # Confirm it is a Color instance |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1101 self.failUnless(isinstance(unmapped_c, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1102 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1103 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1104 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1105 # Remaining, non-pallete, cases. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1106 c = (128, 64, 12, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1107 formats = [(0, 16), (0, 24), (0, 32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1108 (SRCALPHA, 16), (SRCALPHA, 32)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1109 for flags, bitsize in formats: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1110 surf = pygame.Surface((2, 2), flags, bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1111 unmapped_c = surf.unmap_rgb(surf.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1112 surf.fill(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1113 comparison_c = surf.get_at((0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1114 self.failUnlessEqual(unmapped_c, comparison_c, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1115 "%s != %s, flags: %i, bitsize: %i" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1116 (unmapped_c, comparison_c, flags, bitsize)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1117 # Confirm it is a Color instance |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1118 self.failUnless(isinstance(unmapped_c, pygame.Color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1119 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1120 def test_scroll(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1121 scrolls = [(8, 2, 3), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1122 (16, 2, 3), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1123 (24, 2, 3), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1124 (32, 2, 3), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1125 (32, -1, -3), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1126 (32, 0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1127 (32, 11, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1128 (32, 0, 11), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1129 (32, -11, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1130 (32, 0, -11), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1131 (32, -11, 2), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1132 (32, 2, -11)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1133 for bitsize, dx, dy in scrolls: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1134 surf = pygame.Surface((10, 10), 0, bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1135 surf.fill((255, 0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1136 surf.fill((0, 255, 0), (2, 2, 2, 2,)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1137 comp = surf.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1138 comp.blit(surf, (dx, dy)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1139 surf.scroll(dx, dy) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1140 w, h = surf.get_size() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1141 for x in range(w): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1142 for y in range(h): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1143 self.failUnlessEqual(surf.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1144 comp.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1145 "%s != %s, bpp:, %i, x: %i, y: %i" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1146 (surf.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1147 comp.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1148 bitsize, dx, dy)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1149 # Confirm clip rect containment |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1150 surf = pygame.Surface((20, 13), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1151 surf.fill((255, 0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1152 surf.fill((0, 255, 0), (7, 1, 6, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1153 comp = surf.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1154 clip = Rect(3, 1, 8, 14) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1155 surf.set_clip(clip) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1156 comp.set_clip(clip) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1157 comp.blit(surf, (clip.x + 2, clip.y + 3), surf.get_clip()) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1158 surf.scroll(2, 3) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1159 w, h = surf.get_size() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1160 for x in range(w): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1161 for y in range(h): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1162 self.failUnlessEqual(surf.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1163 comp.get_at((x, y))) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1164 # Confirm keyword arguments and per-pixel alpha |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1165 spot_color = (0, 255, 0, 128) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1166 surf = pygame.Surface((4, 4), pygame.SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1167 surf.fill((255, 0, 0, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1168 surf.set_at((1, 1), spot_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1169 surf.scroll(dx=1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1170 self.failUnlessEqual(surf.get_at((2, 1)), spot_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1171 surf.scroll(dy=1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1172 self.failUnlessEqual(surf.get_at((2, 2)), spot_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1173 surf.scroll(dy=1, dx=1) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1174 self.failUnlessEqual(surf.get_at((3, 3)), spot_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1175 surf.scroll(dx=-3, dy=-3) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1176 self.failUnlessEqual(surf.get_at((0, 0)), spot_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1177 |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1178 class SurfaceGetViewTest (unittest.TestCase): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1179 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1180 # These tests requires ctypes. They are disabled if ctypes |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1181 # is not installed. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1182 # |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1183 try: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1184 ArrayInterface |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1185 except NameError: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1186 __tags__ = ('ignore', 'subprocess_ignore') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1187 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1188 lilendian = pygame.get_sdl_byteorder () == pygame.LIL_ENDIAN |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1189 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1190 def _check_interface_2D(self, s): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1191 s_w, s_h = s.get_size() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1192 s_bytesize = s.get_bytesize(); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1193 s_pitch = s.get_pitch() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1194 s_pixels = s._pixels_address |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1195 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1196 # check the array interface structure fields. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1197 v = s.get_view('2') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1198 inter = ArrayInterface(v) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1199 flags = PAI_FORTRAN | PAI_ALIGNED | PAI_NOTSWAPPED | PAI_WRITEABLE |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1200 if (s.get_pitch() == s_w * s_bytesize): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1201 flags |= PAI_CONTIGUOUS |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1202 self.assertEqual(inter.two, 2) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1203 self.assertEqual(inter.nd, 2) |
|
2141
70825b9e9cf3
Remove pixelcopy.make_surface stub function, as it is unnecessary. Fix Python 3 related problems in surfaca and pixelcopy unit tests.
Lenard Lindstrom <len-l@telus.net>
parents:
2139
diff
changeset
|
1204 self.assertEqual(inter.typekind, 'u') |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1205 self.assertEqual(inter.itemsize, s_bytesize) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1206 self.assertEqual(inter.shape[0], s_w) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1207 self.assertEqual(inter.shape[1], s_h) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1208 self.assertEqual(inter.strides[0], s_bytesize) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1209 self.assertEqual(inter.strides[1], s_pitch) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1210 self.assertEqual(inter.flags, flags) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1211 self.assertEqual(inter.data, s_pixels); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1212 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1213 def _check_interface_3D(self, s): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1214 s_w, s_h = s.get_size() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1215 s_bytesize = s.get_bytesize(); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1216 s_pitch = s.get_pitch() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1217 s_pixels = s._pixels_address |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1218 s_shifts = list(s.get_shifts()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1219 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1220 # Check for RGB or BGR surface. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1221 if s_shifts[0:3] == [0, 8, 16]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1222 # RGB |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1223 if self.lilendian: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1224 offset = 0 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1225 step = 1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1226 else: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1227 offset = s_bytesize - 1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1228 step = -1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1229 elif s_shifts[0:3] == [16, 8, 0]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1230 # BGR |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1231 if self.lilendian: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1232 offset = 2 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1233 step = -1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1234 else: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1235 offset = 1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1236 step = 1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1237 else: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1238 return |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1239 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1240 # check the array interface structure fields. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1241 v = s.get_view('3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1242 inter = ArrayInterface(v) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1243 flags = PAI_ALIGNED | PAI_NOTSWAPPED | PAI_WRITEABLE |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1244 self.assertEqual(inter.two, 2) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1245 self.assertEqual(inter.nd, 3) |
|
2141
70825b9e9cf3
Remove pixelcopy.make_surface stub function, as it is unnecessary. Fix Python 3 related problems in surfaca and pixelcopy unit tests.
Lenard Lindstrom <len-l@telus.net>
parents:
2139
diff
changeset
|
1246 self.assertEqual(inter.typekind, 'u') |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1247 self.assertEqual(inter.itemsize, 1) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1248 self.assertEqual(inter.shape[0], s_w) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1249 self.assertEqual(inter.shape[1], s_h) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1250 self.assertEqual(inter.shape[2], 3) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1251 self.assertEqual(inter.strides[0], s_bytesize) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1252 self.assertEqual(inter.strides[1], s_pitch) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1253 self.assertEqual(inter.strides[2], step) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1254 self.assertEqual(inter.flags, flags) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1255 self.assertEqual(inter.data, s_pixels + offset); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1256 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1257 def _check_interface_rgba(self, s, plane): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1258 s_w, s_h = s.get_size() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1259 s_bytesize = s.get_bytesize(); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1260 s_pitch = s.get_pitch() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1261 s_pixels = s._pixels_address |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1262 s_shifts = s.get_shifts() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1263 s_masks = s.get_masks() |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1264 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1265 # Find the color plane position within the pixel. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1266 if not s_masks[plane]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1267 return |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1268 alpha_shift = s_shifts[plane] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1269 offset = alpha_shift // 8 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1270 if not self.lilendian: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1271 offset = s_bytesize - offset - 1 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1272 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1273 # check the array interface structure fields. |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1274 v = s.get_view('rgba'[plane]) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1275 inter = ArrayInterface(v) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1276 flags = PAI_ALIGNED | PAI_NOTSWAPPED | PAI_WRITEABLE | PAI_FORTRAN |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1277 self.assertEqual(inter.two, 2) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1278 self.assertEqual(inter.nd, 2) |
|
2141
70825b9e9cf3
Remove pixelcopy.make_surface stub function, as it is unnecessary. Fix Python 3 related problems in surfaca and pixelcopy unit tests.
Lenard Lindstrom <len-l@telus.net>
parents:
2139
diff
changeset
|
1279 self.assertEqual(inter.typekind, 'u') |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1280 self.assertEqual(inter.itemsize, 1) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1281 self.assertEqual(inter.shape[0], s_w) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1282 self.assertEqual(inter.shape[1], s_h) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1283 self.assertEqual(inter.strides[0], s_bytesize) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1284 self.assertEqual(inter.strides[1], s_pitch) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1285 self.assertEqual(inter.flags, flags) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1286 self.assertEqual(inter.data, s_pixels + offset); |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1287 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1288 def test_array_interface(self): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1289 self._check_interface_2D(pygame.Surface((5, 7), 0, 8)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1290 self._check_interface_2D(pygame.Surface((5, 7), 0, 16)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1291 self._check_interface_2D(pygame.Surface((5, 7), pygame.SRCALPHA, 16)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1292 self._check_interface_3D(pygame.Surface((5, 7), 0, 24)) |
|
2137
e4a059ae7977
add updates to surface.c, etc that were skipped in the merge with the surface_buffer branch
Lenard Lindstrom <len-l@telus.net>
parents:
2134
diff
changeset
|
1293 self._check_interface_3D(pygame.Surface((8, 4), 0, 24)) # No gaps |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1294 self._check_interface_2D(pygame.Surface((5, 7), 0, 32)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1295 self._check_interface_3D(pygame.Surface((5, 7), 0, 32)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1296 self._check_interface_2D(pygame.Surface((5, 7), pygame.SRCALPHA, 32)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1297 self._check_interface_3D(pygame.Surface((5, 7), pygame.SRCALPHA, 32)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1298 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1299 def test_array_interface_masks(self): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1300 """Test non-default color byte orders on 3D views""" |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1301 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1302 sz = (5, 7) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1303 # Reversed RGB byte order |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1304 s = pygame.Surface(sz, 0, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1305 s_masks = list(s.get_masks()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1306 masks = [0xff, 0xff00, 0xff0000] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1307 if s_masks[0:3] == masks or s_masks[0:3] == masks[::-1]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1308 masks = s_masks[2::-1] + s_masks[3:4] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1309 self._check_interface_3D(pygame.Surface(sz, 0, 32, masks)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1310 s = pygame.Surface(sz, 0, 24) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1311 s_masks = list(s.get_masks()) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1312 masks = [0xff, 0xff00, 0xff0000] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1313 if s_masks[0:3] == masks or s_masks[0:3] == masks[::-1]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1314 masks = s_masks[2::-1] + s_masks[3:4] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1315 self._check_interface_3D(pygame.Surface(sz, 0, 24, masks)) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1316 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1317 # Unsupported RGB byte orders |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1318 masks = [0xff00, 0xff0000, 0xff000000, 0] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1319 self.assertRaises(ValueError, |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1320 pygame.Surface(sz, 0, 32, masks).get_view, '3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1321 masks = [0xff00, 0xff, 0xff0000, 0] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1322 self.assertRaises(ValueError, |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1323 pygame.Surface(sz, 0, 24, masks).get_view, '3') |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1324 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1325 def test_array_interface_alpha(self): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1326 for shifts in [[0, 8, 16, 24], [8, 16, 24, 0], |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1327 [24, 16, 8, 0], [16, 8, 0, 24]]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1328 masks = [0xff << s for s in shifts] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1329 s = pygame.Surface((4, 2), pygame.SRCALPHA, 32, masks) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1330 self._check_interface_rgba(s, 3) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1331 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1332 def test_array_interface_rgb(self): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1333 for shifts in [[0, 8, 16, 24], [8, 16, 24, 0], |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1334 [24, 16, 8, 0], [16, 8, 0, 24]]: |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1335 masks = [0xff << s for s in shifts] |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1336 masks[3] = 0 |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1337 for plane in range(3): |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1338 s = pygame.Surface((4, 2), 0, 24) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1339 self._check_interface_rgba(s, plane) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1340 s = pygame.Surface((4, 2), 0, 32) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1341 self._check_interface_rgba(s, plane) |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1342 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1343 class SurfaceBlendTest (unittest.TestCase): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1344 |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1345 _test_palette = [(0, 0, 0, 255), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1346 (10, 30, 60, 0), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1347 (25, 75, 100, 128), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1348 (200, 150, 100, 200), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1349 (0, 100, 200, 255)] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1350 surf_size = (10, 12) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1351 _test_points = [((0, 0), 1), ((4, 5), 1), ((9, 0), 2), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1352 ((5, 5), 2), ((0, 11), 3), ((4, 6), 3), |
|
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1353 ((9, 11), 4), ((5, 6), 4)] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1354 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1355 def _make_surface(self, bitsize, srcalpha=False, palette=None): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1356 if palette is None: |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1357 palette = self._test_palette |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1358 flags = 0 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1359 if srcalpha: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1360 flags |= SRCALPHA |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1361 surf = pygame.Surface(self.surf_size, flags, bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1362 if bitsize == 8: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1363 surf.set_palette([c[:3] for c in palette]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1364 return surf |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1365 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1366 def _fill_surface(self, surf, palette=None): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1367 if palette is None: |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1368 palette = self._test_palette |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1369 surf.fill(palette[1], (0, 0, 5, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1370 surf.fill(palette[2], (5, 0, 5, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1371 surf.fill(palette[3], (0, 6, 5, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1372 surf.fill(palette[4], (5, 6, 5, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1373 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1374 def _make_src_surface(self, bitsize, srcalpha=False, palette=None): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1375 surf = self._make_surface(bitsize, srcalpha, palette) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1376 self._fill_surface(surf, palette) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1377 return surf |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1378 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1379 def _assert_surface(self, surf, palette=None, msg=""): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1380 if palette is None: |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1381 palette = self._test_palette |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1382 if surf.get_bitsize() == 16: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1383 palette = [surf.unmap_rgb(surf.map_rgb(c)) for c in palette] |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1384 for posn, i in self._test_points: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1385 self.failUnlessEqual(surf.get_at(posn), palette[i], |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1386 "%s != %s: flags: %i, bpp: %i, posn: %s%s" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1387 (surf.get_at(posn), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1388 palette[i], surf.get_flags(), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1389 surf.get_bitsize(), posn, msg)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1390 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1391 def setUp(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1392 # Needed for 8 bits-per-pixel color palette surface tests. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1393 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1394 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1395 def tearDown(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1396 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1397 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1398 def test_blit_blend(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1399 sources = [self._make_src_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1400 self._make_src_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1401 self._make_src_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1402 self._make_src_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1403 self._make_src_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1404 self._make_src_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1405 destinations = [self._make_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1406 self._make_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1407 self._make_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1408 self._make_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1409 self._make_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1410 self._make_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1411 blend = [('BLEND_ADD', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1412 lambda a, b: min(a + b, 255)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1413 ('BLEND_SUB', (100, 25, 0, 100), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1414 lambda a, b: max(a - b, 0)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1415 ('BLEND_MULT', (100, 200, 0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1416 lambda a, b: (a * b) // 256), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1417 ('BLEND_MIN', (255, 0, 0, 255), min), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1418 ('BLEND_MAX', (0, 255, 0, 255), max)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1419 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1420 for src in sources: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1421 src_palette = [src.unmap_rgb(src.map_rgb(c)) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1422 for c in self._test_palette] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1423 for dst in destinations: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1424 for blend_name, dst_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1425 dc = dst.unmap_rgb(dst.map_rgb(dst_color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1426 p = [] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1427 for sc in src_palette: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1428 c = [op(dc[i], sc[i]) for i in range(3)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1429 if dst.get_masks()[3]: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1430 c.append(dc[3]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1431 else: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1432 c.append(255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1433 c = dst.unmap_rgb(dst.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1434 p.append(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1435 dst.fill(dst_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1436 dst.blit(src, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1437 (0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1438 special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1439 self._assert_surface(dst, p, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1440 (", op: %s, src bpp: %i" |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1441 ", src flags: %i" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1442 (blend_name, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1443 src.get_bitsize(), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1444 src.get_flags()))) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1445 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1446 src = self._make_src_surface(32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1447 masks = src.get_masks() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1448 dst = pygame.Surface(src.get_size(), 0, 32, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1449 [masks[1], masks[2], masks[0], masks[3]]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1450 for blend_name, dst_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1451 p = [] |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1452 for src_color in self._test_palette: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1453 c = [op(dst_color[i], src_color[i]) for i in range(3)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1454 c.append(255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1455 p.append(tuple(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1456 dst.fill(dst_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1457 dst.blit(src, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1458 (0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1459 special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1460 self._assert_surface(dst, p, ", %s" % blend_name) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1461 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1462 # Blend blits are special cased for 32 to 32 bit surfaces. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1463 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1464 # Confirm that it works when the rgb bytes are not the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1465 # least significant bytes. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1466 pat = self._make_src_surface(32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1467 masks = pat.get_masks() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1468 if min(masks) == intify(0xFF000000): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1469 masks = [longify(m) >> 8 for m in masks] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1470 else: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1471 masks = [intify(m << 8) for m in masks] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1472 src = pygame.Surface(pat.get_size(), 0, 32, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1473 self._fill_surface(src) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1474 dst = pygame.Surface(src.get_size(), 0, 32, masks) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1475 for blend_name, dst_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1476 p = [] |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1477 for src_color in self._test_palette: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1478 c = [op(dst_color[i], src_color[i]) for i in range(3)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1479 c.append(255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1480 p.append(tuple(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1481 dst.fill(dst_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1482 dst.blit(src, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1483 (0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1484 special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1485 self._assert_surface(dst, p, ", %s" % blend_name) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1486 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1487 def test_blit_blend_rgba(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1488 sources = [self._make_src_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1489 self._make_src_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1490 self._make_src_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1491 self._make_src_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1492 self._make_src_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1493 self._make_src_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1494 destinations = [self._make_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1495 self._make_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1496 self._make_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1497 self._make_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1498 self._make_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1499 self._make_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1500 blend = [('BLEND_RGBA_ADD', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1501 lambda a, b: min(a + b, 255)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1502 ('BLEND_RGBA_SUB', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1503 lambda a, b: max(a - b, 0)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1504 ('BLEND_RGBA_MULT', (0, 7, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1505 lambda a, b: (a * b) // 256), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1506 ('BLEND_RGBA_MIN', (0, 255, 0, 255), min), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1507 ('BLEND_RGBA_MAX', (0, 255, 0, 255), max)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1508 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1509 for src in sources: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1510 src_palette = [src.unmap_rgb(src.map_rgb(c)) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1511 for c in self._test_palette] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1512 for dst in destinations: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1513 for blend_name, dst_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1514 dc = dst.unmap_rgb(dst.map_rgb(dst_color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1515 p = [] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1516 for sc in src_palette: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1517 c = [op(dc[i], sc[i]) for i in range(4)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1518 if not dst.get_masks()[3]: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1519 c[3] = 255 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1520 c = dst.unmap_rgb(dst.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1521 p.append(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1522 dst.fill(dst_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1523 dst.blit(src, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1524 (0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1525 special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1526 self._assert_surface(dst, p, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1527 (", op: %s, src bpp: %i" |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1528 ", src flags: %i" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1529 (blend_name, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1530 src.get_bitsize(), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1531 src.get_flags()))) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1532 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1533 # Blend blits are special cased for 32 to 32 bit surfaces |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1534 # with per-pixel alpha. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1535 # |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1536 # Confirm the general case is used instead when the formats differ. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1537 src = self._make_src_surface(32, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1538 masks = src.get_masks() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1539 dst = pygame.Surface(src.get_size(), SRCALPHA, 32, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1540 (masks[1], masks[2], masks[3], masks[0])) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1541 for blend_name, dst_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1542 p = [tuple([op(dst_color[i], src_color[i]) for i in range(4)]) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1543 for src_color in self._test_palette] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1544 dst.fill(dst_color) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1545 dst.blit(src, |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1546 (0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1547 special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1548 self._assert_surface(dst, p, ", %s" % blend_name) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1549 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1550 # Confirm this special case handles subsurfaces. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1551 src = pygame.Surface((8, 10), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1552 dst = pygame.Surface((8, 10), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1553 tst = pygame.Surface((8, 10), SRCALPHA, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1554 src.fill((1, 2, 3, 4)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1555 dst.fill((40, 30, 20, 10)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1556 subsrc = src.subsurface((2, 3, 4, 4)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1557 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1558 subdst = dst.subsurface((2, 3, 4, 4)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1559 try: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1560 subdst.blit(subsrc, (0, 0), special_flags=BLEND_RGBA_ADD) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1561 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1562 del subdst |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1563 finally: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1564 del subsrc |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1565 tst.fill((40, 30, 20, 10)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1566 tst.fill((41, 32, 23, 14), (2, 3, 4, 4)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1567 for x in range(8): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1568 for y in range(10): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1569 self.failUnlessEqual(dst.get_at((x, y)), tst.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1570 "%s != %s at (%i, %i)" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1571 (dst.get_at((x, y)), tst.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1572 x, y)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1573 |
|
3032
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1574 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1575 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1576 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1577 def test_blit_blend_big_rect(self): |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1578 """ test that an oversized rect works ok. |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1579 """ |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1580 color = (1, 2, 3, 255) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1581 area = (1, 1, 30, 30) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1582 s1 = pygame.Surface((4, 4), 0, 32) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1583 r = s1.fill(special_flags=pygame.BLEND_ADD, color=color, rect=area) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1584 self.assertEquals(pygame.Rect((1, 1, 3, 3)), r) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1585 self.assert_(s1.get_at((0, 0)) == (0, 0, 0, 255)) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1586 self.assert_(s1.get_at((1, 1)) == color) |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1587 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1588 |
|
3033
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1589 black = pygame.Color("black") |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1590 red = pygame.Color("red") |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1591 self.assertNotEqual(black, red) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1592 |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1593 surf = pygame.Surface((10, 10), 0, 32) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1594 surf.fill(black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1595 subsurf = surf.subsurface(pygame.Rect(0, 1, 10, 8)) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1596 self.assertEqual(surf.get_at((0, 0)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1597 self.assertEqual(surf.get_at((0, 9)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1598 |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1599 subsurf.fill(red, (0, -1, 10, 1), pygame.BLEND_RGB_ADD) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1600 self.assertEqual(surf.get_at((0, 0)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1601 self.assertEqual(surf.get_at((0, 9)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1602 |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1603 subsurf.fill(red, (0, 8, 10, 1), pygame.BLEND_RGB_ADD) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1604 self.assertEqual(surf.get_at((0, 0)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1605 self.assertEqual(surf.get_at((0, 9)), black) |
|
efe9c4a4e42f
Another fix for #93 where x or y were less than 0.
Rene Dudfield <renesd@gmail.com>
diff
changeset
|
1606 |
|
3032
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1607 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1608 |
|
77c972eb11f0
[BUG] Fixes #93. Where oversized input rect would not work
Rene Dudfield <renesd@gmail.com>
parents:
3004
diff
changeset
|
1609 |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1610 def test_GET_PIXELVALS(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1611 # surface.h GET_PIXELVALS bug regarding whether of not |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1612 # a surface has per-pixel alpha. Looking at the Amask |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1613 # is not enough. The surface's SRCALPHA flag must also |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1614 # be considered. Fix rev. 1923. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1615 src = self._make_surface(32, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1616 src.fill((0, 0, 0, 128)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1617 src.set_alpha(None) # Clear SRCALPHA flag. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1618 dst = self._make_surface(32, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1619 dst.blit(src, (0, 0), special_flags=BLEND_RGBA_ADD) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1620 self.failUnlessEqual(dst.get_at((0, 0)), (0, 0, 0, 255)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1621 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1622 def test_fill_blend(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1623 destinations = [self._make_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1624 self._make_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1625 self._make_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1626 self._make_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1627 self._make_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1628 self._make_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1629 blend = [('BLEND_ADD', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1630 lambda a, b: min(a + b, 255)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1631 ('BLEND_SUB', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1632 lambda a, b: max(a - b, 0)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1633 ('BLEND_MULT', (0, 7, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1634 lambda a, b: (a * b) // 256), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1635 ('BLEND_MIN', (0, 255, 0, 255), min), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1636 ('BLEND_MAX', (0, 255, 0, 255), max)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1637 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1638 for dst in destinations: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1639 dst_palette = [dst.unmap_rgb(dst.map_rgb(c)) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1640 for c in self._test_palette] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1641 for blend_name, fill_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1642 fc = dst.unmap_rgb(dst.map_rgb(fill_color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1643 self._fill_surface(dst) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1644 p = [] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1645 for dc in dst_palette: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1646 c = [op(dc[i], fc[i]) for i in range(3)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1647 if dst.get_masks()[3]: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1648 c.append(dc[3]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1649 else: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1650 c.append(255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1651 c = dst.unmap_rgb(dst.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1652 p.append(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1653 dst.fill(fill_color, special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1654 self._assert_surface(dst, p, ", %s" % blend_name) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1655 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1656 def test_fill_blend_rgba(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1657 destinations = [self._make_surface(8), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1658 self._make_surface(16), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1659 self._make_surface(16, srcalpha=True), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1660 self._make_surface(24), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1661 self._make_surface(32), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1662 self._make_surface(32, srcalpha=True)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1663 blend = [('BLEND_RGBA_ADD', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1664 lambda a, b: min(a + b, 255)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1665 ('BLEND_RGBA_SUB', (0, 25, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1666 lambda a, b: max(a - b, 0)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1667 ('BLEND_RGBA_MULT', (0, 7, 100, 255), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1668 lambda a, b: (a * b) // 256), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1669 ('BLEND_RGBA_MIN', (0, 255, 0, 255), min), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1670 ('BLEND_RGBA_MAX', (0, 255, 0, 255), max)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1671 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1672 for dst in destinations: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1673 dst_palette = [dst.unmap_rgb(dst.map_rgb(c)) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1674 for c in self._test_palette] |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1675 for blend_name, fill_color, op in blend: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1676 fc = dst.unmap_rgb(dst.map_rgb(fill_color)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1677 self._fill_surface(dst) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1678 p = [] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1679 for dc in dst_palette: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1680 c = [op(dc[i], fc[i]) for i in range(4)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1681 if not dst.get_masks()[3]: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1682 c[3] = 255 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1683 c = dst.unmap_rgb(dst.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1684 p.append(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1685 dst.fill(fill_color, special_flags=getattr(pygame, blend_name)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1686 self._assert_surface(dst, p, ", %s" % blend_name) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1687 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1688 class SurfaceSelfBlitTest(unittest.TestCase): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1689 """Blit to self tests. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1690 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1691 This test case is in response to MotherHamster Bugzilla Bug 19. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1692 """ |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1693 |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1694 _test_palette = [(0, 0, 0, 255), |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1695 (255, 0, 0, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1696 (0, 255, 0, 255)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1697 surf_size = (9, 6) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1698 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1699 def _fill_surface(self, surf, palette=None): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1700 if palette is None: |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1701 palette = self._test_palette |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1702 surf.fill(palette[1]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1703 surf.fill(palette[2], (1, 2, 1, 2)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1704 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1705 def _make_surface(self, bitsize, srcalpha=False, palette=None): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1706 if palette is None: |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1707 palette = self._test_palette |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1708 flags = 0 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1709 if srcalpha: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1710 flags |= SRCALPHA |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1711 surf = pygame.Surface(self.surf_size, flags, bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1712 if bitsize == 8: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1713 surf.set_palette([c[:3] for c in palette]) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1714 self._fill_surface(surf, palette) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1715 return surf |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1716 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1717 def _assert_same(self, a, b): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1718 w, h = a.get_size() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1719 for x in range(w): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1720 for y in range(h): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1721 self.failUnlessEqual(a.get_at((x, y)), b.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1722 ("%s != %s, bpp: %i" % |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1723 (a.get_at((x, y)), b.get_at((x, y)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1724 a.get_bitsize()))) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1725 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1726 def setUp(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1727 # Needed for 8 bits-per-pixel color palette surface tests. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1728 pygame.init() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1729 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1730 def tearDown(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1731 pygame.quit() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1732 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1733 def test_overlap_check(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1734 # Ensure overlapping blits are properly detected. There are two |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1735 # places where this is done, within SoftBlitPyGame() in alphablit.c |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1736 # and PySurface_Blit() in surface.c. SoftBlitPyGame should catch the |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1737 # per-pixel alpha surface, PySurface_Blit the colorkey and blanket |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1738 # alpha surface. per-pixel alpha and blanket alpha self blits are |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1739 # not properly handled by SDL 1.2.13, so Pygame does them. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1740 bgc = (0, 0, 0, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1741 rectc_left = (128, 64, 32, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1742 rectc_right = (255, 255, 255, 255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1743 colors = [(255, 255, 255, 255), (128, 64, 32, 255)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1744 overlaps = [(0, 0, 1, 0, (50, 0)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1745 (0, 0, 49, 1, (98, 2)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1746 (0, 0, 49, 49, (98, 98)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1747 (49, 0, 0, 1, (0, 2)), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1748 (49, 0, 0, 49, (0, 98))] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1749 surfs = [pygame.Surface((100, 100), SRCALPHA, 32)] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1750 surf = pygame.Surface((100, 100), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1751 surf.set_alpha(255) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1752 surfs.append(surf) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1753 surf = pygame.Surface((100, 100), 0, 32) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1754 surf.set_colorkey((0, 1, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1755 surfs.append(surf) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1756 for surf in surfs: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1757 for s_x, s_y, d_x, d_y, test_posn in overlaps: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1758 surf.fill(bgc) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1759 surf.fill(rectc_right, (25, 0, 25, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1760 surf.fill(rectc_left, (0, 0, 25, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1761 surf.blit(surf, (d_x, d_y), (s_x, s_y, 50, 50)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1762 self.failUnlessEqual(surf.get_at(test_posn), rectc_right) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1763 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1764 def test_colorkey(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1765 # Check a workaround for an SDL 1.2.13 surface self-blit problem |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1766 # (MotherHamster Bugzilla bug 19). |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1767 pygame.display.set_mode((100, 50)) # Needed for 8bit surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1768 bitsizes = [8, 16, 24, 32] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1769 for bitsize in bitsizes: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1770 surf = self._make_surface(bitsize) |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1771 surf.set_colorkey(self._test_palette[1]) |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1772 surf.blit(surf, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1773 p = [] |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1774 for c in self._test_palette: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1775 c = surf.unmap_rgb(surf.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1776 p.append(c) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1777 p[1] = (p[1][0], p[1][1], p[1][2], 0) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1778 tmp = self._make_surface(32, srcalpha=True, palette=p) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1779 tmp.blit(tmp, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1780 tmp.set_alpha(None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1781 comp = self._make_surface(bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1782 comp.blit(tmp, (0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1783 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1784 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1785 def test_blanket_alpha(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1786 # Check a workaround for an SDL 1.2.13 surface self-blit problem |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1787 # (MotherHamster Bugzilla bug 19). |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1788 pygame.display.set_mode((100, 50)) # Needed for 8bit surface |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1789 bitsizes = [8, 16, 24, 32] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1790 for bitsize in bitsizes: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1791 surf = self._make_surface(bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1792 surf.set_alpha(128) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1793 surf.blit(surf, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1794 p = [] |
|
2131
018779fb04f5
Merge the buffer branch back into trunk.
Lenard Lindstrom <len-l@telus.net>
parents:
2078
diff
changeset
|
1795 for c in self._test_palette: |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1796 c = surf.unmap_rgb(surf.map_rgb(c)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1797 p.append((c[0], c[1], c[2], 128)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1798 tmp = self._make_surface(32, srcalpha=True, palette=p) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1799 tmp.blit(tmp, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1800 tmp.set_alpha(None) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1801 comp = self._make_surface(bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1802 comp.blit(tmp, (0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1803 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1804 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1805 def test_pixel_alpha(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1806 bitsizes = [16, 32] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1807 for bitsize in bitsizes: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1808 surf = self._make_surface(bitsize, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1809 comp = self._make_surface(bitsize, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1810 comp.blit(surf, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1811 surf.blit(surf, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1812 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1813 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1814 def test_blend(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1815 bitsizes = [8, 16, 24, 32] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1816 blends = ['BLEND_ADD', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1817 'BLEND_SUB', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1818 'BLEND_MULT', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1819 'BLEND_MIN', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1820 'BLEND_MAX'] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1821 for bitsize in bitsizes: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1822 surf = self._make_surface(bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1823 comp = self._make_surface(bitsize) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1824 for blend in blends: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1825 self._fill_surface(surf) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1826 self._fill_surface(comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1827 comp.blit(surf, (3, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1828 special_flags=getattr(pygame, blend)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1829 surf.blit(surf, (3, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1830 special_flags=getattr(pygame, blend)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1831 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1832 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1833 def test_blend_rgba(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1834 bitsizes = [16, 32] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1835 blends = ['BLEND_RGBA_ADD', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1836 'BLEND_RGBA_SUB', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1837 'BLEND_RGBA_MULT', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1838 'BLEND_RGBA_MIN', |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1839 'BLEND_RGBA_MAX'] |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1840 for bitsize in bitsizes: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1841 surf = self._make_surface(bitsize, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1842 comp = self._make_surface(bitsize, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1843 for blend in blends: |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1844 self._fill_surface(surf) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1845 self._fill_surface(comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1846 comp.blit(surf, (3, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1847 special_flags=getattr(pygame, blend)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1848 surf.blit(surf, (3, 0), |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1849 special_flags=getattr(pygame, blend)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1850 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1851 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1852 def test_subsurface(self): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1853 # Blitting a surface to its subsurface is allowed. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1854 surf = self._make_surface(32, srcalpha=True) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1855 comp = surf.copy() |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1856 comp.blit(surf, (3, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1857 sub = surf.subsurface((3, 0, 6, 6)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1858 sub.blit(surf, (0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1859 del sub |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1860 self._assert_same(surf, comp) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1861 # Blitting a subsurface to its owner is forbidden because of |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1862 # lock conficts. This limitation allows the overlap check |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1863 # in PySurface_Blit of alphablit.c to be simplified. |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1864 def do_blit(d, s): |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1865 d.blit(s, (0, 0)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1866 sub = surf.subsurface((1, 1, 2, 2)) |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1867 self.failUnlessRaises(pygame.error, do_blit, surf, sub) |
|
3122
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1868 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1869 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1870 class SurfaceFillTest(unittest.TestCase): |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1871 def test_fill(self): |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1872 pygame.init() |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1873 try: |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1874 screen = pygame.display.set_mode((640, 480)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1875 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1876 # Green and blue test pattern |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1877 screen.fill((0, 255, 0), (0, 0, 320, 240)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1878 screen.fill((0, 255, 0), (320, 240, 320, 240)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1879 screen.fill((0, 0, 255), (320, 0, 320, 240)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1880 screen.fill((0, 0, 255), (0, 240, 320, 240)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1881 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1882 # Now apply a clip rect, such that only the left side of the |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1883 # screen should be effected by blit opperations. |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1884 screen.set_clip((0, 0, 320, 480)) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1885 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1886 # Test fills with each special flag, and additionaly without any. |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1887 screen.fill((255, 0, 0, 127), (160, 0, 320, 30), 0) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1888 screen.fill((255, 0, 0, 127), (160, 30, 320, 30), pygame.BLEND_ADD) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1889 screen.fill((0, 127, 127, 127), (160, 60, 320, 30), pygame.BLEND_SUB) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1890 screen.fill((0, 63, 63, 127), (160, 90, 320, 30), pygame.BLEND_MULT) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1891 screen.fill((0, 127, 127, 127), (160, 120, 320, 30), pygame.BLEND_MIN) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1892 screen.fill((127, 0, 0, 127), (160, 150, 320, 30), pygame.BLEND_MAX) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1893 screen.fill((255, 0, 0, 127), (160, 180, 320, 30), pygame.BLEND_RGBA_ADD) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1894 screen.fill((0, 127, 127, 127), (160, 210, 320, 30), pygame.BLEND_RGBA_SUB) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1895 screen.fill((0, 63, 63, 127), (160, 240, 320, 30), pygame.BLEND_RGBA_MULT) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1896 screen.fill((0, 127, 127, 127), (160, 270, 320, 30), pygame.BLEND_RGBA_MIN) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1897 screen.fill((127, 0, 0, 127), (160, 300, 320, 30), pygame.BLEND_RGBA_MAX) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1898 screen.fill((255, 0, 0, 127), (160, 330, 320, 30), pygame.BLEND_RGB_ADD) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1899 screen.fill((0, 127, 127, 127), (160, 360, 320, 30), pygame.BLEND_RGB_SUB) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1900 screen.fill((0, 63, 63, 127), (160, 390, 320, 30), pygame.BLEND_RGB_MULT) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1901 screen.fill((0, 127, 127, 127), (160, 420, 320, 30), pygame.BLEND_RGB_MIN) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1902 screen.fill((255, 0, 0, 127), (160, 450, 320, 30), pygame.BLEND_RGB_MAX) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1903 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1904 # Update the display so we can see the results |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1905 pygame.display.flip() |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1906 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1907 # Compare colors on both sides of window |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1908 y = 5 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1909 while y < 480: |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1910 self.assertEquals(screen.get_at((10, y)), |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1911 screen.get_at((330, 480 - y))) |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1912 y += 10 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1913 |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1914 finally: |
|
55d7ab7a344f
Surface.fill() respects clipping rect or surface bounds with special flags.
Rene Dudfield <renesd@gmail.com>
parents:
3120
diff
changeset
|
1915 pygame.quit() |
|
2078
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1916 |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1917 if __name__ == '__main__': |
|
2d7ce556083b
set svn file properties so svn branch and merge work as intended
Lenard Lindstrom <len-l@telus.net>
parents:
1900
diff
changeset
|
1918 unittest.main() |
