K iIdZddlmZddlZddlZddlZddlmZmZddl m Z ddl m Z m Z mZddlmZdd lmZdd lmZd ZGd d eZGddeZGddeZGddeZGddeZGddeZej8eZeD]1Zej@Je!edej@ejD3eD]1Z#e#j@Je!ede#j@e#jD3eD]1Z$e$j@Je!ede$j@e$jD3eD]1Z%e%j@Je!ede%j@e%jD3ejLZ'ejPZ)ejPejTzZ+ejXZ-ejXejTzZ.ej^Z0ejbZ2ejfejhzejjzejlzZ7ejpZ9ejtZ;ejxZ=ej|Z?ejhZ@ejjZAejZCejejzZFejZGejejzZJejejzZLejejzZNejejzZPejejzZRejejzZTejZVejZXejZZejZ\ejZ^ejZ`ejZbejZdejZfejZhejZjejZlejZnejZpGdde jZqGdde jZsd$d Ztd%d!Zue jeqjeqeue jd"ese jeqjete jeqjd#y)&a A Pillow plugin for .dds files (S3TC-compressed aka DXTC) Jerome Leclanche 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)IntEnumIntFlag)IO)Image ImageFile ImagePalette)i32le)o8)o32leiDDS c,eZdZdZdZdZdZdZdZdZ dZ y ) DDSDriiN) __name__ __module__ __qualname__CAPSHEIGHTWIDTHPITCH PIXELFORMAT MIPMAPCOUNT LINEARSIZEDEPTHX/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/PIL/DdsImagePlugin.pyrrs* D F E EKKJ Er!rceZdZdZdZdZy)DDSCAPSrri@N)rrrCOMPLEXTEXTUREMIPMAPr r!r"r$r$+sGG Fr!r$c,eZdZdZdZdZdZdZdZdZ dZ y ) DDSCAPS2iiri i@ii N) rrrCUBEMAPCUBEMAP_POSITIVEXCUBEMAP_NEGATIVEXCUBEMAP_POSITIVEYCUBEMAP_NEGATIVEYCUBEMAP_POSITIVEZCUBEMAP_NEGATIVEZVOLUMEr r!r"r)r)1s0G Fr!r)c$eZdZdZdZdZdZdZdZy)DDPFrrr @rN) rrr ALPHAPIXELSALPHAFOURCCPALETTEINDEXED8RGB LUMINANCEr r!r"r4r4=s K E FO CIr!r4ceZdZdZdZdZdZdZdZdZ 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:Zd=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvduZwdvZxdwZydxZzdyZ{yz){ DXGI_FORMATrrrrr r5!"#$%&'()*+,-./0123456789:;<=>?r6ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsN)|rrrUNKNOWNR32G32B32A32_TYPELESSR32G32B32A32_FLOATR32G32B32A32_UINTR32G32B32A32_SINTR32G32B32_TYPELESSR32G32B32_FLOATR32G32B32_UINTR32G32B32_SINTR16G16B16A16_TYPELESSR16G16B16A16_FLOATR16G16B16A16_UNORMR16G16B16A16_UINTR16G16B16A16_SNORMR16G16B16A16_SINTR32G32_TYPELESS R32G32_FLOAT R32G32_UINT R32G32_SINTR32G8X24_TYPELESSD32_FLOAT_S8X24_UINTR32_FLOAT_X8X24_TYPELESSX32_TYPELESS_G8X24_UINTR10G10B10A2_TYPELESSR10G10B10A2_UNORMR10G10B10A2_UINTR11G11B10_FLOATR8G8B8A8_TYPELESSR8G8B8A8_UNORMR8G8B8A8_UNORM_SRGB R8G8B8A8_UINTR8G8B8A8_SNORM R8G8B8A8_SINTR16G16_TYPELESS R16G16_FLOAT R16G16_UNORM R16G16_UINT R16G16_SNORM R16G16_SINT R32_TYPELESS D32_FLOAT R32_FLOATR32_UINTR32_SINTR24G8_TYPELESSD24_UNORM_S8_UINTR24_UNORM_X8_TYPELESSX24_TYPELESS_G8_UINT R8G8_TYPELESS R8G8_UNORM R8G8_UINT R8G8_SNORM R8G8_SINT R16_TYPELESS R16_FLOAT D16_UNORM R16_UNORMR16_UINT R16_SNORMR16_SINT R8_TYPELESSR8_UNORMR8_UINTR8_SNORMR8_SINTA8_UNORMR1_UNORMR9G9B9E5_SHAREDEXPR8G8_B8G8_UNORMG8R8_G8B8_UNORM BC1_TYPELESS BC1_UNORMBC1_UNORM_SRGB BC2_TYPELESS BC2_UNORMBC2_UNORM_SRGB BC3_TYPELESS BC3_UNORMBC3_UNORM_SRGB BC4_TYPELESS BC4_UNORM BC4_SNORM BC5_TYPELESS BC5_UNORM BC5_SNORM B5G6R5_UNORMB5G5R5A1_UNORMB8G8R8A8_UNORMB8G8R8X8_UNORMR10G10B10_XR_BIAS_A2_UNORMB8G8R8A8_TYPELESSB8G8R8A8_UNORM_SRGBB8G8R8X8_TYPELESSB8G8R8X8_UNORM_SRGB BC6H_TYPELESS BC6H_UF16 BC6H_SF16 BC7_TYPELESS BC7_UNORMBC7_UNORM_SRGBAYUVY410Y416NV12P010P016 OPAQUE_420YUY2Y210Y216NV11AI44IA44P8A8P8B4G4R4A4_UNORMP208V208V408SAMPLER_FEEDBACK_MIN_MIP_OPAQUE'SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUEr r!r"r>r>Gs~GONNOLKK! ONMNMOLLKLKLIIHHNMJIJILIIIHIHKHGHGHHOOLINLINLINLIILIILNNN!#MIILIN D D D D D DJ D D D D D D B DN D D D&)#.1+r!r>ceZdZdZdZdZdZdZdZdZ 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:d8Z;e:d9Z<e:d:Z=e:d;Z>e:d<Z?e:d=Z@e:d>ZAe:d?ZBe:d@ZCe:dAZDe:dBZEe:dCZFe:dDZGe:dEZHe:dFZIe:dGZJe:dHZKyI)JD3DFMTrrNrOrPrQrRrSrTrUrVrWrXrYr5rZr[r\r]rarbrkrlrmrurvrwrxr6r{r~rrrrrrrrrrrrrrrrrrrrtuvwsUYVYsRGBGsYUY2sGRGBsDXT1sDXT2sDXT3sDXT4sDXT5sDX10sBC4SsBC4UsBC5SsBC5UsATI1sATI2sMET1N)LrrrrR8G8B8A8R8G8B8X8R8G8B8R5G6B5X1R5G5B5A1R5G5B5A4R4G4B4R3G3B2A8A8R3G3B2X4R4G4B4 A2B10G10R10A8B8G8R8X8B8G8R8G16R16 A2R10G10B10 A16B16G16R16r#r"L8A8L8A4L4V8U8L6V5U5X8L8V8U8Q8W8V8U8V16U16 A2W10V10U10 D16_LOCKABLED32D15S1D24S8D24X8D24X4S4D16 D32F_LOCKABLED24FS8 D32_LOCKABLE S8_LOCKABLEL16 VERTEXDATAINDEX16INDEX32 Q16W16V16U16R16FG16R16F A16B16G16R16FR32FG32R32F A32B32G32R32FCxV8U8A1A2B10G10R10_XR_BIAS BINARYBUFFERi32UYVY R8G8_B8G8r G8R8_G8B8DXT1DXT2DXT3DXT4DXT5DX10BC4SBC4UBC5SBC5UATI1ATI2 MULTI2_ARGB8r r!r"r+r+sG FHH FHHH F BHHKHH FKL D B B D D D FHH FKL C E E EG CM FLK CJGGL DGM DGM F BL wk(rd|_d"|_d}n\|t6j@t6jBfvrd|_d#|_d}n(|t6jDk(rd|_d$|_d%}n|t6jFt6jHfvrd|_d&|_d%}n|t6jJk(r|d'z }t j d|jjd\}|jjd|tLjNtLjPfvrd|_d(|_d}n6|tLjRtLjTfvrd|_d)|_d!}n|tLjVtLjXfvrd|_d*|_d}n|tLjZtLj\fvrd|_d#|_d}n|tLj^tLj`fvrd|_d&|_d%}nf|tLjbk(rd|_d$|_d%}nA|tLjdk(rd|_d+|_d,}n|tLjfk(rd|_d-|_d,}n|tLjhtLjjtLjlfvr3d|_d.|_d/}|tLjlk(rd0|jnd1<n|tLjptLjrtLjtfvr*d|_|tLjtk(rId0|jnd1<n9d2|}tw|d3t |}tw|d4| }tw||r+t#j$d5|||j:fg|_yt#j$d6|d|xs |j2g|_y)7Nrznot a DDS filezrrrrrrrrrrrrrrrrinforrrNotImplementedError)selfmsg header_size header_bytesheaderflagsheightwidthextentspitchdepthmipmapspfsizepfflagsfourccbitcountnrawmode mask_countmasksoffset dxgi_formats r"_openzDdsImageFile._openOstww||A'"Cc" "tTWW\\!_= # ,T+->,?@C#, ww||K!O4 |  #'L(9':&AC#, L)%}}UFKKODvuV_ 499$ & eV[[_ Eug ffkk"o.-3MM%R,Q)  TXX )))#  "  MMAj\"3V[[a5PQE"GQ5@QRSDI  t~~ %1}  RGd.>.>$>! -hZuWIFcl" t++ +DJ'++FDGGLL4FGDL &DLL  t{{ " 1_F$# $*!6;;&# $*!6;;&# $*!FKK55  $)!6;;&" $*!FKK55" $)!6;;&" !'tTWW\\!_!E R )),,#"(DJ(-D%A [%=%={?T?T$UU!'DJ(-D%A [%=%={?T?T$UU!'DJ(-D%A [%=%={?T?T$UU!$DJ(-D%A [%=%={?T?T$UU!&DJ(-D%A K$9$99!&DJ(.D%A K$9$99!&DJ(.D%A K$9$99!&DJ(/D%A ,,))..% "(DJ(-D%A"k&@&@@-4 '* 11..33% "(DJ"k&E&EE-4 '*6{mDC-c223DL>B)#../y9C%c* * wDrrrrr<r;splitrmerger7rrwriteo32 DDS_MAGICrpackrr$r&r _saverr)imrfilenamerrrr codec_namer rgba_mask pixel_flagsrrralphargbas r"rr si ww00"277)73cl II #djj 043C3C CE2;;=!A%H>>%%n5L   A" kk 6 ![[FD V #[[FD V #[[FD[[Fu$)66 &)66 &)66 77e#?C!#,&2<.Acl"  H$q(Q. s" 771: ..K77D@ @ ((K774R4=Dr+modulesrmoduleitemnamesetattrritem1item2item3r9 DDS_FOURCCr;DDS_RGBr7DDS_RGBAr< DDS_LUMINANCEDDS_LUMINANCEAr8 DDS_ALPHAr:DDS_PAL8rrrrDDS_HEADER_FLAGS_TEXTURErDDS_HEADER_FLAGS_MIPMAPrDDS_HEADER_FLAGS_VOLUMErDDS_HEADER_FLAGS_PITCHrDDS_HEADER_FLAGS_LINEARSIZE DDS_HEIGHT DDS_WIDTHr&DDS_SURFACE_FLAGS_TEXTUREr%r'DDS_SURFACE_FLAGS_MIPMAPDDS_SURFACE_FLAGS_CUBEMAPr+r,DDS_CUBEMAP_POSITIVEXr-DDS_CUBEMAP_NEGATIVEXr.DDS_CUBEMAP_POSITIVEYr/DDS_CUBEMAP_NEGATIVEYr0DDS_CUBEMAP_POSITIVEZr1DDS_CUBEMAP_NEGATIVEZri DXT1_FOURCCrk DXT3_FOURCCrm DXT5_FOURCCrDXGI_FORMAT_R8G8B8A8_TYPELESSrDXGI_FORMAT_R8G8B8A8_UNORMrDXGI_FORMAT_R8G8B8A8_UNORM_SRGBrDXGI_FORMAT_BC5_TYPELESSrDXGI_FORMAT_BC5_UNORMrDXGI_FORMAT_BC5_SNORMrDXGI_FORMAT_BC6H_UF16rDXGI_FORMAT_BC6H_SF16rDXGI_FORMAT_BC7_TYPELESSrDXGI_FORMAT_BC7_UNORMrDXGI_FORMAT_BC7_UNORM_SRGBr{ PyDecoderrrr register_openrregister_decoder register_saveregister_extensionr r!r"r:s # !,,!!  7g w7y2'y2xI WI Z X  5D 99   FeDII;'45:E :: !! ! Fhuzzl+U[[9:;E :: !! ! Fi |,ekk:;7E :: !! ! FeEJJ<(%++67[[ (( 88d&& & $"2"22 JJ   99t{{2TZZ?$BRBRR****"oo [[ JJ #OO"??W^^;#OO ((8+E+EE ((8+E+EE ((8+E+EE ((8+E+EE ((8+E+EE ((8+E+EEkk kk kk + = =(77"-"A"A&33#--#--#--#--&33#--(77[ 9&&[ | I'' FZVz&L''w?y-0L''/,,f5r!