)EjedZddlmZddlZddlmZddlmZddlm Z m Z dZ Gd d eZ Gd d e j Z ddZe je je ee je jddgdS)a  A Pillow loader for .ftc and .ftu files (FTEX) Jerome Leclanche 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. ) annotationsN)IntEnum)BytesIO)Image ImageFilesFTEXceZdZdZdZdS)FormatrrN)__name__ __module__ __qualname__DXT1 UNCOMPRESSEDEC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/FtexImagePlugin.pyr r As DLLLrr c&eZdZdZdZd dZd dZd S) FtexImageFileFTEXzTexture File Format (IW2:EOC)returnNonecl|jJt|jdsd}t|t jd|jdt jd|jd|_t jd|jd\}}|dksJt jd|jd\}}|j|t jd|jd\}|j|}|tj kr-d|_ tj dd |j zd d g|_n^|tjkr-d |_ tj d d |j zd d g|_n!dt!|}t#||jt'||_dS)Nznot an FTEX filezrr?)__doc__ __future__rr#enumriorrrrBr rr register_openr2register_extensionsrrrrJs33j#""""" W % % % % % I'% % % P$$$$M(-AAA-.0@AAAAAr