bevy/docs/cargo_features.md
Robert Swain 0529f633f9 KTX2/DDS/.basis compressed texture support (#3884)
# Objective

- Support compressed textures including 'universal' formats (ETC1S, UASTC) and transcoding of them to 
- Support `.dds`, `.ktx2`, and `.basis` files

## Solution

- Fixes https://github.com/bevyengine/bevy/issues/3608 Look there for more details.
- Note that the functionality is all enabled through non-default features. If it is desirable to enable some by default, I can do that.
- The `basis-universal` crate, used for `.basis` file support and for transcoding, is built on bindings against a C++ library. It's not feasible to rewrite in Rust in a short amount of time. There are no Rust alternatives of which I am aware and it's specialised code. In its current state it doesn't support the wasm target, but I don't know for sure. However, it is possible to build the upstream C++ library with emscripten, so there is perhaps a way to add support for web too with some shenanigans.
- There's no support for transcoding from BasisLZ/ETC1S in KTX2 files as it was quite non-trivial to implement and didn't feel important given people could use `.basis` files for ETC1S.
2022-03-15 22:26:46 +00:00

2.4 KiB

Cargo Features

Default Features

feature name description
bevy_audio Audio support. Support for all audio formats depends on this.
bevy_gilrs Adds gamepad support.
bevy_gltf glTF support.
bevy_winit GUI support.
render The render pipeline and all render related plugins.
png PNG picture format support.
hdr HDR support.
vorbis Ogg Vorbis audio format support.
x11 Make GUI applications use X11 protocol. You could enable wayland feature to override this.
filesystem_watcher Enable watching the file system for asset hot reload

Optional Features

feature name description
bevy_dynamic_plugin Plugin for dynamic loading (using libloading).
dynamic Forces bevy to be dynamically linked, which improves iterative compile times.
trace Enables system tracing.
trace_chrome Enables tracing-chrome as bevy_log output. This allows you to visualize system execution.
trace_tracy Enables Tracy as bevy_log output. This allows Tracy to connect to and capture profiling data as well as visualize system execution in real-time, present statistics about system execution times, and more.
wgpu_trace For tracing wgpu.
dds DDS picture format support.
ktx2 KTX2 picture format support.
zlib KTX2 Zlib supercompression support.
zstd KTX2 Zstandard supercompression support.
basis-universal Basis Universal picture format support and, if the ktx2 feature is enabled, also KTX2 UASTC picture format transcoding support.
tga TGA picture format support.
jpeg JPEG picture format support.
bmp BMP picture format support.
flac FLAC audio format support. It's included in bevy_audio feature.
mp3 MP3 audio format support.
wav WAV audio format support.
serialize Enables serialization of bevy_input types.
wayland Enable this to use Wayland display server protocol other than X11.
subpixel_glyph_atlas Enable this to cache glyphs using subpixel accuracy. This increases texture memory usage as each position requires a separate sprite in the glyph atlas, but provide more accurate character spacing.
bevy_ci_testing Used for running examples in CI.
debug_asset_server Enabling this turns on "hot reloading" of built in assets, such as shaders.