added mesh rendering

This commit is contained in:
2025-05-28 14:36:57 +03:00
parent 60fa98e240
commit b83078553e
53 changed files with 1436 additions and 363 deletions

View File

@@ -1,3 +1,4 @@
#include "god/build.h"
#include "god/c.h"
#include "god/ld.h"
#include "god/utils.h"
@@ -9,6 +10,12 @@ void rapier_build(struct build_data b)
cargo_build.wd = "rapier";
run_add_arg(&cargo_build, "build");
run_add_arg(&cargo_build, "--release");
if (b.kernel == BUILD_KERNEL_LINUX)
{
run_add_arg(&cargo_build, "--target");
run_add_arg(&cargo_build, "x86_64-unknown-linux-gnu");
rapierLib = "rapier/target/x86_64-unknown-linux-gnu/release/librapier_rtt.a";
}
run_run(&cargo_build);
struct run_project cbindgen = run_new("cbindgen");
cbindgen.wd = "rapier";
@@ -17,7 +24,6 @@ void rapier_build(struct build_data b)
run_add_arg(&cbindgen, "--crate");
run_add_arg(&cbindgen, "rapier_rtt");
run_add_arg(&cbindgen, "--output");
run_add_arg(&cbindgen, "../public/physics_gen.h");
run_add_arg(&cbindgen, "../public/physics_gen.h");
run_run(&cbindgen);
rapierLib = "rapier/target/release/librapier_rtt.a";
}

View File

@@ -49,9 +49,9 @@ pub unsafe extern "C" fn px_frame(px_world: *mut funnyphysics, delta:f32) {
let gravity = vector![0.0, 0.0, -9.81];
let mut integration_parameters = IntegrationParameters::default();
integration_parameters.dt=delta;
integration_parameters.min_island_size=1;
integration_parameters.num_solver_iterations=NonZeroUsize::new(4).unwrap();
integration_parameters.num_internal_stabilization_iterations=2;
integration_parameters.min_island_size=256;
integration_parameters.num_solver_iterations=NonZeroUsize::new(8).unwrap();
integration_parameters.num_internal_stabilization_iterations=4;
let physics_hooks = ();
let event_handler = ();
if let Some(px) = px_world.as_mut() {
@@ -107,6 +107,13 @@ pub unsafe extern "C" fn px_staticbody(px_world: *mut funnyphysics, collider: *m
Box::into_raw(Box::new(body))
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn px_fixedbody(px_world: *mut funnyphysics, collider: *mut Collider) {
let c = &mut *collider;
let px = px_world.as_mut().unwrap();
px.collider_set.insert(c.clone());
}
#[repr(C)]
pub struct px_matrix {