Skip to content

Rust bindings for Intel's ISPC texture compression

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

gwihlidal/intel-tex-rs

intel_tex

========

Latest version Documentation MIT APACHE2

Rust bindings for Intel's ISPC texture compressor.

State of the art texture compression for BC6H, BC7, ETC1, ASTC and BC1/BC3.

ISPC and libclang are not required, unless regenerating the ISPC kernels:

cargo build --features=ispc

For convenience, ISPC binaries for macOS, Linux, and Windows are in the repository (but not the crate).

Additionally, libclang exists in the LLVM installer for Windows, also included. https://github.com/gwihlidal/intel-tex-rs/tree/master/dependencies

Supported compression formats:

  • BC1, BC3 (aka DXT1, DXT5) and BC4, BC5 (aka ATI1N, ATI2N)
  • BC6H (FP16 HDR input)
  • BC7
  • ETC1

Pending compression formats:

  • ASTC (LDR, block sizes up to 8x8)
    • Work in progress

Usage

Add this to your Cargo.toml:

[dependencies]
intel_tex = "0.1.4"

and add this to your crate root:

extern crate intel_tex;

Example

$ cargo run --release --example main

Width is 4096
Height is 4096
ColorType is RGB(8)
Converting RGB -> RGBA
Block count: 1048576
Compressing to BC7...
  Done!
Saving lambertian.dds file

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Contributions are always welcome; please look at the issue tracker to see what known improvements are documented.

Code of Conduct

Contribution to the intel_tex crate is organized under the terms of the Contributor Covenant, the maintainer of intel_tex, @gwihlidal, promises to intervene to uphold that code of conduct.