Expand description
DDS texture-container support. DDS (DirectDraw Surface) reader and writer.
This module provides container-level support for KotOR-era DDS files.
Parsing and serialization are backed by ddsfile, but the public API is kept
focused on D3D9-era headers and formats that KotOR actually uses.
§KotOR Notes
- Reader support includes:
- standard
DDScontainers (D3D9-era headers; canonical compressed formats are DXT1/DXT5). - a
CResDDSprefix-header container variant used by vanilla resource paths.
- standard
- Canonical KotOR compressed paths currently target DXT1 and DXT5.
- Writer support currently emits standard
DDScontainers only.
§Format Layout
Standard DDS:
+------------------------------+ 0x0000
| Magic "DDS " (4 bytes) |
+------------------------------+
| Header (124 bytes) |
+------------------------------+
| Surface payload bytes |
+------------------------------+
CResDDS prefix-header variant:
+------------------------------+ 0x0000
| Prefix metadata (20 bytes) |
+------------------------------+
| Surface payload bytes |
+------------------------------+
Prefix metadata layout (`0x14` bytes):
- `+0x00` `u32`: width
- `+0x04` `u32`: height
- `+0x08` `u8`: bytes-per-pixel code
- `+0x09..+0x0B`: reserved gap bytes
- `+0x0C` `u32`: base-level payload size
- `+0x10` `f32`: alpha-mean metadata floatStructs§
- CRes
DdsHeader - Parsed
CResDDSprefix metadata header. - Dds
- In-memory DDS container.
Enums§
- DdsBinary
Error - Errors produced while parsing or serializing DDS data.
- DdsSource
Flavor - DDS source container flavor.
Functions§
- read_
dds - Reads DDS data from a reader.
- read_
dds_ from_ bytes - Reads DDS data from bytes.
- write_
dds - Writes DDS data to a writer.
- write_
dds_ to_ vec - Serializes DDS data to a byte vector.
Type Aliases§
- DdsCaps2
- DDS caps2 bitflag re-export.
- DdsD3d
Format - DDS D3D-format enum re-export.
- DdsNew
D3dParams - Constructor parameter set for D3D-style DDS creation.