From 9d2f27b2a9346467a8e5efa8f12e4ea075d3d777 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Thu, 23 Apr 2026 02:20:44 -0400 Subject: Scripting --- crates/teleia/build.rs | 3 +++ crates/teleia/src/lib.rs | 8 ++++++++ crates/teleia/src/script.rs | 5 +++++ 3 files changed, 16 insertions(+) create mode 100644 crates/teleia/build.rs create mode 100644 crates/teleia/src/script.rs (limited to 'crates') diff --git a/crates/teleia/build.rs b/crates/teleia/build.rs new file mode 100644 index 0000000..0233021 --- /dev/null +++ b/crates/teleia/build.rs @@ -0,0 +1,3 @@ +fn main() { + println!("cargo::rustc-link-lib=static=colonq-pit"); +} diff --git a/crates/teleia/src/lib.rs b/crates/teleia/src/lib.rs index 8e991ef..894756d 100644 --- a/crates/teleia/src/lib.rs +++ b/crates/teleia/src/lib.rs @@ -10,6 +10,7 @@ pub mod mesh; pub mod texture; pub mod scene; pub mod font; +pub mod script; pub mod shadow; pub mod renderer; pub mod audio; @@ -72,6 +73,13 @@ where log::info!("hello computer, starting up..."); + unsafe { + let mut out = vec![' ' as u8; 1024]; + let buf = std::alloc::alloc(std::alloc::Layout::from_size_align(256 * 1024 * 1024, 64).unwrap()); + log::info!("pit_runtime_test: {:?}", crate::script::pit_runtime_test(out.as_mut_ptr(), out.len() as i64, buf, 256 * 1024 * 1024)); + log::info!("out: {}", String::from_utf8(out).unwrap()); + } + let (rglfw, rwindow, gl, events) = { use glfw::fail_on_errors; let mut glfw = glfw::init(glfw::fail_on_errors!()).expect("failed to initialize GLFW"); diff --git a/crates/teleia/src/script.rs b/crates/teleia/src/script.rs new file mode 100644 index 0000000..0282f65 --- /dev/null +++ b/crates/teleia/src/script.rs @@ -0,0 +1,5 @@ +use std::ffi::c_int; + +unsafe extern "C" { + pub fn pit_runtime_test(out: *mut u8, out_len: i64, buf: *mut u8, len: i64) -> c_int; +} -- cgit v1.2.3