)EjMJdZddlmZddlZddlZddlmZmZddlm Z ddl m Z m Z m Z ddlmZdd lmZdd lmZd ZGd d eZGddeZGddeZGddeZGddeZGddeZejeZeD]%ZejJe edejej!&eD]%Z"e"jJe ede"je"j!&eD]%Z#e#jJe ede#je#j!&eD]%Z$e$jJe ede$je$j!&ej%Z&ej'Z(ej'ej)zZ*ej+Z,ej+ej)zZ-ej.Z/ej0Z1ej2ej3zej4zej5zZ6ej7Z8ej9Z:ej;Zej3Z?ej4Z@ejAZBejCejDzZEejCZFejGejHzZIejGejJzZKejGejLzZMejGejNzZOejGejPzZQejGejRzZSejTZUejVZWejXZYejZZ[ej\Z]ej^Z_ej`ZaejbZcejdZeejfZgejhZiejjZkejlZmejnZoGdde j ZpGdde jqZrd/d(Zsd0d,Zte juepjvepete jwd-ere jxepjvese jyepjvd.dS)1a 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 d S) DDSDriiN) __name__ __module__ __qualname__CAPSHEIGHTWIDTHPITCH PIXELFORMAT MIPMAPCOUNT LINEARSIZEDEPTHDC:\PYTHON\MyICR_Suite\python\Lib\site-packages\PIL/DdsImagePlugin.pyrrs6 D F E EKKJ EEEr!rceZdZdZdZdZdS)DDSCAPSrri@N)rrrCOMPLEXTEXTUREMIPMAPr r!r"r$r$*sGG FFFr!r$c.eZdZdZdZdZdZdZdZdZ dZ d S) DDSCAPS2iiri i@ii N) rrrCUBEMAPCUBEMAP_POSITIVEXCUBEMAP_NEGATIVEXCUBEMAP_POSITIVEYCUBEMAP_NEGATIVEYCUBEMAP_POSITIVEZCUBEMAP_NEGATIVEZVOLUMEr r!r"r)r)0s<G FFFr!r)c&eZdZdZdZdZdZdZdZdS)DDPFrrr @rN) rrr ALPHAPIXELSALPHAFOURCCPALETTEINDEXED8RGB LUMINANCEr r!r"r4r4<s,K E FO CIIIr!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{dzS){ 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>FsGONNOLKK! ONMNMOLLKLKLIIHHNMJIJILIIIHIHKHGHGHHOOLINLINLINLIILIILNNN!#MIILIN D D D D D DJ D D D D D D B DN 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: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:dHZKdIS)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 3w<| t2jkrd|_d"|_d#}n| t2jkrd|_d$|_d}n| t2jt2jfvrd|_d%|_d}n| t2j krd|_d&|_d'}n| t2j!t2j"fvrd|_d(|_d'}n| t2j#kr:|d)z }t jd|jd\}|jd|tHj%tHj&fvrd|_d*|_d!}n|tHj'tHj(fvrd|_d+|_d#}n|tHj)tHj*fvrd|_d,|_d}n|tHj+tHj,fvrd|_d%|_d}nq|tHj-tHj.fvrd|_d(|_d'}nE|tHj/krd|_d&|_d'}n#|tHj0krd|_d-|_d.}n|tHj1krd|_d/|_d.}n|tHj2tHj3tHj4fvr+d|_d0|_d1}|tHj4kr d2|j5d3<n|tHj6tHj7tHj8fvr"d|_|tHj8kr d2|j5d3<nId4|}ts|d5t | }ts|d6| }ts||r&tjd7||||jfg|_dStjd8|d|p|jg|_dS)9Nrznot a DDS filezrrrrrrrrrrrrrrrrinforrrNotImplementedError)selfmsg header_sizeheaderflagsheightwidthextentspitchdepthmipmapspfsizepfflagsfourccbitcountnrawmode mask_countmasksoffset dxgi_formats r"_openzDdsImageFile._openNsw"""tw||A'' #"Cc"" "tTW\\!__== #  @T+->->@@C#,, kAo.. v;;#  ;F ;;;C#,, %}UF3B3K@@vuV_ 49$ & eVBrE] C Cug ffRUm,,,-3M%2,O,O)  TX t +)) #  "  M"3j"3"3"3VBjSTnAT$>! FhFFWFFcll" t+ +` +DJ'+FDGLL4F4FGGDL &DL   t{ "\ + 1_F$$# $*!6;&&# $*!6;&&# $*!FK555  $)!6;&&" $*!FK555" $)!6;&&" !'tTW\\!__!E!E R   ),#"(DJ(-D%AA [%={?T$UUU!'DJ(-D%AA [%={?T$UUU!'DJ(-D%AA [%={?T$UUU!$DJ(-D%AA [%={?T$UUU!&DJ(-D%AA K$999!&DJ(.D%AA K$999!&DJ(.D%AA K$999!&DJ(/D%AA ,).% "(DJ(-D%A"k&@@@-4 '* 1.3% "(DJ"k&EEE-4 '*D{DDC-c222BDLLBB)#...999C%c** *  SwDrrrrr<r;splitrmerger7rrwriteo32 DDS_MAGICrpackrr$r&r _saverr)rrrrrrr codec_namer rgba_mask pixel_flagsrrralphargbas r"rrs w000327333cll I #dj 043C CE2;;==!!A%H>%%n55L9    A" LL k 6 ! !DD V # #DD V # #DDu$$)6 &&)6 &&)6 7e##?C!#,,&$B<AAcll"  H$q(Q. s" 71:  .K7D A@@@ @@@ (K744R4=D<<r+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=sb  #""""" !!!!!!!!,,,,,,,,,,!!!!!!!!!!!!  7g w7y2y2y2y2y2'y2y2y2xI I I I I WI I I Z X  55D 9  GF'DI''4444 ::E : ! ! ! GF+uz++U[9999 ;;E : ! ! ! GF, ,,ek:::: 77E : ! ! ! GF(EJ((%+6666 [ ( 8d& & $"22 J  9t{2TZ?$BRR**"o [ J #O"?W^;#O (8+EE (8+EE (8+EE (8+EE (8+EE (8+EEk k k + =(7"-"A&3#-#-#-#-&3#-(7[ [ [ [ [ 9&[ [ [ |)))))I')))XZVZVZVZVz&&&&L'w???y-000L'///,f55555r!