Files
intellecton/venv/lib/python3.12/site-packages/PIL/__pycache__/DdsImagePlugin.cpython-312.pyc
T

105 lines
24 KiB
Plaintext
Raw Normal View History

Ë
߼jóIăó¸dZddlmZddlZddlZddlmZmZddlm Z ddl
m Z m Z m
Z
ddlmZdd lmZdd
lmZd ZGd d
e«ZGdde«ZGdde«ZGdde«ZGdde«ZGdde«Zej6eZeD]1Zej>Je edej>ťejB«Ś3eD]1Z"e"j>Je ede"j>ťe"jB«Ś3eD]1Z#e#j>Je ede#j>ťe#jB«Ś3eD]1Z$e$j>Je ede$j>ťe$jB«Ś3ejJZ&ejNZ(ejNejRzZ*ejVZ,ejVejRzZ-ej\Z/ej`Z1ejdejfzejhzejjzZ6ejnZ8ejrZ:ejvZ<ejzZ>ejfZ?ejhZ@ejZBej†ejzZEej†ZFeejzZIeej”zZKeejzZMeezZOeej zZQeezZSeZUeZWeZYej´Z[ej¸Z]eZ_eZaeZceZeeZgeZieZkeZmeZoGdde j«ZpGdde «Zrd$d „Zsd%d!„Zte epjěepet«e d"er«e epjěes«e epjěd#«y)&a†
A Pillow plugin 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/
é)Ú annotationsN)ÚIntEnumÚIntFlag)ÚIOé)ÚImageÚ ImageFileÚ ImagePalette)Úi32le)Úo8)Úo32leiDDS có,eZdZdZdZdZdZdZdZdZ dZ
y )
ÚDDSDréééééiiN) Ú__name__Ú
__module__Ú __qualname__ÚCAPSÚHEIGHTÚWIDTHÚPITCHÚ PIXELFORMATÚ MIPMAPCOUNTÚ
LINEARSIZEÚDEPTH©óúU/home/antigravity/intellecton/venv/lib/python3.12/site-packages/PIL/DdsImagePlugin.pyrrs*Ř €DŘ
€FŘ €EŘ €EŘ€KŘ€KŘ€JŘ Er!rcóeZdZdZdZdZy)ÚDDSCAPSrri@N)rrrÚCOMPLEXÚTEXTUREÚMIPMAPr r!r"r$r$*sŘ€GŘ€GŘ
Fr!r$có,eZdZdZdZdZdZdZdZdZ dZ
y )
ÚDDSCAPS2iéiri i@ii N) rrrÚCUBEMAPÚCUBEMAP_POSITIVEXÚCUBEMAP_NEGATIVEXÚCUBEMAP_POSITIVEYÚCUBEMAP_NEGATIVEYÚCUBEMAP_POSITIVEZÚCUBEMAP_NEGATIVEZÚVOLUMEr r!r"r)r)0s0Ř€GŘĐŘĐŘĐŘĐŘĐŘĐŘ
Fr!r)có$eZdZdZdZdZdZdZdZy)ÚDDPFrrré é@rN) rrrÚ ALPHAPIXELSÚALPHAÚFOURCCÚPALETTEINDEXED8ÚRGBÚ LUMINANCEr r!r"r4r4<s Ř€KŘ €EŘ
€FŘ€OŘ
€CŘIr!r4cóđeZdZdZdZdZdZdZdZdZ dZ
d Z d
Z d Z
d Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{yz){Ú DXGI_FORMATrrréréééré é
é é é
éééééééééééééééééér5é!é"é#é$é%é&é'é(é)é*é+é,é-é.é/é0é1é2é3é4é5é6é7é8é9é:é;é<é=é>é?r6éAéBéCéDéEéFéGéHéIéJéKéLéMéNéOéPéQéRéSéTéUéVéWéXéYéZé[é\é]é^é_é`éaébécédéeéfégéhéiéjékéléménéoépéqérésé‚éé„é˝éľN)|rrrÚUNKNOWNÚR32G32B32A32_TYPELESSÚR32G32B32A32_FLOATÚR32G32B32A32_UINTÚR32G32B32A32_SINTÚR32G32B32_TYPELESSÚR32G32B32_FLOATÚR32G32B32_UINTÚR32G32B32_SINTÚR16G16B16A16_TYPELESSÚR16G16B16A16_FLOATÚR16G16B16A16_UNORMÚR16G16B16A16_UINTÚR16G16B16A16_SNORMÚR16G16B16A16_SINTÚR32G32_TYPELESSÚ R32G32_FLOATÚ R32G32_UINTÚ R32G32_SINTÚR32G8X24_TYPELESSÚD32_FLOAT_S8X24_UINTÚR32_FLOAT_X8X24_TYPELESSÚX32_TYPELESS_G8X24_UINTÚR10G10B10A2_TYPELESSÚR10G10B10A2_UNORMÚR10G10B10A2_UINTÚR11G11B10_FLOATÚR8G8B8A8_TYPELESSÚR8G8B8A8_UNORMÚR8G8B8A8_UNORM_SRGBÚ
R8G8B8A8_UINTÚR8G8B8A8_SNORMÚ
R8G8B8A8_SINTÚR16G16_TYPELESSÚ R16G16_FLOATÚ R16G16_UNORMÚ R16G16_UINTÚ R16G16_SNORMÚ R16G16_SINTÚ R32_TYPELESSÚ D32_FLOATÚ R32_FLOATÚR32_UINTÚR32_SINTÚR24G8_TYPELESSÚD24_UNORM_S8_UINTÚR24_UNORM_X8_TYPELESSÚX24_TYPELESS_G8_UINTÚ
R8G8_TYPELESSÚ
R8G8_UNORMÚ R8G8_UINTÚ
R8G8_SNORMÚ R8G8_SINTÚ R16_TYPELESSÚ R16_FLOATÚ D16_UNORMÚ R16_UNORMÚR16_UINTÚ R16_SNORMÚR16_SINTÚ R8_TYPELESSÚR8_UNORMÚR8_UINTÚR8_SNORMÚR8_SINTÚA8_UNORMÚR1_UNORMÚR9G9B9E5_SHAREDEXPÚR8G8_B8G8_UNORMÚG8R8_G8B8_UNORMÚ BC1_TYPELESSÚ BC1_UNORMÚBC1_UNORM_SRGBÚ BC2_TYPELESSÚ BC2_UNORMÚBC2_UNORM_SRGBÚ BC3_TYPELESSÚ BC3_UNORMÚBC3_UNORM_SRGBÚ BC4_TYPELESSÚ BC4_UNORMÚ BC4_SNORMÚ BC5_TYPELESSÚ BC5_UNORMÚ BC5_SNORMÚ B5G6R5_UNORMÚB5G5R5A1_UNORMÚB8G8R8A8_UNORMÚB8G8R8X8_UNORMÚR10G10B10_XR_BIAS_A2_UNORMÚB8G8R8A8_TYPELESSÚB8G8R8A8_UNORM_SRGBÚB8G8R8X8_TYPELESSÚB8G8R8X8_UNORM_SRGBÚ
BC6H_TYPELESSÚ BC6H_UF16Ú BC6H_SF16Ú BC7_TYPELESSÚ BC7_UNORMÚBC7_UNORM_SRGBÚAYUVÚY410ÚY416ÚNV12ÚP010ÚP016Ú
OPAQUE_420ÚYUY2ÚY210ÚY216ÚNV11ÚAI44ÚIA44ÚP8ÚA8P8ÚB4G4R4A4_UNORMÚP208ÚV208ÚV408ÚSAMPLER_FEEDBACK_MIN_MIP_OPAQUEÚ'SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUEr r!r"r>r>Fs~Ř€GŘĐŘĐŘĐŘĐŘĐŘ€OŘ€NŘ€NŘĐŘĐŘĐŘĐŘĐŘĐŘ€OŘ€LŘ€KŘ€KŘĐŘĐŘŘ ĐŘĐŘĐŘĐŘ€OŘĐŘ€NŘĐŘ€MŘ€NŘ€MŘ€OŘ€LŘ€LŘ€KŘ€LŘ€KŘ€LŘ€IŘ€IŘ€HŘ€HŘ€NŘĐŘĐŘĐŘ€MŘ€JŘ€IŘ€JŘ€IŘ€LŘ€IŘ€IŘ€IŘ€HŘ€IŘ€HŘ€KŘ€HŘ€GŘ€HŘ€GŘ€HŘ€HŘĐŘ€OŘ€OŘ€LŘ€IŘ€NŘ€LŘ€IŘ€NŘ€LŘ€IŘ€NŘ€LŘ€IŘ€IŘ€LŘ€IŘ€IŘ€LŘ€NŘ€NŘ€NŘ!#ĐŘĐŘĐŘĐŘĐŘ€MŘ€IŘ€IŘ€LŘ€IŘ€NŘ €DŘ €DŘ €DŘ €DŘ €DŘ €DŘ€JŘ €DŘ €DŘ €DŘ €DŘ €DŘ €DŘ €BŘ €DŘ€NŘ €DŘ €DŘ €DŘ&)Đ#Ř.1Ń+r!r>cóřeZdZdZdZdZdZdZdZdZ dZ
d Z d
Z d Z
d Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9e:d8«Z;e:d9«Z<e:d:«Z=e:d;«Z>e:d<«Z?e:d=«Z@e:d>«ZAe:d?«ZBe:d@«ZCe:dA«ZDe:dB«ZEe:dC«ZFe:dD«ZGe:dE«ZHe:dF«ZIe:dG«ZJe:dH«ZKyI)JÚD3DFMTrrNrOrPrQrRrSrTrUrVrWrXrYr5rZr[r\r]rarbrkrlrmrurvrwrxr6r{r~rrrr…r‡rrr‰étéuévéwéÇsUYVYsRGBGsYUY2sGRGBsDXT1sDXT2sDXT3sDXT4sDXT5sDX10sBC4SsBC4UsBC5SsBC5UsATI1sATI2sMET1N)LrrrÚR8G8B8ÚA8R8G8B8ÚX8R8G8B8ÚR5G6B5ÚX1R5G5B5ÚA1R5G5B5ÚA4R4G4B4ÚR3G3B2ÚA8ÚA8R3G3B2ÚX4R4G4B4Ú A2B10G10R10ÚA8B8G8R8ÚX8B8G8R8ÚG16R16Ú A2R10G10B10Ú A16B16G16R16r#r"ÚL8ÚA8L8ÚA4L4ÚV8U8ÚL6V5U5ÚX8L8V8U8ÚQ8W8V8U8ÚV16U16Ú A2W10V10U10Ú D16_LOCKABLEÚD32ÚD15S1ÚD24S8ÚD24X8ÚD24X4S4ÚD16Ú
D32F_LOCKABLEÚD24FS8Ú D32_LOCKABLEÚ S8_LOCKABLEÚL16Ú
VERTEXDATAÚINDEX16ÚINDEX32Ú Q16W16V16U16ÚR16FÚG16R16FÚ
A16B16G16R16FÚR32FÚG32R32FÚ
A32B32G32R32FÚCxV8U8ÚA1ÚA2B10G10R10_XR_BIASÚ BINARYBUFFERÚi32ÚUYVYÚ R8G8_B8G8rÚ G8R8_G8B8ÚDXT1ÚDXT2ÚDXT3ÚDXT4ÚDXT5ÚDX10ÚBC4SÚBC4UÚBC5SÚBC5UÚATI1ÚATI2Ú MULTI2_ARGB8r r!r"r+r+ÂŘ€GŘ
€FŘ€HŘ€HŘ
€FŘ€HŘ€HŘ€HŘ
€FŘ €BŘ€HŘ€HŘ€KŘ€HŘ€HŘ
€FŘ€KŘ€LŘ
€DŘ €BŘ €BŘ
€DŘ
€DŘ
€DŘ
€FŘ€HŘ€HŘ
€FŘ€KŘ€LŘ
€CŘ €EŘ €EŘ €EŘ€GŘ
€CŘ€MŘ
€FŘ€LŘ€KŘ
€CŘ€JŘ€GŘ€GŘ€LŘ €DŘ€GŘ€MŘ €DŘ€GŘ€MŘ
€FŘ €BŘĐŘ€Lá w‹<€DŮG“ €IŮ w<€DŮG“ €IŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮ w<€DŮw“<Lr!r+ÚDDSD_ÚDDSCAPS_Ú DDSCAPS2_ÚDDPF_có$eZdZdZdZddZddZy)Ú DdsImageFileÚDDSzDirectDraw Surfacecó¦
|jJt|jjd««s
d}t|«t j
d|jjd««\}|dk7rdt
|«ť}t|«|jj|dz
«}t|«dk7rdt|«dť}t|«t j
d |dd
«\}}}||f|_ d |jz}t j
d |d
d «\}} }
t j
d
|d d«t j
d|dd«\} } }
}d}d}| tjzrj| tjzr
d|_d}n d|_d}t j
d|dť|dd|dzz«}tj d|d||f«g|_y| tj$zrB|dk(r d|_ny|dk(r| tjzr d|_nXd|d| ť}t|«| tj&zrNd|_t)j*d|jjd««|_d|j,_nä| tj0zrŔ|dz}|
t2j4k(rd|_d |_d!}n¦|
t2j8k(rd|_d"|_d#}n|
t2j:k(rd|_d$|_d}n\|
t2j<t2j>fvrd|_d%|_d}n(|
t2j@k(rd|_d&|_d'}n|
t2jBt2jDfvrd|_d(|_d'}nĎ|
t2jFk(r|d)z
}t j
d|jjd««\}|jjd«|tHjJtHjLfvrd|_d*|_d!}n6|tHjNtHjPfvrd|_d+|_d#}n|tHjRtHjTfvrd|_d,|_d}nÎ|tHjVtHjXfvrd|_d%|_d}nš|tHjZtHj\fvrd|_d(|_d'}nf|tHj^k(rd|_d&|_d'}nA|tHj`k(rd|_d-|_d.}n|tHjbk(rd|_d/|_d.}nř|tHjdtHjftHjhfvr3d|_d0|_d1}|tHjhk(r¤d2|jjd3<n”|tHjltHjntHjpfvr*d|_|tHjpk(rId2|jjd3<n9d4|ť}ts|«d5t
|
«ť}ts|«d6| ť}ts|«|r+tj d7|||j6f«g|_ytj d8|d|xs |j.«g|_y)9Nrznot a DDS filez<Ié|zUnsupported header size éxzIncomplete header: z bytesz<3IrF©rrrRz<11Ir|ú<4IrŚrÚRGBAr;r?údds_rgbrÚLrJÚLAzUnsupported bitcount z for ÚPr*rirrkrrmÚBC4rqr@ÚBC5rNÚBC1ÚBC2ÚBC3ÚBC6HrAÚBC6HSÚBC7rBg]tŃEÝ?ÚgammazUnimplemented DXGI format zUnimplemented pixel format zUnknown pixel format flags ÚbcnÚraw):ÚfpÚ_acceptÚreadÚ SyntaxErrorÚstructÚunpackÚreprÚOSErrorÚlenÚ_sizeÚsizer4r;r7Ú_moder Ú_TileÚtiler<r:r
r“ÚpaletteÚmoder9r+riÚ pixel_formatrkrmrprsrqrrrtrnr>rrrrrrrrrrÚinforĚÚNotImplementedError)ÚselfÚmsgÚ header_sizeÚheaderÚflagsÚheightÚwidthÚextentsÚpitchÚdepthÚmipmapsÚpfsizeÚpfflagsÚfourccÚbitcountÚrawmodeÚ
mask_countÚmasksÚoffsetÚ dxgi_formats r"Ú_openzDdsImageFile._openNsŘŹw‰wĐt—ww—|| A“Ô" ź t¨TŻW©WŻ\©\¸!«_Ó=‰Ř  Ř,¬T°+Ó->Đ,?Đ@#“,Đ Řk¨A™oÓ.Ü v; بF«  }°FĐ;#“,Đ ä%ź}™}¨U°F¸3¸B°KÓvV_Ś
Ř4ź9™9Ń$ä &§
ˇ
¨e°V¸B¸r°]Ó CŃuŹ
ff -3ŻM©M¸ČČ2ŔÓ,OŃ) Ř
ŘŘ ”T—X‘XŇ ŕś×#
Ř
ŕ"
Ř
ä—MM A j Đ"3°V¸ŔjĐSTÁnŃATĐ5UÓV¨°G¸Č5Đ@QÓSDŚIŘ Ř
”t—~
1Š}Ř