summaryrefslogtreecommitdiff
path: root/bindgen
diff options
context:
space:
mode:
Diffstat (limited to 'bindgen')
-rw-r--r--bindgen/ocaml/README.md1
-rw-r--r--bindgen/odin/README.md1
-rw-r--r--bindgen/rust/Cargo.lock26
-rw-r--r--bindgen/rust/Cargo.toml15
-rw-r--r--bindgen/rust/celeritas-sys/Cargo.lock1035
-rw-r--r--bindgen/rust/celeritas-sys/Cargo.toml9
-rw-r--r--bindgen/rust/celeritas-sys/README.md (renamed from bindgen/rust/README.md)0
-rw-r--r--bindgen/rust/celeritas-sys/build.rs (renamed from bindgen/rust/build.rs)40
-rw-r--r--bindgen/rust/celeritas-sys/examples/glfw.rs224
-rw-r--r--bindgen/rust/celeritas-sys/examples/gui_test.rs (renamed from bindgen/rust/examples/gui_test.rs)0
-rw-r--r--bindgen/rust/celeritas-sys/examples/main_loop.rs (renamed from bindgen/rust/examples/main_loop.rs)1
-rw-r--r--bindgen/rust/celeritas-sys/src/egui_utils.rs (renamed from bindgen/rust/src/egui_utils.rs)0
-rw-r--r--bindgen/rust/celeritas-sys/src/lib.rs (renamed from bindgen/rust/src/lib.rs)0
-rw-r--r--bindgen/rust/examples/glfw.rs225
-rw-r--r--bindgen/rust/src/main.rs3
15 files changed, 1314 insertions, 266 deletions
diff --git a/bindgen/ocaml/README.md b/bindgen/ocaml/README.md
new file mode 100644
index 0000000..f87f5c1
--- /dev/null
+++ b/bindgen/ocaml/README.md
@@ -0,0 +1 @@
+# TODO \ No newline at end of file
diff --git a/bindgen/odin/README.md b/bindgen/odin/README.md
new file mode 100644
index 0000000..f87f5c1
--- /dev/null
+++ b/bindgen/odin/README.md
@@ -0,0 +1 @@
+# TODO \ No newline at end of file
diff --git a/bindgen/rust/Cargo.lock b/bindgen/rust/Cargo.lock
index b610998..0a1d69e 100644
--- a/bindgen/rust/Cargo.lock
+++ b/bindgen/rust/Cargo.lock
@@ -64,7 +64,7 @@ dependencies = [
"regex",
"rustc-hash",
"shlex",
- "syn 2.0.71",
+ "syn 2.0.72",
"which",
]
@@ -93,16 +93,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
[[package]]
-name = "celeritas"
+name = "celeritas-rs"
version = "0.1.0"
dependencies = [
- "bindgen",
+ "celeritas-sys",
"egui",
"egui_glfw",
"gl",
]
[[package]]
+name = "celeritas-sys"
+version = "0.1.0"
+dependencies = [
+ "bindgen",
+]
+
+[[package]]
name = "cexpr"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -199,8 +206,7 @@ dependencies = [
[[package]]
name = "egui_glfw"
version = "0.55.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f81f71591e1d52c677f1f671024d0a78bfe09eb164f4fb9a1caabbcfa997b61"
+source = "git+https://github.com/omnisci3nce/egui_glfw.git?rev=67b432695433feb59761f3ae984b966ca3da31db#67b432695433feb59761f3ae984b966ca3da31db"
dependencies = [
"cli-clipboard",
"egui",
@@ -585,7 +591,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
"proc-macro2",
- "syn 2.0.71",
+ "syn 2.0.72",
]
[[package]]
@@ -712,9 +718,9 @@ dependencies = [
[[package]]
name = "syn"
-version = "2.0.71"
+version = "2.0.72"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
+checksum = "dc4b9b9bf2add8093d3f2c0204471e951b2285580335de42f9d2534f3ae7a8af"
dependencies = [
"proc-macro2",
"quote",
@@ -750,7 +756,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.71",
+ "syn 2.0.72",
]
[[package]]
@@ -1032,5 +1038,5 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
- "syn 2.0.71",
+ "syn 2.0.72",
]
diff --git a/bindgen/rust/Cargo.toml b/bindgen/rust/Cargo.toml
index f09c249..765c5d0 100644
--- a/bindgen/rust/Cargo.toml
+++ b/bindgen/rust/Cargo.toml
@@ -1,16 +1,11 @@
[package]
-name = "celeritas"
+name = "celeritas-rs"
version = "0.1.0"
edition = "2021"
[dependencies]
-egui = "0.27.1"
-egui_glfw = "0.55.1"
-gl = "0.14.0"
-# egui_overlay = {version = "0.8.1", default-features = false, features = ["three_d"] }
-# egui_render_three_d = "0.8.0"
-# egui_render_wgpu = "0.8.0"
-# egui_window_glfw_passthrough = "0.8.1"
+celeritas-sys = { path = "./celeritas-sys" }
-[build-dependencies]
-bindgen = "0.69.4"
+egui = "0.27.1"
+egui_glfw = { git = "https://github.com/omnisci3nce/egui_glfw.git", rev = "67b432695433feb59761f3ae984b966ca3da31db" }
+gl = "0.14.0" \ No newline at end of file
diff --git a/bindgen/rust/celeritas-sys/Cargo.lock b/bindgen/rust/celeritas-sys/Cargo.lock
new file mode 100644
index 0000000..de49f83
--- /dev/null
+++ b/bindgen/rust/celeritas-sys/Cargo.lock
@@ -0,0 +1,1035 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "ab_glyph"
+version = "0.2.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c71b1793ee61086797f5c80b6efa2b8ffa6d5dd703f118545808a7f2e27f7046"
+
+[[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "version_check",
+ "zerocopy",
+]
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "bindgen"
+version = "0.69.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
+dependencies = [
+ "bitflags 2.6.0",
+ "cexpr",
+ "clang-sys",
+ "itertools",
+ "lazy_static",
+ "lazycell",
+ "log",
+ "prettyplease",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash",
+ "shlex",
+ "syn 2.0.71",
+ "which",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+
+[[package]]
+name = "block"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
+
+[[package]]
+name = "cc"
+version = "1.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aba8f4e9906c7ce3c73463f62a7f0c65183ada1a2d47e397cc8810827f9694f"
+
+[[package]]
+name = "celeritas"
+version = "0.1.0"
+dependencies = [
+ "bindgen",
+ "egui",
+ "egui_glfw",
+ "gl",
+]
+
+[[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "clang-sys"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading",
+]
+
+[[package]]
+name = "cli-clipboard"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04087c1d4a2aa259784a563932aee09cbb0869d490775e051096174b070f3e3d"
+dependencies = [
+ "clipboard-win",
+ "objc",
+ "objc-foundation",
+ "objc_id",
+ "wl-clipboard-rs",
+ "x11-clipboard",
+]
+
+[[package]]
+name = "clipboard-win"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362"
+dependencies = [
+ "error-code",
+ "str-buf",
+ "winapi",
+]
+
+[[package]]
+name = "cmake"
+version = "0.1.50"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "derive-new"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "downcast-rs"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2"
+
+[[package]]
+name = "ecolor"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20930a432bbd57a6d55e07976089708d4893f3d556cf42a0d79e9e321fa73b10"
+
+[[package]]
+name = "egui"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "584c5d1bf9a67b25778a3323af222dbe1a1feb532190e103901187f92c7fe29a"
+dependencies = [
+ "ahash",
+ "epaint",
+ "nohash-hasher",
+]
+
+[[package]]
+name = "egui_glfw"
+version = "0.55.1"
+source = "git+https://github.com/omnisci3nce/egui_glfw.git?rev=67b432695433feb59761f3ae984b966ca3da31db#67b432695433feb59761f3ae984b966ca3da31db"
+dependencies = [
+ "cli-clipboard",
+ "egui",
+ "gl",
+ "glfw",
+]
+
+[[package]]
+name = "either"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+
+[[package]]
+name = "emath"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4c3a552cfca14630702449d35f41c84a0d15963273771c6059175a803620f3f"
+
+[[package]]
+name = "epaint"
+version = "0.27.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b381f8b149657a4acf837095351839f32cd5c4aec1817fc4df84e18d76334176"
+dependencies = [
+ "ab_glyph",
+ "ahash",
+ "ecolor",
+ "emath",
+ "nohash-hasher",
+ "parking_lot",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "error-code"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21"
+dependencies = [
+ "libc",
+ "str-buf",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "gethostname"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ebd34e35c46e00bb73e81363248d627782724609fe1b6396f553f68fe3862e"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "gl"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a94edab108827d67608095e269cf862e60d920f144a5026d3dbcfd8b877fb404"
+dependencies = [
+ "gl_generator",
+]
+
+[[package]]
+name = "gl_generator"
+version = "0.14.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a95dfc23a2b4a9a2f5ab41d194f8bfda3cabec42af4e39f08c339eb2a0c124d"
+dependencies = [
+ "khronos_api",
+ "log",
+ "xml-rs",
+]
+
+[[package]]
+name = "glfw"
+version = "0.55.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a310dfc7966e5340f5d0e314fa7eed8888f1cd3bfcaa433d35cbd32d430e50c"
+dependencies = [
+ "bitflags 1.3.2",
+ "glfw-sys",
+ "objc",
+ "raw-window-handle 0.5.2",
+ "raw-window-handle 0.6.2",
+ "winapi",
+]
+
+[[package]]
+name = "glfw-sys"
+version = "5.0.0+3.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1dfc32d45fb58ff38b112696907963a7d671e9cf742b16f882062169a053cf88"
+dependencies = [
+ "cmake",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "khronos_api"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
+name = "libc"
+version = "0.2.155"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+
+[[package]]
+name = "libloading"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
+dependencies = [
+ "cfg-if",
+ "windows-targets",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+
+[[package]]
+name = "malloc_buf"
+version = "0.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "nix"
+version = "0.24.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+ "memoffset",
+]
+
+[[package]]
+name = "nohash-hasher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451"
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "os_pipe"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29d73ba8daf8fac13b0501d1abeddcfe21ba7401ada61a819144b6c2a4f32209"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90"
+dependencies = [
+ "ttf-parser",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets",
+]
+
+[[package]]
+name = "petgraph"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
+dependencies = [
+ "fixedbitset",
+ "indexmap",
+]
+
+[[package]]
+name = "pkg-config"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.71",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "raw-window-handle"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2ff9a1f06a88b01621b7ae906ef0211290d1c8a168a15542486a8f61c0833b9"
+
+[[package]]
+name = "raw-window-handle"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539"
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
+dependencies = [
+ "bitflags 2.6.0",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.6.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "str-buf"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.71"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b146dcf730474b4bcd16c311627b31ede9ab149045db4d6088b3becaea046462"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.71",
+]
+
+[[package]]
+name = "tree_magic_mini"
+version = "3.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469a727cac55b41448315cc10427c069c618ac59bb6a4480283fcd811749bdc2"
+dependencies = [
+ "fnv",
+ "home",
+ "memchr",
+ "nom",
+ "once_cell",
+ "petgraph",
+]
+
+[[package]]
+name = "ttf-parser"
+version = "0.24.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8686b91785aff82828ed725225925b33b4fde44c4bb15876e5f7c832724c420a"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "wayland-client"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715"
+dependencies = [
+ "bitflags 1.3.2",
+ "downcast-rs",
+ "libc",
+ "nix",
+ "wayland-commons",
+ "wayland-scanner",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-commons"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902"
+dependencies = [
+ "nix",
+ "once_cell",
+ "smallvec",
+ "wayland-sys",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6"
+dependencies = [
+ "bitflags 1.3.2",
+ "wayland-client",
+ "wayland-commons",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-scanner"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "xml-rs",
+]
+
+[[package]]
+name = "wayland-sys"
+version = "0.29.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4"
+dependencies = [
+ "pkg-config",
+]
+
+[[package]]
+name = "which"
+version = "4.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7"
+dependencies = [
+ "either",
+ "home",
+ "once_cell",
+ "rustix",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-wsapoll"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1eafc5f679c576995526e81635d0cf9695841736712b4e892f87abbe6fed3f28"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "wl-clipboard-rs"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "981a303dfbb75d659f6612d05a14b2e363c103d24f676a2d44a00d18507a1ad9"
+dependencies = [
+ "derive-new",
+ "libc",
+ "log",
+ "nix",
+ "os_pipe",
+ "tempfile",
+ "thiserror",
+ "tree_magic_mini",
+ "wayland-client",
+ "wayland-protocols",
+]
+
+[[package]]
+name = "x11-clipboard"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "980b9aa9226c3b7de8e2adb11bf20124327c054e0e5812d2aac0b5b5a87e7464"
+dependencies = [
+ "x11rb",
+]
+
+[[package]]
+name = "x11rb"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "592b4883219f345e712b3209c62654ebda0bb50887f330cbd018d0f654bfd507"
+dependencies = [
+ "gethostname",
+ "nix",
+ "winapi",
+ "winapi-wsapoll",
+ "x11rb-protocol",
+]
+
+[[package]]
+name = "x11rb-protocol"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56b245751c0ac9db0e006dc812031482784e434630205a93c73cfefcaabeac67"
+dependencies = [
+ "nix",
+]
+
+[[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.71",
+]
diff --git a/bindgen/rust/celeritas-sys/Cargo.toml b/bindgen/rust/celeritas-sys/Cargo.toml
new file mode 100644
index 0000000..6755fb2
--- /dev/null
+++ b/bindgen/rust/celeritas-sys/Cargo.toml
@@ -0,0 +1,9 @@
+[package]
+name = "celeritas-sys"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+
+[build-dependencies]
+bindgen = "0.69.4"
diff --git a/bindgen/rust/README.md b/bindgen/rust/celeritas-sys/README.md
index f4b4a01..f4b4a01 100644
--- a/bindgen/rust/README.md
+++ b/bindgen/rust/celeritas-sys/README.md
diff --git a/bindgen/rust/build.rs b/bindgen/rust/celeritas-sys/build.rs
index 18e8ab3..4f85bc6 100644
--- a/bindgen/rust/build.rs
+++ b/bindgen/rust/celeritas-sys/build.rs
@@ -3,8 +3,8 @@ use std::path::PathBuf;
fn main() {
// Tell cargo to look for shared libraries in the specified directory
- // println!("cargo:rustc-link-search=../../build/macosx/arm64/debug");
- println!("cargo:rustc-link-search=../../build/windows/x64/debug");
+ println!("cargo:rustc-link-search=../../../build/macosx/arm64/debug");
+ // println!("cargo:rustc-link-search=../../build/windows/x64/debug");
// Tell cargo to tell rustc to link the system bzip2
// shared library.
@@ -17,26 +17,26 @@ fn main() {
let bindings = bindgen::Builder::default()
// The input header we would like to generate
// bindings for.
- .header("../../include/amalgamation.h")
+ .header("../../../include/amalgamation.h")
// -- our code
- .clang_arg("-I../../src")
- .clang_arg("-I../../src/core")
- .clang_arg("-I../../src/maths")
- .clang_arg("-I../../src/new_render")
- .clang_arg("-I../../src/platform")
- .clang_arg("-I../../src/ral")
- .clang_arg("-I../../src/ral/backends/opengl")
- .clang_arg("-I../../src/resources")
- .clang_arg("-I../../src/std")
- .clang_arg("-I../../src/std/containers")
- .clang_arg("-I../../src/systems")
+ .clang_arg("-I../../../src")
+ .clang_arg("-I../../../src/core")
+ .clang_arg("-I../../../src/maths")
+ .clang_arg("-I../../../src/new_render")
+ .clang_arg("-I../../../src/platform")
+ .clang_arg("-I../../../src/ral")
+ .clang_arg("-I../../../src/ral/backends/opengl")
+ .clang_arg("-I../../../src/resources")
+ .clang_arg("-I../../../src/std")
+ .clang_arg("-I../../../src/std/containers")
+ .clang_arg("-I../../../src/systems")
// -- dependencies
- .clang_arg("-I../../deps/cgltf")
- .clang_arg("-I../../deps/glfw-3.3.8/include/GLFW")
- .clang_arg("-I../../deps/glad/include")
- .clang_arg("-I../../deps/stb_image")
- .clang_arg("-I../../deps/stb_image_write")
- .clang_arg("-I../../deps/stb_truetype")
+ .clang_arg("-I../../../deps/cgltf")
+ .clang_arg("-I../../../deps/glfw-3.3.8/include/GLFW")
+ .clang_arg("-I../../../deps/glad/include")
+ .clang_arg("-I../../../deps/stb_image")
+ .clang_arg("-I../../../deps/stb_image_write")
+ .clang_arg("-I../../../deps/stb_truetype")
.generate_inline_functions(true)
// Tell cargo to invalidate the built crate whenever any of the
// included header files changed.
diff --git a/bindgen/rust/celeritas-sys/examples/glfw.rs b/bindgen/rust/celeritas-sys/examples/glfw.rs
new file mode 100644
index 0000000..0514032
--- /dev/null
+++ b/bindgen/rust/celeritas-sys/examples/glfw.rs
@@ -0,0 +1,224 @@
+use std::ffi::CString;
+use std::ptr::addr_of_mut;
+
+use celeritas::*;
+use egui_backend::egui::{vec2, Pos2, Rect};
+use egui_glfw as egui_backend;
+use egui_glfw::glfw::{fail_on_errors, Context};
+
+use egui_glfw::glfw;
+
+const SCREEN_WIDTH: u32 = 1000;
+const SCREEN_HEIGHT: u32 = 1000;
+
+fn main() {
+ unsafe {
+ let mut glfw = glfw::init(glfw::fail_on_errors!()).unwrap();
+ glfw.window_hint(glfw::WindowHint::ContextVersion(4, 1));
+ glfw.window_hint(glfw::WindowHint::OpenGlForwardCompat(true));
+ glfw.window_hint(glfw::WindowHint::OpenGlProfile(
+ glfw::OpenGlProfileHint::Core,
+ ));
+ glfw.window_hint(glfw::WindowHint::DoubleBuffer(true));
+ glfw.window_hint(glfw::WindowHint::Resizable(false));
+
+ let (mut window, events) = glfw
+ .create_window(
+ SCREEN_WIDTH,
+ SCREEN_HEIGHT,
+ "Egui in GLFW!",
+ glfw::WindowMode::Windowed,
+ )
+ .expect("Failed to create GLFW window.");
+
+ window.set_all_polling(true);
+ window.make_current();
+ // glfw.set_swap_interval(glfw::SwapInterval::None);
+ glfw.set_swap_interval(glfw::SwapInterval::Adaptive);
+
+ gl::load_with(|symbol| window.get_proc_address(symbol) as *const _);
+
+ let window_ptr = window.window_ptr();
+ unsafe {
+ // Cast the window pointer to the expected type
+ let window_ptr = window_ptr as *mut celeritas::GLFWwindow;
+ Core_Bringup(window_ptr);
+ };
+
+ let mut painter = egui_backend::Painter::new(&mut window);
+ let egui_ctx = egui::Context::default();
+
+ let (width, height) = window.get_framebuffer_size();
+ let native_pixels_per_point = window.get_content_scale().0;
+ let native_pixels_per_point = 1.0;
+ // egui_ctx.set_pixels_per_point(2.0);
+
+ let mut egui_input_state = egui_backend::EguiInputState::new(egui::RawInput {
+ screen_rect: Some(Rect::from_min_size(
+ Pos2::new(0f32, 0f32),
+ vec2(width as f32, height as f32) / native_pixels_per_point,
+ )),
+ ..Default::default()
+ });
+
+ egui_input_state.input.time = Some(0.01);
+
+ // let triangle = triangle::Triangle::new();
+ let slider = &mut 0.0;
+
+ // C data
+ let camera_pos = Vec3 {
+ x: 18.9,
+ y: 10.6,
+ z: 11.6,
+ };
+ let camera_front = Vec3 {
+ x: -0.6,
+ y: -0.2,
+ z: -0.7,
+ };
+ let camera = Camera_Create(
+ camera_pos,
+ camera_front,
+ Vec3 {
+ x: 0.0,
+ y: 1.0,
+ z: 0.0,
+ },
+ 45.0,
+ );
+ SetCamera(camera);
+
+ let mut cube_geo = Geo_CreateCuboid(f32x3 {
+ x: 2.0,
+ y: 2.0,
+ z: 2.0,
+ });
+ let mut crate_mesh = Mesh_Create(addr_of_mut!(cube_geo), false);
+ let albedo_map = TextureLoadFromFile(
+ CString::new("assets/demo/crate/Wood_Crate_001_basecolor.jpg")
+ .unwrap()
+ .as_ptr() as *const i8,
+ );
+ let roughness_map = TextureLoadFromFile(
+ CString::new("assets/demo/crate/Wood_Crate_001_roughness.jpg")
+ .unwrap()
+ .as_ptr() as *const i8,
+ );
+ let normal_map = TextureLoadFromFile(
+ CString::new("assets/demo/crate/Wood_Crate_001_normal.jpg")
+ .unwrap()
+ .as_ptr() as *const i8,
+ );
+ let ao_map = TextureLoadFromFile(
+ CString::new("assets/demo/crate/Wood_Crate_001_ambientOcclusion.jpg")
+ .unwrap()
+ .as_ptr() as *const i8,
+ );
+ let name: [i8; 64] = [0; 64];
+ let mut crate_mat = Material {
+ name: name,
+ kind: 0,
+ param_albedo: Vec3 {
+ x: 0.0,
+ y: 0.0,
+ z: 0.0,
+ },
+ param_metallic: 0.0,
+ param_roughness: 0.0,
+ param_ao: 0.0,
+ pbr_albedo_map: albedo_map,
+ pbr_normal_map: normal_map,
+ metal_roughness_combined: true,
+ pbr_metallic_map: TextureHandle { raw: 99999 },
+ pbr_roughness_map: roughness_map,
+ pbr_ao_map: ao_map,
+ };
+ let crate_renderent = RenderEnt {
+ mesh: addr_of_mut!(crate_mesh),
+ material: addr_of_mut!(crate_mat),
+ affine: mat4_ident(),
+ casts_shadows: true,
+ };
+ let mut render_ents: [RenderEnt; 1] = [crate_renderent];
+ let mut skybox = Skybox_Default();
+
+ // Main rendering loop
+ while !window.should_close() {
+ glfw.poll_events();
+
+ egui_ctx.begin_frame(egui_input_state.input.take());
+
+ unsafe {
+ gl::ClearColor(0.455, 0.302, 0.663, 1.0);
+ gl::Clear(gl::COLOR_BUFFER_BIT);
+ gl::Clear(gl::DEPTH_TEST);
+ }
+
+ Frame_Begin();
+ gl::Enable(gl::DEPTH_TEST);
+ gl::Enable(gl::CULL_FACE);
+
+ Skybox_Draw(addr_of_mut!(skybox), camera);
+ Render_RenderEntities(render_ents.as_mut_ptr(), render_ents.len());
+
+ // Frame_End();
+
+ // triangle.draw();
+
+ gl::Disable(gl::DEPTH_TEST);
+ gl::Disable(gl::CULL_FACE);
+
+ egui::Window::new("Egui with GLFW").show(&egui_ctx, |ui| {
+ ui.label("Celeritas in-game editor");
+ let btn_m = &mut ui.button("-");
+ let btn_p = &mut ui.button("+");
+
+ ui.add(egui::Slider::new(slider, 0.0..=100.0).text("My value"));
+
+ if btn_m.clicked() && *slider > 0.0 {
+ *slider -= 1.0;
+ }
+
+ if btn_p.clicked() && *slider < 100.0 {
+ *slider += 1.0;
+ }
+ });
+
+ let egui::FullOutput {
+ platform_output,
+ textures_delta,
+ shapes,
+ ..
+ } = egui_ctx.end_frame();
+
+ //Handle cut, copy text from egui
+ if !platform_output.copied_text.is_empty() {
+ egui_backend::copy_to_clipboard(&mut egui_input_state, platform_output.copied_text);
+ }
+
+ //Note: passing a bg_color to paint_jobs will clear any previously drawn stuff.
+ //Use this only if egui is being used for all drawing and you aren't mixing your own Open GL
+ //drawing calls with it.
+ //Since we are custom drawing an OpenGL Triangle we don't need egui to clear the background.
+
+ let clipped_shapes = egui_ctx.tessellate(shapes, native_pixels_per_point);
+ painter.paint_and_update_textures(
+ native_pixels_per_point,
+ &clipped_shapes,
+ &textures_delta,
+ );
+
+ for (_, event) in glfw::flush_messages(&events) {
+ match event {
+ glfw::WindowEvent::Close => window.set_should_close(true),
+ _ => {
+ egui_backend::handle_event(event, &mut egui_input_state);
+ }
+ }
+ }
+
+ window.swap_buffers();
+ }
+ }
+}
diff --git a/bindgen/rust/examples/gui_test.rs b/bindgen/rust/celeritas-sys/examples/gui_test.rs
index ddd8b86..ddd8b86 100644
--- a/bindgen/rust/examples/gui_test.rs
+++ b/bindgen/rust/celeritas-sys/examples/gui_test.rs
diff --git a/bindgen/rust/examples/main_loop.rs b/bindgen/rust/celeritas-sys/examples/main_loop.rs
index 2b4919a..65f4137 100644
--- a/bindgen/rust/examples/main_loop.rs
+++ b/bindgen/rust/celeritas-sys/examples/main_loop.rs
@@ -88,7 +88,6 @@ unsafe fn run_game() {
casts_shadows: true,
};
let mut render_entities: [RenderEnt; 1] = [crate_renderent];
-
// main loop
while !ShouldExit() {
diff --git a/bindgen/rust/src/egui_utils.rs b/bindgen/rust/celeritas-sys/src/egui_utils.rs
index 5432d81..5432d81 100644
--- a/bindgen/rust/src/egui_utils.rs
+++ b/bindgen/rust/celeritas-sys/src/egui_utils.rs
diff --git a/bindgen/rust/src/lib.rs b/bindgen/rust/celeritas-sys/src/lib.rs
index 1f64680..1f64680 100644
--- a/bindgen/rust/src/lib.rs
+++ b/bindgen/rust/celeritas-sys/src/lib.rs
diff --git a/bindgen/rust/examples/glfw.rs b/bindgen/rust/examples/glfw.rs
deleted file mode 100644
index ce0bc7c..0000000
--- a/bindgen/rust/examples/glfw.rs
+++ /dev/null
@@ -1,225 +0,0 @@
-use std::ffi::CString;
-use std::ptr::addr_of_mut;
-
-use celeritas::*;
-use egui_glfw as egui_backend;
-use egui_backend::egui::{vec2, Pos2, Rect};
-use egui_glfw::glfw::{Context, fail_on_errors};
-
-use egui_glfw::glfw;
-
-const SCREEN_WIDTH: u32 = 2000;
-const SCREEN_HEIGHT: u32 = 1800;
-
-fn main() {
- unsafe {
- let mut glfw = glfw::init(glfw::fail_on_errors!()).unwrap();
- glfw.window_hint(glfw::WindowHint::ContextVersion(4, 1));
- glfw.window_hint(glfw::WindowHint::OpenGlProfile(
- glfw::OpenGlProfileHint::Core,
- ));
- glfw.window_hint(glfw::WindowHint::DoubleBuffer(true));
- glfw.window_hint(glfw::WindowHint::Resizable(false));
-
- let (mut window, events) = glfw
- .create_window(
- SCREEN_WIDTH,
- SCREEN_HEIGHT,
- "Egui in GLFW!",
- glfw::WindowMode::Windowed,
- )
- .expect("Failed to create GLFW window.");
-
- window.set_all_polling(true);
- window.make_current();
- // glfw.set_swap_interval(glfw::SwapInterval::None);
- glfw.set_swap_interval(glfw::SwapInterval::Adaptive);
-
-
-
- gl::load_with(|symbol| window.get_proc_address(symbol) as *const _);
-
- let window_ptr = window.window_ptr();
- unsafe {
- // Cast the window pointer to the expected type
- let window_ptr = window_ptr as *mut celeritas::GLFWwindow;
- Core_Bringup(window_ptr);
- };
-
- let mut painter = egui_backend::Painter::new(&mut window);
- let egui_ctx = egui::Context::default();
-
-
- let (width, height) = window.get_framebuffer_size();
- let native_pixels_per_point = window.get_content_scale().0;
- let native_pixels_per_point = 1.0;
- // egui_ctx.set_pixels_per_point(2.0);
-
- let mut egui_input_state = egui_backend::EguiInputState::new(egui::RawInput {
- screen_rect: Some(Rect::from_min_size(
- Pos2::new(0f32, 0f32),
- vec2(width as f32, height as f32) / native_pixels_per_point,
- )),
- ..Default::default()
- });
-
- egui_input_state.input.time = Some(0.01);
-
- // let triangle = triangle::Triangle::new();
- let slider = &mut 0.0;
-
- // C data
- let camera_pos = Vec3 {
- x: 18.9,
- y: 10.6,
- z: 11.6,
- };
- let camera_front = Vec3 {
- x: -0.6,
- y: -0.2,
- z: -0.7,
- };
- let camera = Camera_Create(
- camera_pos,
- camera_front,
- Vec3 {
- x: 0.0,
- y: 1.0,
- z: 0.0,
- },
- 45.0,
- );
- SetCamera(camera);
-
- let mut cube_geo = Geo_CreateCuboid(f32x3 {
- x: 2.0,
- y: 2.0,
- z: 2.0,
- });
- let mut crate_mesh = Mesh_Create(addr_of_mut!(cube_geo), false);
- let albedo_map = TextureLoadFromFile(
- CString::new("assets/demo/crate/Wood_Crate_001_basecolor.jpg")
- .unwrap()
- .as_ptr() as *const i8,
- );
- let roughness_map = TextureLoadFromFile(
- CString::new("assets/demo/crate/Wood_Crate_001_roughness.jpg")
- .unwrap()
- .as_ptr() as *const i8,
- );
- let normal_map = TextureLoadFromFile(
- CString::new("assets/demo/crate/Wood_Crate_001_normal.jpg")
- .unwrap()
- .as_ptr() as *const i8,
- );
- let ao_map = TextureLoadFromFile(
- CString::new("assets/demo/crate/Wood_Crate_001_ambientOcclusion.jpg")
- .unwrap()
- .as_ptr() as *const i8,
- );
- let name: [i8; 64] = [0; 64];
- let mut crate_mat = Material {
- name: name,
- kind: 0,
- param_albedo: Vec3 {
- x: 0.0,
- y: 0.0,
- z: 0.0,
- },
- param_metallic: 0.0,
- param_roughness: 0.0,
- param_ao: 0.0,
- pbr_albedo_map: albedo_map,
- pbr_normal_map: normal_map,
- metal_roughness_combined: true,
- pbr_metallic_map: TextureHandle { raw: 99999 },
- pbr_roughness_map: roughness_map,
- pbr_ao_map: ao_map,
- };
- let crate_renderent = RenderEnt {
- mesh: addr_of_mut!(crate_mesh),
- material: addr_of_mut!(crate_mat),
- affine: mat4_ident(),
- casts_shadows: true,
- };
- let mut render_ents: [RenderEnt; 1] = [crate_renderent];
- let mut skybox = Skybox_Default();
-
-
- // Main rendering loop
- while !window.should_close() {
- glfw.poll_events();
-
- egui_ctx.begin_frame(egui_input_state.input.take());
-
- unsafe {
- gl::ClearColor(0.455, 0.302, 0.663, 1.0);
- gl::Clear(gl::COLOR_BUFFER_BIT);
- gl::Clear(gl::DEPTH_TEST);
- }
-
- Frame_Begin();
- gl::Enable(gl::DEPTH_TEST);
- gl::Enable(gl::CULL_FACE);
-
- Skybox_Draw(addr_of_mut!(skybox), camera);
- Render_RenderEntities(
- render_ents.as_mut_ptr(),
- render_ents.len(),
- );
-
- // Frame_End();
-
- // triangle.draw();
-
- gl::Disable(gl::DEPTH_TEST);
- gl::Disable(gl::CULL_FACE);
-
- egui::Window::new("Egui with GLFW").show(&egui_ctx, |ui| {
- ui.label("Celeritas in-game editor");
- let btn_m = &mut ui.button("-");
- let btn_p = &mut ui.button("+");
-
- ui.add(egui::Slider::new(slider, 0.0..=100.0).text("My value"));
-
- if btn_m.clicked() && *slider > 0.0 {
- *slider -= 1.0;
- }
-
- if btn_p.clicked() && *slider < 100.0 {
- *slider += 1.0;
- }
- });
-
- let egui::FullOutput {
- platform_output,
- textures_delta,
- shapes, .. } = egui_ctx.end_frame();
-
- //Handle cut, copy text from egui
- if !platform_output.copied_text.is_empty() {
- egui_backend::copy_to_clipboard(&mut egui_input_state, platform_output.copied_text);
- }
-
- //Note: passing a bg_color to paint_jobs will clear any previously drawn stuff.
- //Use this only if egui is being used for all drawing and you aren't mixing your own Open GL
- //drawing calls with it.
- //Since we are custom drawing an OpenGL Triangle we don't need egui to clear the background.
-
- let clipped_shapes = egui_ctx.tessellate(shapes, native_pixels_per_point);
- painter.paint_and_update_textures(native_pixels_per_point, &clipped_shapes, &textures_delta);
-
- for (_, event) in glfw::flush_messages(&events) {
- match event {
- glfw::WindowEvent::Close => window.set_should_close(true),
- _ => {
- egui_backend::handle_event(event, &mut egui_input_state);
- }
- }
- }
-
- window.swap_buffers();
- }
-
- }
-}
diff --git a/bindgen/rust/src/main.rs b/bindgen/rust/src/main.rs
new file mode 100644
index 0000000..e7a11a9
--- /dev/null
+++ b/bindgen/rust/src/main.rs
@@ -0,0 +1,3 @@
+fn main() {
+ println!("Hello, world!");
+}