2 ##########################################################################
4 # Copyright 2008 Tungsten Graphics, Inc., Cedar Park, Texas.
7 # Permission is hereby granted, free of charge, to any person obtaining a
8 # copy of this software and associated documentation files (the
9 # "Software"), to deal in the Software without restriction, including
10 # without limitation the rights to use, copy, modify, merge, publish,
11 # distribute, sub license, and/or sell copies of the Software, and to
12 # permit persons to whom the Software is furnished to do so, subject to
13 # the following conditions:
15 # The above copyright notice and this permission notice (including the
16 # next paragraph) shall be included in all copies or substantial portions
19 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
22 # IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR
23 # ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 ##########################################################################
33 # Enumerate all pixel formats
35 for name
, value
in globals().items():
36 if name
.startswith("PIPE_FORMAT_") and isinstance(value
, int):
40 def save_image(filename
, surface
):
41 pixels
= FloatArray(surface
.height
*surface
.width
*4)
42 surface
.get_tile_rgba(0, 0, surface
.width
, surface
.height
, pixels
)
47 size
=(surface
.width
, surface
.height
),
49 outpixels
= outimage
.load()
50 for y
in range(0, surface
.height
):
51 for x
in range(0, surface
.width
):
52 offset
= (y
*surface
.width
+ x
)*4
53 r
, g
, b
, a
= [int(pixels
[offset
+ ch
]*255) for ch
in range(4)]
54 outpixels
[x
, y
] = r
, g
, b
55 outimage
.save(filename
, "PNG")
65 raise NotImplementedError
68 class TestSuite(Test
):
70 def __init__(self
, tests
= None):
77 def add_test(self
, test
):
78 self
.tests
.append(test
)
81 for test
in self
.tests
:
85 class TextureTemplate
:
87 def __init__(self
, format
=PIPE_FORMAT_R8G8B8A8_UNORM
, width
=1, height
=1, depth
=1, last_level
=0, target
=PIPE_TEXTURE_2D
):
92 self
.last_level
= last_level