8 breaking releases

new 0.9.0 Nov 18, 2020
0.7.0 Aug 23, 2020
0.5.0 Jun 1, 2020
0.4.0 Mar 5, 2020
0.3.0 Nov 23, 2019

#45 in Compression

42 downloads per month

MIT/Apache

4MB
80K SLoC

C++ 69K SLoC // 0.2% comments HLSL 4K SLoC // 0.1% comments Visual Studio Project 4K SLoC // 0.0% comments Rust 1K SLoC // 0.1% comments C 545 SLoC // 0.4% comments C# 396 SLoC // 0.1% comments Visual Studio Solution 380 SLoC Batch 65 SLoC // 0.1% comments Prolog 23 SLoC

nvtt_rs

nvtt is a library for converting textures into common compressed formats for use with graphics APIs. See the wiki for more info.

Example

use nvtt_rs::{Compressor, CompressionOptions, Format, InputOptions, OutputOptions};

let input_options = InputOptions::new()?;

let mut output_options = OutputOptions::new()?;
output_options.set_output_location("output.dds");

let mut compression_opts = CompressionOptions::new()?;
compression_opts.set_format(Format::Dxt1);

let mut compressor = Compressor::new()?;
compressor.compress(&compression_opts, &input_options, &output_options)?;

Features

nvtt_image_integration

This feature provides the convenience method InputOptions::set_image, which can be used to configure the InputOptions directly from types provided by the image crate.

Only a limited number of image formats are supported, although this library can provide automatic conversions from a DynamicImage. See the ValidImage type for more information.

serde-serialize

This feature provides serde impls for simple enum and struct types. It is not possible to serialize a Compressor, CompressionOptions, InputOptions or OutputOptions.

Dependencies

Linux/macOS

This crate requires a valid cmake installation and a C++ compiler to build.

Windows

This crate requires a valid installation of Visual Studio.

Notes

This crate does not currently work on Microsoft Windows due to incomplete work on the build system.

Dependencies