Commit graph

124 commits

Author SHA1 Message Date
Ernesto Lanchares
b1bd949db5 Refactored compilation and startup. Now everything is orchestrated through a simple API described in sideros_api.h. Also refactored some of the code to get rid of global C imports.
Signed-off-by: Lorenzo Torres <torres@sideros.org>
2025-08-05 20:16:39 +02:00
Lorenzo Torres
5b51a3d571 Implemented basic lighting! 2025-08-05 19:06:58 +02:00
luccie-cmd
83d91cfffe Fixed the functions 2025-08-04 20:48:35 +02:00
luccie-cmd
6f942fe9c2 Add full support for globals 2025-08-04 19:33:05 +02:00
luccie-cmd
53eb24dc35 Comment main back out 2025-08-04 19:24:03 +02:00
luccie-cmd
94195fc774 Added support for global variables 2025-08-04 19:21:12 +02:00
Lorenzo Torres
1da655d164 Merge branch 'master' of ssh://git.sideros.org/git/sideros 2025-08-04 17:24:11 +02:00
Lorenzo Torres
dcb2ee0584 Added camera uniforms for projection and view matrix 2025-08-04 17:23:00 +02:00
luccie-cmd
baa3877f99 Commented out main stuff 2025-08-04 16:03:33 +02:00
luccie-cmd
e0d44a5f84 Added support for importing functions and begin working on a modding tools 2025-08-04 16:03:06 +02:00
Lorenzo Torres
59e3997056 Fixed gltf parser memory leak 2025-08-04 14:19:29 +02:00
Lorenzo Torres
a8071bd783 Made render a system again 2025-08-04 13:56:50 +02:00
Lorenzo Torres
933cf2f1f4 Removed unecessary Window struct 2025-08-04 13:43:09 +02:00
Lorenzo Torres
66a6dc33ec Main loop now doesn't always wait for events 2025-08-04 13:41:38 +02:00
Lorenzo Torres
097a6a9b5c Implemented Xorg initialization code 2025-08-04 02:46:36 +02:00
Lorenzo Torres
f894fb317d Implemented wayland initialization code 2025-08-03 23:23:03 +02:00
luccie-cmd
139e5aacbc Add parameter handling and remove redundant comments 2025-08-03 16:14:50 +02:00
Lorenzo Torres
a143b838fd Moved all modules to the root module 2025-08-02 15:46:46 +02:00
Lorenzo Torres
e7e0927a83 Updated the source for master 2025-08-01 21:38:27 +02:00
Ernesto Lanchares
ecff349a31 Fixed memory leak in ECS. 2025-04-04 18:57:21 +02:00
Ernesto Lanchares
25e51f9aea Modified how exports work and fixed memory leaks.
Now exports are already defined by the mods api
(something like preinit, init, preframe,
postframe, deinit should be enough functions). At
the moment we only support preinit function.
2025-04-04 18:34:58 +02:00
luccie-cmd
28420f53b0 Added executing of and 2025-03-30 15:00:17 +02:00
luccie-cmd
916115c7cd Added parsing of and 2025-03-30 15:00:17 +02:00
Ernesto Lanchares
237ead3921 Fixed an error during ir parsing. 2025-03-30 14:36:51 +02:00
Lorenzo Torres
9ff5e811a8 Merge branch 'master' of ssh://git.sideros.org:/git/sideros 2025-03-29 21:20:16 +01:00
luccie-cmd
2dc07080dd Add every single instruction prototype for WASM VM 2025-03-29 20:17:52 +01:00
Ernesto Lanchares
16343878cd Started adding all of IR opcodes 2025-03-29 19:31:08 +01:00
Ernesto Lanchares
7023261320 Changed structs in the VM 2025-03-29 19:16:17 +01:00
Lorenzo Torres
16a2a40418 moved rendering to a system.
To ensure that the rendering system is being run in the main thread, I
added the concept of "Sync systems", so that when a system group is
created it's possible to specify whether it's possible to run it on a
separate thread or not.
2025-03-29 16:15:56 +01:00
Lorenzo Torres
fd7973173f Added cursor input management 2025-03-29 14:51:31 +01:00
luccie-cmd
bffe814150 Added new main file 2025-03-28 20:04:51 +01:00
Lorenzo Torres
3bd394d6bc fix Window.zig 2025-03-28 19:58:39 +01:00
Lorenzo Torres
669b8e5fee Merge branch 'master' of ssh://git.sideros.org:/git/sideros 2025-03-28 19:57:19 +01:00
Lorenzo Torres
536c927613 Made ECS a separate module and implemented basic input handling. 2025-03-28 19:53:56 +01:00
luccie-cmd
7bf81854e2 Oopsies wrong main, fixed it now 2025-03-28 19:52:02 +01:00
luccie-cmd
8d39d3d4d0 Added executing of mod IR in the WASM VM 2025-03-28 19:48:15 +01:00
luccie-cmd
964c25a66c Remove testing 2025-03-28 19:48:15 +01:00
Lorenzo Torres
64c9d32905 fix poll events for window module 2025-03-28 16:01:30 +01:00
Lorenzo Torres
ff84d6ac53 the ECS is now using a more data oriented approach.
By defining archetypes using SOAs (Zig has this data structure in `std`,
called std.MultiArrayList), the engine can iterate faster over commonly
defined entities avoiding cache misses since each component is aligned
with other components of the same entity.
2025-03-28 15:34:36 +01:00
Lorenzo Torres
11f6bc2b04 Merge branch 'master' of ssh://git.sideros.org:/git/sideros 2025-03-27 21:44:47 +01:00
Lorenzo Torres
1730f1e298 Made Renderer a separate module 2025-03-27 21:42:46 +01:00
Ernesto Lanchares
6fe4855a67 IR can now parse itself. :)
Now we have to reimplement the vm. :_)
2025-03-27 17:05:50 +01:00
Ernesto Lanchares
dd3dc54b05 Fixing format.
Should we run zig fmt as a prehook? or maybe after
pushing?
2025-03-27 17:04:49 +01:00
luccie-cmd
6271509f2a Add testing for wasm VM
Signed-off-by: luccie-cmd <luccie@sideros.org>
2025-03-27 13:58:05 +01:00
luccie-cmd
1db7f9e506 Fix branching and VM
Signed-off-by: luccie-cmd <luccie@sideros.org>
2025-03-27 13:57:37 +01:00
luccie-cmd
bfe9fb5e63 Removed IR parsing and changed fatal bug of i64s being detected as i32s
Signed-off-by: luccie-cmd <luccie@sideros.org>
2025-03-27 13:56:37 +01:00
Ernesto Lanchares
09691ec4d9 Some progress on IR parsing.
Alhtough IR parsing is technically called while
parsing, since we lack the hability to parse
blocks or labels or if or any hard stuff really,
it does not affect code parsing. However it is
nice to have it there as zig compiles it :)
2025-03-24 22:38:12 +01:00
Lorenzo Torres
7cf43ccb8b glTF models now take buffer lengths at runtime 2025-03-24 19:49:49 +01:00
Ernesto Lanchares
942bb3525d Proposal for vector instructions IR
This proposal drops the memory alignment from u32
that is required by spec to a u16. But I think
u16 should be more than enough to represent any
real alignment.

Also this is closer to a custom asm than a IR but
whatever...
2025-03-24 19:41:17 +01:00
Lorenzo Torres
56559a9386 implemented glTF loading 2025-03-24 19:40:35 +01:00