HEX
Server: Apache
System: Linux srv1.prosuiteplus.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: prosuiteplus (1001)
PHP: 8.3.20
Disabled: NONE
Upload Files
File: //usr/lib/python3/dist-packages/PIL/__pycache__/DdsImagePlugin.cpython-38.pyc
U

g�
^Z�@spdZddlZddlmZddlmZmZdZdZdZ	dZ
d	Zd
ZdZ
dZd
Zd	Zd
ZdZdZdZdZd
ZdZdZdZdZdZdZdZdZdZdZ eZ!eZ"eeBZ#e Z$e eBZ%eZ&eZ'ee	Be
BeBZ(e
Z)eZ*eZ+eZ,e	Z-e
Z.eZ/eeBZ0eZ1eeBZ2eeBZ3eeBZ4eeBZ5eeBZ6eeBZ7dZ8dZ9dZ:dZ;dZ<dZ=Gdd�dej�Z>d d!�Z?e�@e>jAe>e?�e�Be>jAd"�dS)#a�
A Pillow loader for .dds files (S3TC-compressed aka DXTC)
Jerome Leclanche <jerome@leclan.ch>

Documentation:
  https://web.archive.org/web/20170802060935/http://oss.sgi.com/projects/ogl-sample/registry/EXT/texture_compression_s3tc.txt

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/
�N)�BytesIO�)�Image�	ImageFileiDDS ���iiii�i@iiii i@i�i � �@iDXT1iDXT3iDXT5�a�b�cc@s$eZdZdZdZdd�Zdd�ZdS)�DdsImageFileZDDSzDirectDraw SurfacecCs\t�d|j�d��\}}|dkr,td|��|j�|d�}t|�dkrXtdt|���t|�}t�d|�d	��\}}}||f|_d
|_t�d|�d	��\}}	}
t�d|�d��t�d
|�d��\}}|�d�}
t�d|�d��\}t�d|�d��}|d@�rhdd�t	|�D�}d}|dk�r.||d7}||d|d|d7}dd|j
d|ddffg|_n�|d}d}|
dk�r�d|_d}n�|
d k�r�d!|_d"}n�|
d#k�r�d$|_d%}n�|
d&k�r6|d'7}t|j�d'��}t�d|�d��\}}|t
tfk�rd(|_d)}n,|tk�r(d(|_d*|jd+<d)}ntd,|��ntd-|
��d.d|j
||fg|_dS)/Nz<IIr�|zUnsupported header size %rr�xzIncomplete header: %s bytesz<3I�ZRGBAz<11I�,z<2Iz<Iz<4I�r
cSs"i|]\}}|ddddg|�qS)�R�G�B�A�)�.0�i�maskrr�4/usr/lib/python3/dist-packages/PIL/DdsImagePlugin.py�
<dictcomp>�sz&DdsImageFile._open.<locals>.<dictcomp>�r	l~i�i���raw)rrrrsDXT1ZDXT1sDXT3ZDXT3rsDXT5ZDXT5�sDX10�ZBC7�g]t�E�?ZgammazUnimplemented DXGI format %dzUnimplemented pixel format %rZbcn)�structZunpack�fp�read�OSError�lenrZ_size�mode�	enumerate�sizeZtileZpixel_format�DXGI_FORMAT_BC7_TYPELESS�DXGI_FORMAT_BC7_UNORM�DXGI_FORMAT_BC7_UNORM_SRGB�info�NotImplementedError)�self�magic�header_sizeZheader_bytes�header�flagsZheight�widthZpitchZdepthZmipmapsZpfsizeZpfflagsZfourccZbitcountZmasksZrawmodeZ
data_start�nZdxt10Zdxgi_formatZ	dimensionrrr�_openjsd









�zDdsImageFile._opencCsdS)Nr)r1�posrrr�	load_seek�szDdsImageFile.load_seekN)�__name__�
__module__�__qualname__�formatZformat_descriptionr8r:rrrrrfs?rcCs|dd�dkS)NrsDDS r)�prefixrrr�	_validate�sr@z.dds)C�__doc__r$�iorrrrZ	DDS_MAGICZ	DDSD_CAPSZDDSD_HEIGHTZ
DDSD_WIDTHZ
DDSD_PITCHZDDSD_PIXELFORMATZDDSD_MIPMAPCOUNTZDDSD_LINEARSIZEZ
DDSD_DEPTHZDDSCAPS_COMPLEXZDDSCAPS_TEXTUREZDDSCAPS_MIPMAPZDDSCAPS2_CUBEMAPZDDSCAPS2_CUBEMAP_POSITIVEXZDDSCAPS2_CUBEMAP_NEGATIVEXZDDSCAPS2_CUBEMAP_POSITIVEYZDDSCAPS2_CUBEMAP_NEGATIVEYZDDSCAPS2_CUBEMAP_POSITIVEZZDDSCAPS2_CUBEMAP_NEGATIVEZZDDSCAPS2_VOLUMEZDDPF_ALPHAPIXELSZ
DDPF_ALPHAZDDPF_FOURCCZDDPF_PALETTEINDEXED8ZDDPF_RGBZDDPF_LUMINANCEZ
DDS_FOURCCZDDS_RGBZDDS_RGBAZ
DDS_LUMINANCEZDDS_LUMINANCEAZ	DDS_ALPHAZDDS_PAL8ZDDS_HEADER_FLAGS_TEXTUREZDDS_HEADER_FLAGS_MIPMAPZDDS_HEADER_FLAGS_VOLUMEZDDS_HEADER_FLAGS_PITCHZDDS_HEADER_FLAGS_LINEARSIZEZ
DDS_HEIGHTZ	DDS_WIDTHZDDS_SURFACE_FLAGS_TEXTUREZDDS_SURFACE_FLAGS_MIPMAPZDDS_SURFACE_FLAGS_CUBEMAPZDDS_CUBEMAP_POSITIVEXZDDS_CUBEMAP_NEGATIVEXZDDS_CUBEMAP_POSITIVEYZDDS_CUBEMAP_NEGATIVEYZDDS_CUBEMAP_POSITIVEZZDDS_CUBEMAP_NEGATIVEZZDXT1_FOURCCZDXT3_FOURCCZDXT5_FOURCCr,r-r.rr@Z
register_openr>Zregister_extensionrrrr�<module>s|G