summaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-04-23 02:20:44 -0400
committerLLLL Colonq <llll@colonq>2026-04-23 02:20:44 -0400
commit9d2f27b2a9346467a8e5efa8f12e4ea075d3d777 (patch)
tree6ed7f186a95210e2574267aaffedfe4d94b694e9 /crates
parent9f3223129c1405d5858f3740be6e3b1ca731ec67 (diff)
Scripting
Diffstat (limited to 'crates')
-rw-r--r--crates/teleia/build.rs3
-rw-r--r--crates/teleia/src/lib.rs8
-rw-r--r--crates/teleia/src/script.rs5
3 files changed, 16 insertions, 0 deletions
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;
+}