Files
old-parkingkoncept/parkingkonceptvenv/lib/python3.7/site-packages/PIL/__pycache__/FtexImagePlugin.cpython-37.pyc

65 lines
3.3 KiB
Plaintext
Raw Normal View History

2019-11-17 12:44:16 +01:00
B
(U<>]<5D> <00>@stdZddlZddlmZddlmZmZdZdZdZ Gdd<08>dej<06>Z
d d
<EFBFBD>Z e<05> e
j e
e <0B>e<05>e
j d d g<02>dS) a 
A Pillow loader for .ftc and .ftu files (FTEX)
Jerome Leclanche <jerome@leclan.ch>
The contents of this file are hereby released in the public domain (CC0)
Full text of the CC0 license:
https://creativecommons.org/publicdomain/zero/1.0/
Independence War 2: Edge Of Chaos - Texture File Format - 16 October 2001
The textures used for 3D objects in Independence War 2: Edge Of Chaos are in a
packed custom format called FTEX. This file format uses file extensions FTC
and FTU.
* FTC files are compressed textures (using standard texture compression).
* FTU files are not compressed.
Texture File Format
The FTC and FTU texture files both use the same format. This
has the following structure:
{header}
{format_directory}
{data}
Where:
{header} = {
u32:magic,
u32:version,
u32:width,
u32:height,
u32:mipmap_count,
u32:format_count
}
* The "magic" number is "FTEX".
* "width" and "height" are the dimensions of the texture.
* "mipmap_count" is the number of mipmaps in the texture.
* "format_count" is the number of texture formats (different versions of the
same texture) in this file.
{format_directory} = format_count * { u32:format, u32:where }
The format value is 0 for DXT1 compressed textures and 1 for 24-bit RGB
uncompressed textures.
The texture data for a format starts at the position "where" in the file.
Each set of texture data in the file has the following structure:
{data} = format_count * { u32:mipmap_size, mipmap_size * { u8 } }
* "mipmap_size" is the number of bytes in that mip level. For compressed
textures this is the size of the texture data compressed with DXT1. For 24 bit
uncompressed textures, this is 3 * width * height. Following this are the image
bytes for that mipmap level.
Note: All data is stored in little-Endian (Intel) byte order.
<EFBFBD>N)<01>BytesIO<49>)<02>Image<67> ImageFilesFTEXc@s$eZdZdZdZdd<04>Zdd<06>ZdS)<08> FtexImageFileZFTEXzTexture File Format (IW2:EOC)cCst<00>d|j<02>d<02><01>t<00>d|j<02>d<02><01>t<00>d|j<02>d<05><01>|_t<00>d|j<02>d<05><01>\}}d|_|dksht<06>t<00>d|j<02>d<05><01>\}}|j<02>|<04>t<00>d|j<02>d<02><01>\}|j<02>|<05>}|tkr<>d|_d d
|j d dfg|_
n,|t kr<>d d
|j d d fg|_
n t d|<00><01>|j<02> <0A>t|<06>|_dS)Nz<I<>z<iz<2i<32><00>RGBrZRGBAZbcn)rrr<00>raw)r rrz&Invalid texture compression format: %r)<0F>struct<63>unpack<63>fp<66>read<61>_size<7A>mode<64>AssertionError<6F>seek<65> FORMAT_DXT1<54>sizeZtile<6C>FORMAT_UNCOMPRESSED<45>
ValueError<EFBFBD>closer)<07>selfZ mipmap_countZ format_count<6E>format<61>whereZ mipmap_size<7A>data<74>r<00>7/tmp/pip-install-pc7tm5jb/Pillow/PIL/FtexImagePlugin.py<70>_openDs$    
zFtexImageFile._opencCsdS)Nr)r<00>posrrr<00> load_seekaszFtexImageFile.load_seekN)<07>__name__<5F>
__module__<EFBFBD> __qualname__r<00>format_descriptionrr rrrrr@srcCs|dd<01>tkS)Nr)<01>MAGIC)<01>prefixrrr<00> _validateesr'z.ftcz.ftu)<0F>__doc__r <00>ior<00>rrr%rrrr'Z register_openrZregister_extensionsrrrr<00><module>4s %