Website : rimsha.abasa.com
backdoor
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
lib
/
python3
/
dist-packages
/
PIL
/
__pycache__
/
Filename :
FtexImagePlugin.cpython-310.pyc
back
Copy
o Z#�a� � @ st d Z ddlZddlmZ ddlmZmZ dZdZdZ G dd� dej�Z d d � Ze�e j e e� e�e j ddg� 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. � N)�BytesIO� )�Image� ImageFiles FTEXc @ s$ e Zd ZdZdZdd� Zdd� ZdS )� FtexImageFile�FTEXzTexture File Format (IW2:EOC)c C s t �d| j�d�� t �d| j�d�� t �d| j�d��| _t �d| j�d��\}}d| _|dks4J �t �d| j�d��\}}| j�|� t �d| j�d��\}| j�|�}|tkrjd| _d d | j ddfg| _ n|t krzdd | j dd fg| _ n tdt|�� ���| j� � t|�| _d S )Nz<I� z<iz<2i� �RGBr �RGBA�bcn)r r r �raw)r r r z$Invalid texture compression format: )�struct�unpack�fp�read�_size�mode�seek�FORMAT_DXT1�size�tile�FORMAT_UNCOMPRESSED� ValueError�repr�closer )�self�mipmap_count�format_count�format�where�mipmap_size�data� r# �5/usr/lib/python3/dist-packages/PIL/FtexImagePlugin.py�_openD s$ zFtexImageFile._openc C s d S )Nr# )r �posr# r# r$ � load_seeka s zFtexImageFile.load_seekN)�__name__� __module__�__qualname__r �format_descriptionr% r'