From: Brendan Hansen Date: Mon, 18 Oct 2021 22:30:55 +0000 (-0500) Subject: initial commit X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=f46f773c261682ad7938cf30d5e350cf1a35dc23;p=onyx-particle-sim.git initial commit --- f46f773c261682ad7938cf30d5e350cf1a35dc23 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7abdce7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +js +modules +build.sh +ouit.wasm +ouit.wasm.data +*.sublime-project +*.sublime-workspace \ No newline at end of file diff --git a/compile.vim b/compile.vim new file mode 100644 index 0000000..f04d62b --- /dev/null +++ b/compile.vim @@ -0,0 +1,2 @@ +set errorformat=%E\(%f\:%l\\,%c\)\ \%m,%C%.%# +set makeprg=./build.sh diff --git a/index.html b/index.html new file mode 100644 index 0000000..8343ee8 --- /dev/null +++ b/index.html @@ -0,0 +1,29 @@ + + + + OUIT + + + + + + + + + + + + + + This browser does not support the Canvas API. + + diff --git a/server.py b/server.py new file mode 100755 index 0000000..67cdccb --- /dev/null +++ b/server.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python + +from http import server + +class COOPServer(server.SimpleHTTPRequestHandler): + def end_headers(self): + self.send_header("Cross-Origin-Embedder-Policy", "require-corp") + self.send_header("Cross-Origin-Opener-Policy", "same-origin") + + server.SimpleHTTPRequestHandler.end_headers(self) + +if __name__ == '__main__': + httpd = server.HTTPServer(('', 8000), COOPServer) + httpd.serve_forever() diff --git a/src/sim.onyx b/src/sim.onyx new file mode 100644 index 0000000..e7b3b2b --- /dev/null +++ b/src/sim.onyx @@ -0,0 +1,57 @@ +package main + +#load "modules/ouit/module" + +#private_file { + gl :: package gl + gfx :: package immediate_mode + + ouit :: package ouit + + use package core + use package core.intrinsics.onyx +} + +main :: (args) => { + ouit.init("main_canvas", handle_event, update, draw); + ouit.start(); +} + +x: f32 = 0; +y: f32 = 0; +sx: f32; +sy: f32; +handle_event :: (ev) => { + switch ev.kind { + case .KeyDown { + switch ev.keyboard.keycode { + case 38 do sy = -100.0f; + case 40 do sy = 100.0f; + case 39 do sx = 100.0f; + case 37 do sx = -100.0f; + } + } + + case .Resize { + gl.setSize(ev.resize.width, ev.resize.height); + gfx.set_window_size(ev.resize.width, ev.resize.height); + } + } +} + +update :: (dt: f32) { + x += sx * dt; + y += sy * dt; + + sx *= 0.9; + sy *= 0.9; +} + +draw :: () { + gl.clearColor(.1, .1, .1, 1); + gl.clear(gl.COLOR_BUFFER_BIT); + + gfx.rect(.{ x, y }, .{ 50, 50 }, .{ 1, 1, 1 }); + + gfx.flush(); +} \ No newline at end of file