mod binding;
pub mod blend;
mod derivation;
pub mod encoding;
mod facts;
mod input_fallback;
mod lights;
mod program;
mod program_frame;
pub mod roles;
mod select_variant;
mod shadow_atlas;
mod shadow_choice;
pub mod surface;
pub(crate) use binding::BindingPlace;
pub use binding::{SamplerBinding, ShaderBinding, StageBinding, TextureBinding, TextureSource};
pub use blend::{AlbedoLayer, Freeze, InputLink, LayeredAlbedo, Refusal, read_layered_albedo};
pub use derivation::{DerivedInput, DerivedStage, ShaderDerivation};
pub use encoding::{LaneAffine, NormalEncoding, NormalSpace, ScalarEncoding};
pub use facts::{MaterialPrograms, ProgramFacts, ProgramResourceFacts};
pub use input_fallback::{
FallbackCoordinateCopies, FallbackCoordinates, InputFallback, InputFallbackValue,
bind_fallback_uv_copies, bind_surface_input_fallbacks,
};
pub use lights::{
LightField, LightIndices, LightListPart, LightLookup, LightTable, LightTableKind, LightValue, ListBits,
ListConstant, ListUnknown, LocalShadow, LocalShadows, PackedLightLists, PackedLights, pack_light_lists,
};
pub use program::{LiftedShader, Shader};
pub use program_frame::{ProgramFrame, SpatialKind};
pub use roles::{
Attribute, BufferBinding, BufferSource, BufferTable, ConstantBinding, ConstantRole, FrameParameter,
FrameTexture, InputBinding, InputRole, InstanceLanes, InstanceValue, ItemParameter, KeyPart, LaneStream,
ObjectMatrix, ObjectParameter, Occluded, OutputBinding, OutputRole, OutputUses, ScreenTriangleValue,
SkinPrefix, VariantKey, ViewParameter, bind_output_uses, state_lines,
};
pub use select_variant::{SELECT_VARIANT, SelectVariant};
pub use shadow_atlas::{
LocalShadowAtlas, ShadowDepth, ShadowDepthTerm, ShadowFace, ShadowFaceView, ShadowPlacement,
ShadowedLight,
};
pub use shadow_choice::{ChosenShadows, LocalShadowChoice, ShadowOrder, ShadowView};
pub use surface::Surface;
mod specialise;
pub use specialise::{ShaderSpecialisations, SpecialisationCache, StageSpecialisation};