dynamis-character 0.7.0

Query driven kinematic character controller
Documentation
use dynamis_gpu::{GpuContext, GpuRequest, WarmupBudget};
use dynamis_model::PhysicsConfig;
use dynamis_world::World;
use std::sync::OnceLock;

pub const DT: f32 = 1.0 / 60.0;

static GPU: OnceLock<GpuContext> = OnceLock::new();

pub fn gpu() -> GpuContext {
    GPU.get_or_init(|| {
        pollster::block_on(async {
            GpuContext::open(&GpuRequest::default())
                .await
                .expect("test gpu")
        })
    })
    .clone()
}

pub fn new_world(config: PhysicsConfig) -> World {
    let world = World::new(gpu(), config);
    world.warmup(WarmupBudget::All);
    world
}

pub fn gravity_config() -> PhysicsConfig {
    PhysicsConfig {
        damping: 0.0,
        angular_damping: 0.0,
        ..PhysicsConfig::default()
    }
}