parse-dds
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/parse-dds package

1.2.1 • Public • Published

parse-dds

unstable

Parses DDS texture headers in Node and the browser.

This was adapted from @toji's wonderful webgl-texture-utils.

Currently this only supports a limited range of common DDS formats:

See test/index.js for an example in Node, or demo/index.js for a WebGL compressed texture example.

Pull requests welcome.

Example

var parse = require('parse-dds')
 
var buffer = new Uint8Array(... DDS file ...)
var dds = parse(buffer)
 
console.log(dds.format)  // 'dxt1'
console.log(dds.shape)   // [ width, height ]
console.log(dds.images)  // [ ... mipmap level data ... ]
 
// get the compressed texture data for gl.compressedTexImage2D
var image = dds.images[0]
var texture = new Uint8Array(buffer, image.offset, image.length)

Install

npm install parse-dds --save-dev

Usage

NPM

dds = parse(arrayBuffer)

Parses an ArrayBuffer and returns the DDS headers for that file.

The returned values:

  • shape an array representing the [ width, height ] of the texture
  • flags the DDS bit flags stored in the file
  • format a string, either 'dxt1', 'dxt3', 'dxt5' or 'rgba32f'
  • images a list of information to extract sub-arrays for each mipmap level
  • cubemap a boolean indicating whether the file contains a cubemap image

Each image has the form:

{
  shape: [ width, height ], // size of this mipmap level
  offset: x,                // byte offset into the input buffer
  length: len,              // length of this mipmap level image data
}

See Also

License

MIT, see LICENSE.md for details.

Package Sidebar

Install

npm i parse-dds

Weekly Downloads

241

Version

1.2.1

License

MIT

Last publish

Collaborators

  • mattdesl
  • vorg