summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rw-r--r--source/dw.rs15
-rw-r--r--source/dw/app.rs18
-rw-r--r--source/dw/app/ini.rs20
-rw-r--r--source/dw/app/inigfx.rs36
-rw-r--r--source/ini.rs13
5 files changed, 102 insertions, 0 deletions
diff --git a/source/dw.rs b/source/dw.rs
new file mode 100644
index 0000000..976f049
--- /dev/null
+++ b/source/dw.rs
@@ -0,0 +1,15 @@
+// Copyright 2023 Gabriel Jensen.
+
+pub struct VerTyp {
+ pub maj: u64,
+ pub min: u64,
+ pub pat: u64,
+}
+
+pub const VER: VerTyp = VerTyp {
+ maj: 0x0,
+ min: 0x0,
+ pat: 0x0,
+};
+
+pub mod app;
diff --git a/source/dw/app.rs b/source/dw/app.rs
new file mode 100644
index 0000000..dea50da
--- /dev/null
+++ b/source/dw/app.rs
@@ -0,0 +1,18 @@
+// Copyright 2023 Gabriel Jensen.
+
+extern crate glfw;
+
+use glfw::{Glfw,Window,WindowEvent};
+use std::sync::mpsc::Receiver;
+
+pub struct Gfx {
+ evt: Receiver<(f64,WindowEvent)>,
+ glfw: Glfw,
+ win: Window,
+}
+
+pub struct App {
+}
+
+pub mod ini;
+pub mod inigfx;
diff --git a/source/dw/app/ini.rs b/source/dw/app/ini.rs
new file mode 100644
index 0000000..d064259
--- /dev/null
+++ b/source/dw/app/ini.rs
@@ -0,0 +1,20 @@
+// Copyright 2023 Gabriel Jensen.
+
+use crate::dw::app::App;
+use crate::dw::VER;
+
+extern crate glfw;
+
+impl App {
+ pub fn ini(&mut self) -> i8 {
+ eprintln!("DeltaWorld {}.{}.{}",VER.maj,VER.min,VER.pat);
+
+ let mut gfx = self.inigfx();
+
+ while !gfx.win.should_close() {
+ gfx.glfw.poll_events();
+ }
+
+ return 0x45;
+ }
+}
diff --git a/source/dw/app/inigfx.rs b/source/dw/app/inigfx.rs
new file mode 100644
index 0000000..00c76da
--- /dev/null
+++ b/source/dw/app/inigfx.rs
@@ -0,0 +1,36 @@
+// Copyright 2023 Gabriel Jensen.
+
+use crate::dw::app::App;
+use crate::dw::app::Gfx;
+
+extern crate gl;
+extern crate glfw;
+
+use glfw::{Context};
+use std::ffi::c_void;
+
+impl App {
+ pub fn inigfx(&mut self) -> Gfx {
+ eprintln!("initialising glfw");
+ let mut glfw = glfw:: init(glfw:: FAIL_ON_ERRORS).unwrap();
+
+ eprintln!("creating window");
+ glfw.window_hint(glfw:: WindowHint:: ContextVersion(0x3,0x2));
+ glfw.window_hint(glfw:: WindowHint:: OpenGlProfile(glfw:: OpenGlProfileHint:: Core));
+ glfw.window_hint(glfw:: WindowHint:: Samples(Some(0x8)));
+
+
+ let (mut win,evt) = glfw.create_window(0x400,0x300,"dw",glfw:: WindowMode:: Windowed).expect("unable to create window");
+ win.set_key_polling(true);
+ win.make_current();
+
+ eprintln!("initialising opengl");
+ gl:: load_with(|nam| glfw.get_proc_address_raw(nam) as *const c_void);
+
+ return Gfx {
+ glfw: glfw,
+ win: win,
+ evt: evt,
+ };
+ }
+}
diff --git a/source/ini.rs b/source/ini.rs
new file mode 100644
index 0000000..aa0802c
--- /dev/null
+++ b/source/ini.rs
@@ -0,0 +1,13 @@
+// Copyright 2023 Gabriel Jensen.
+
+mod dw;
+
+use crate::dw::app::App;
+
+use std::process::exit;
+
+fn main() {
+ let mut app = App {};
+
+ exit(app.ini() as i32);
+}