Cargo Features

[dependencies]
renderling = { version = "0.4.9", default-features = false, features = ["shaders", "gltf", "sdf", "tutorial", "bloom", "array_test", "bloom_downsample_fragment", "bloom_upsample_fragment", "bloom_mix_fragment", "bloom_vertex", "brdf_lut_convolution_fragment", "brdf_lut_convolution_vertex", "generate_mipmap_fragment", "generate_mipmap_vertex", "prefilter_environment_cubemap_fragment", "prefilter_environment_cubemap_vertex", "renderlet_fragment", "renderlet_vertex", "skybox_cubemap_fragment", "skybox_cubemap_vertex", "skybox_equirectangular_fragment", "skybox_vertex", "test_i8_i16_extraction", "test_spirv_atomics", "tonemapping_fragment", "tonemapping_vertex", "tutorial_passthru_fragment", "tutorial_implicit_isosceles_vertex", "tutorial_slabbed_vertices_no_instance", "tutorial_slabbed_vertices", "tutorial_slabbed_renderlet", "wasm", "winit"] }
default = gltf, sdf, shaders, tutorial, winit

These default features are set whenever renderling is added without default-features = false somewhere in the dependency tree.

shaders default = array_test, bloom, brdf_lut_convolution_fragment, brdf_lut_convolution_vertex, generate_mipmap_fragment, generate_mipmap_vertex, prefilter…cubemap_fragment, prefilter…cubemap_vertex, renderlet_fragment, renderlet_vertex, skybox_cubemap_fragment, skybox_cubemap_vertex, skybox_equirectangular_fragment, skybox_vertex, test_i8_i16_extraction, tonemapping_fragment, tonemapping_vertex
gltf default

Enables gltf and serde_json

sdf default
tutorial default = tutorial_implicit_isosceles_vertex, tutorial_passthru_fragment, tutorial_slabbed_renderlet, tutorial_slabbed_vertices, tutorial_slabbed…no_instance

Affects renderling::tutorial

bloom shaders = bloom_downsample_fragment, bloom_mix_fragment, bloom_upsample_fragment, bloom_vertex
array_test shaders

shaders

bloom_downsample_fragment bloom?

Affects bloom::bloom_downsample_fragment, linkage::bloom_downsample_fragment

bloom_upsample_fragment bloom?

Affects bloom::bloom_upsample_fragment, linkage::bloom_upsample_fragment

bloom_mix_fragment bloom?

Affects bloom::bloom_mix_fragment, linkage::bloom_mix_fragment

bloom_vertex bloom?

Affects bloom::bloom_vertex, linkage::bloom_vertex

brdf_lut_convolution_fragment shaders

Affects convolution::brdf_lut_convolution_fragment, linkage::brdf_lut_convolution_fragment

brdf_lut_convolution_vertex shaders

Affects convolution::brdf_lut_convolution_vertex, linkage::brdf_lut_convolution_vertex

generate_mipmap_fragment shaders

Affects convolution::generate_mipmap_fragment, linkage::generate_mipmap_fragment

generate_mipmap_vertex shaders

Affects convolution::generate_mipmap_vertex, linkage::generate_mipmap_vertex

prefilter_environment_cubemap_fragment shaders

Affects convolution::prefilter_environment_cubemap_fragment, linkage::prefilter_environment_cubemap_fragment

prefilter_environment_cubemap_vertex shaders

Affects convolution::prefilter_environment_cubemap_vertex, linkage::prefilter_environment_cubemap_vertex

renderlet_fragment shaders

Affects linkage::renderlet_fragment, stage::renderlet_fragment

renderlet_vertex shaders

Affects linkage::renderlet_vertex, stage::renderlet_vertex

skybox_cubemap_fragment shaders

Affects linkage::skybox_cubemap_fragment, skybox::skybox_cubemap_fragment

skybox_cubemap_vertex shaders

Affects linkage::skybox_cubemap_vertex, skybox::skybox_cubemap_vertex

skybox_equirectangular_fragment shaders

Affects linkage::skybox_equirectangular_fragment, skybox::skybox_equirectangular_fragment

skybox_vertex shaders

Affects linkage::skybox_vertex, skybox::skybox_vertex

test_i8_i16_extraction shaders
test_spirv_atomics

Affects stage::test_atomic_i_increment, stage::test_atomic_load_and_store, stage::test_atomic_exchange, stage::test_atomic_compare_exchange, stage::test_atomic_i_decrement, stage::test_atomic_i_add_sub

tonemapping_fragment shaders

Affects linkage::tonemapping_fragment, tonemapping::tonemapping_fragment

tonemapping_vertex shaders

Affects linkage::tonemapping_vertex, tonemapping::tonemapping_vertex

tutorial_passthru_fragment tutorial

Affects linkage::tutorial_passthru_fragment, tutorial::tutorial_passthru_fragment

tutorial_implicit_isosceles_vertex tutorial

Affects linkage::tutorial_implicit_isosceles_vertex, tutorial::tutorial_implicit_isosceles_vertex

tutorial_slabbed_vertices_no_instance tutorial

Affects linkage::tutorial_slabbed_vertices_no_instance, tutorial::tutorial_slabbed_vertices_no_instance

tutorial_slabbed_vertices tutorial

Affects linkage::tutorial_slabbed_vertices, tutorial::tutorial_slabbed_vertices

tutorial_slabbed_renderlet tutorial

Affects linkage::tutorial_slabbed_renderlet, tutorial::tutorial_slabbed_renderlet

wasm

Enables fragile-send-sync-non-atomic-wasm of wgpu ^22.1.0

wgpu:

Implement Send and Sync on Wasm, but only if atomics are not enabled.

WebGL/WebGPU objects can not be shared between threads. However, it can be useful to artificially mark them as Send and Sync anyways to make it easier to write cross-platform code. This is technically very unsafe in a multithreaded environment, but on a wasm binary compiled without atomics we know we are definitely not in a multithreaded environment.

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

dependencies for CPU and GPU code

winit not spirv default