diff options
author | Anuj Phogat <[email protected]> | 2016-02-10 16:41:23 -0800 |
---|---|---|
committer | Anuj Phogat <[email protected]> | 2016-05-03 03:43:17 -0700 |
commit | 6abb1b4984bba5560baccd53e68237ab86822ec0 (patch) | |
tree | 797a62da19ad6f1d9bf4070a55f3d1a68ed33af4 /src/mesa/main/format_parser.py | |
parent | c4a0cd4662efe32e95c3f1e68b2f058b60bdcb52 (diff) |
mesa: Add block depth field in struct gl_format_info
This will be later required for 3D ASTC formats.
Signed-off-by: Anuj Phogat <[email protected]>
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/main/format_parser.py')
-rwxr-xr-x | src/mesa/main/format_parser.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/mesa/main/format_parser.py b/src/mesa/main/format_parser.py index a29f20754a8..6cd2fbca0e8 100755 --- a/src/mesa/main/format_parser.py +++ b/src/mesa/main/format_parser.py @@ -227,7 +227,7 @@ class Swizzle: class Format: """Describes a pixel format.""" - def __init__(self, name, layout, block_width, block_height, channels, swizzle, colorspace): + def __init__(self, name, layout, block_width, block_height, block_depth, channels, swizzle, colorspace): """Constructs a Format from some metadata and a list of channels. The channel objects must be unique to this Format and should not be @@ -241,6 +241,7 @@ class Format: layout -- One of 'array', 'packed' 'other', or a compressed layout block_width -- The block width if the format is compressed, 1 otherwise block_height -- The block height if the format is compressed, 1 otherwise + block_depth -- The block depth if the format is compressed, 1 otherwise channels -- A list of Channel objects swizzle -- A Swizzle from this format to rgba colorspace -- one of 'rgb', 'srgb', 'yuv', or 'zs' @@ -249,6 +250,7 @@ class Format: self.layout = layout self.block_width = block_width self.block_height = block_height + self.block_depth = block_depth self.channels = channels assert isinstance(swizzle, Swizzle) self.swizzle = swizzle @@ -361,7 +363,7 @@ class Format: def is_compressed(self): """Returns true if this is a compressed format.""" - return self.block_width != 1 or self.block_height != 1 + return self.block_width != 1 or self.block_height != 1 or self.block_depth != 1 def is_int(self): """Returns true if this format is an integer format. @@ -555,12 +557,13 @@ def parse(filename): layout = fields[1] block_width = int(fields[2]) block_height = int(fields[3]) - colorspace = fields[9] + block_depth = int(fields[4]) + colorspace = fields[10] try: - swizzle = Swizzle(fields[8]) + swizzle = Swizzle(fields[9]) except: sys.exit("error parsing swizzle for format " + name) - channels = _parse_channels(fields[4:8], layout, colorspace, swizzle) + channels = _parse_channels(fields[5:9], layout, colorspace, swizzle) - yield Format(name, layout, block_width, block_height, channels, swizzle, colorspace) + yield Format(name, layout, block_width, block_height, block_depth, channels, swizzle, colorspace) |