Difference between revisions of "DDS Image"
From XentaxWiki
(→Notes and Comments) |
(→Pitch calculation) |
||
Line 74: | Line 74: | ||
but 16 bytes for other block-compressed formats. <br><br> | but 16 bytes for other block-compressed formats. <br><br> | ||
− | For R8G8_B8G8, G8R8_G8B8, legacy UYVY-packed, and legacy YUY2-packed formats | + | For R8G8_B8G8, G8R8_G8B8, legacy UYVY-packed, and legacy YUY2-packed formats: <br> |
'''((width+1) >> 1) * 4''' <br><br> | '''((width+1) >> 1) * 4''' <br><br> | ||
− | For other formats | + | For other formats: <br> |
'''( width * bits-per-pixel + 7 ) / 8''' <br> | '''( width * bits-per-pixel + 7 ) / 8''' <br> | ||
Revision as of 18:26, 6 January 2021
Contents
DDS
- Format Type : Image
- Endian Order : Little Endian
Format Specifications
// DDS file format // little endian 4 bytes (char) - magic // "DDS " // surface format header 4 bytes (uint32) - header size // "124" 4 bytes - flags // DDSD_CAPS, DDSD_PIXELFORMAT, DDSD_WIDTH and DDSD_HEIGHT flags are required 4 bytes (uint32) - height in pixels 4 bytes (uint32) - width in pixels 4 bytes (uint32) - pitch or linear size // calculated from equation // see notes below for details // pitch can be "0" 4 bytes (uint32) - depth of the volume // can be "0" 4 bytes (uint32) - number of mipmaps 44 bytes - reserved // pixel format structure (32 bytes) 4 bytes (uint32) - structure size 4 bytes - flags 4 bytes (char) - compression type // "DXT1", "DXT2", "DXT3", "DXT4", or "DXT5" 4 bytes (uint32) - RGB bit count // 16, 24, or 32 4 bytes (uint32) - R bit mask 4 bytes (uint32) - G bit mask 4 bytes (uint32) - B bit mask 4 bytes (uint32) - A bit mask // capabilities structure (16 bytes) 4 bytes (uint32) - caps 1 4 bytes (uint32) - caps 2 4 bytes (uint32) - reserved 1 4 bytes (uint32) - reserved 2 4 bytes (uint32) - reserved x bytes - image data / main surface data // additional surfaces (optional) num_of_surfaces * { x bytes - additional surfaces data }
MultiEx BMS Script
Not written yet.
Notes and Comments
None.
Pitch calculation
For block-compressed formats, compute the pitch as:
max( 1, ((width+3)/4) ) * block-size
The block-size is 8 bytes for DXT1, BC1 and BC4 formats
but 16 bytes for other block-compressed formats.
For R8G8_B8G8, G8R8_G8B8, legacy UYVY-packed, and legacy YUY2-packed formats:
((width+1) >> 1) * 4
For other formats:
( width * bits-per-pixel + 7 ) / 8
Games
List of games using this file format:
- Star Stable Online
- Many more...
Compatible Programs
- IrfanView
- GIMP
- Adobe Photoshop
- XnView MP
- Windows Texture Viewer
- paint.NET
- DDS File Viewer