Commit Graph

240 Commits

Author SHA1 Message Date
Ed_
b137bc542c WIP: Stuff related to working on the settings menu + more
Moved core ui to its own folder.
Worked on theming (proper light and dark theme)
Began to work on the scroll box widget and input box constructions

I added back a script for flattening the codebase: gen_flattened_codebase.ps1
2024-05-19 01:21:51 -04:00
Ed_
ddff1fcae6 typos and buildscript fixes & additions 2024-05-16 18:16:14 -04:00
Ed_
b30f3c3466 Restructured the codebase yet again but this time with compiler support for monlithic packages
So no need to stage generate symbolic links in a flat directory for the compiler
2024-05-16 17:27:48 -04:00
Ed_
40ffed9538 Changed codebase to be foldered (breaking compiler's conventions)
I now generate the layout the compiler wants, eventually I'll just have a custom policy so that the compiler can accept the non-idiomatic layout

See scripts/build.ps1 & gen_staged_compiler_codebase.ps1 for how this is handled.
2024-05-16 13:18:27 -04:00
Ed_
5ceef39410 Some general refactors and compaction
Made a distinction from the "core" ui vs the rest of the ui that composes from there.
2024-05-16 11:21:07 -04:00
Ed_
7250456db5 Got centered resize working for the handles
Impl feels jank... but thats what I get for supporting two origins for the auto-layout
2024-05-16 02:14:54 -04:00
Ed_
85cf9d8db2 More progress on themes + workspace resize handles support
Still need to add support for centered resize of boxes with the handles. (Will need a different alignment configuration)

Theme manipulation is getting cleaned up iteratively code is slowly looking less nosiy
2024-05-15 18:48:20 -04:00
Ed_
48ee98f22d detached head bullshit 2024-05-15 03:44:18 -04:00
Ed_
af757cfdaa Began working on a proper default theme
Going with dark mode at first,
I'll also be making a lightmode, but I want to have a post-processing shader for tonemapping the app screen's tone by the user before doing so.
2024-05-15 03:37:00 -04:00
Ed_
fd2552a82f improve layout visibile lag to none for vbox & hbox on the settings menu 2024-05-14 21:54:12 -04:00
Ed_
a29632daea Fix for DLL_NodeFL 2024-05-14 14:50:38 -04:00
Ed_
70b13ce107 fixes for hmap_chained_init and other stuff 2024-05-14 14:07:29 -04:00
Ed_
26771ff2fd made a new hashtable container: HMapChained
Will be used isntead of the zpl in some places
2024-05-14 11:47:44 -04:00
Ed_
12c99bee26 Mostly cleanup
Text is athe biggest bottleneck right now. Raylib as a renderer fails for this prototype in that front.

I'll eventually need to look into other solutions such as SDL2 + something that renders UI boxes & text very fast...
2024-05-13 21:53:08 -04:00
Ed_
adc75f6977 Got support for persistent ordering of UI_Boxes using UI_FloatingManager 2024-05-13 16:07:49 -04:00
Ed_
0744069b0d pushing what I have rn, decided not to go this route
Instead going with ![img](https://i.imgur.com/S3tjZUu.png)
2024-05-13 10:40:29 -04:00
Ed_
e8c3312b69 more progress... 2024-05-13 01:56:39 -04:00
Ed_
595de438af WIP: Persistent order support for rooted boxes (top-most boxes)
I wasn't expecting it to be this to bad to support it...

Also:
* I renamed some of the files to group better with the virtual codebase view
2024-05-13 01:53:19 -04:00
Ed_
1b32fe916e Large refactor of the entire codebase
Saw that layout really should be separated from the style struct, so went ahead and pulled the trigger...
A bunch of other refactors have also been done

* Lifted layout out of style, its not separate in UI_Box and in UI_State there is not a UI_LayoutCombo stack.
* UI_StyleTheme renamed to UI_StyleCombo
* UI_Theme has both UI_StyleCombo & UI_LayoutCombo
* Made files for the "project" related code
* ui_layout_compute moved to its own file, ui_layout now used for layout related data structures and interfacing
* Impovements to horizontal & vertical box impl
* UI_Box now keeps track of how many ancestors it has
2024-05-11 22:38:05 -04:00
Ed_
6a4f7ac6de minor changes, prepping for next tasks 2024-05-11 01:30:54 -04:00
Ed_
e40e3ddf85 small refactors for organization 2024-05-10 19:50:37 -04:00
Ed_
2b1565e35b AppUI lifted to its own file, Got horizontal and vertical boxes working 2024-05-10 19:20:50 -04:00
Ed_
5b24e591eb Fixed issue with ui_signal_from_box
Biggest win was getting the intial fixes for overlapping boxes.
Eventually I'll need to add support for sorting actives of top-most ancestors
(pretty much just remove from linked list and add to last position (adjust indices of adjacent and new top most, etc)
2024-05-10 04:16:04 -04:00
Ed_
1afe74b4b5 Some cleanup, resize handles lifted to ui_resizeable_handles
Fixed some bugs with the handles as well. Old cruft for resizing was removed.
2024-05-10 02:08:36 -04:00
Ed_
a2b6325b5b coordinate space math fixes, got resize handles working in settings menu prototype
will eventually lift to its own generic widget

I still need to implement the corner resize..
2024-05-09 04:02:33 -04:00
Ed_
b8e8e7c88a Progress on setting up app's UI and horizontal/vertical box widgets 2024-05-08 02:26:39 -04:00
Ed_
e282397bf0 Nvm, took me way to long to realize the string cache needs a different hastable
This hashtable is not tolerant over going 'over capacity'. I have to eventually swap to another solution similar to Ryans linear probing for string caching.
For now I'll just abuse ram with an oversized table.
2024-05-07 01:34:43 -04:00
Ed_
3336ab2e1c Its the pool free lists... 2024-05-07 01:16:02 -04:00
Ed_
059a63ccbb Fixed issues with logging on the memory tracker 2024-05-07 01:12:02 -04:00
Ed_
1e6e9581c3 Bug fixes to allocators and containers
Still haven't found the main bug with resizing zpl_hashmap on string interning
2024-05-06 23:29:47 -04:00
Ed_
0e27635a9b Updates to readme 2024-05-04 12:59:08 -04:00
Ed_
046d79c9bd Attempt to add example vod 2024-05-04 12:10:30 -04:00
Ed_
f27a69de9a Get the project to compile once again. 2024-05-04 11:47:21 -04:00
Ed_
4492ca3079 Corrections to ols config, moved ols out of repo
ols is now assumed to exist installed by the user
2024-05-04 08:26:52 -04:00
Ed_
7162c5a14d last state of the prototype.
* Still has memory issue
* Was last using it to learn some PGA from Lengyel's books
2024-04-08 01:35:53 -04:00
Ed_
e3ff1ce70f Finally fixed memory allocations for slabs/pools/virtual arenas 2024-03-20 22:34:18 -04:00
Ed_
714d60ee34 Trying to figure out this bug with pools... 2024-03-20 13:34:47 -04:00
Ed_
fb1a6063a7 fixed hot reload
there is still memory issues T-T
2024-03-20 01:23:50 -04:00
Ed_
2d5e308046 misc changes, hot reload is broken 2024-03-20 00:44:43 -04:00
Ed_
737e8596f3 Fixed a dumb memory bug with arrays 2024-03-19 23:25:48 -04:00
Ed_
bf211a8e14 Fixed bad resize_non_zeroed impl (cannot use default_resize_bytes_align_non_zeroed, its not a resize) 2024-03-19 12:18:39 -04:00
Ed_
d29a1e20e7 very minor tidying 2024-03-19 08:36:58 -04:00
Ed_
8a40b1462b Setup a 3d viewport for some extra stuff.
Want to mess aroudn with my math notes possibly in this prototype...
2024-03-18 11:44:58 -04:00
Ed_
b0b8f3d595 latest (doing some ark vcs stuff) 2024-03-17 15:30:30 -04:00
Ed_
49a4e117a2 Got "Line LODs" working for the whitespace AST test, first step toward hboxes
Yet another issue with memory persists (seems to be related to slab free)
2024-03-15 00:02:28 -04:00
Ed_
ee8b68ac3e Fixed text auto-layout 2024-03-14 10:11:04 -04:00
Ed_
cf7660e385 first 'full' layout draft impl done.
found a memory bug...
2024-03-14 02:02:09 -04:00
Ed_
180c296556 Updates and fixes to memory 2024-03-14 00:00:44 -04:00
Ed_
0627794e28 saving a mess of stuff with auto-layout before updating with new mess 2024-03-14 00:00:22 -04:00
Ed_
159aedb592 Memory fixes, progress towards anchors support in the UI auto-layout
Also support for margins
2024-03-12 20:55:29 -04:00
Ed_
b4c6fd1866 More fixes & performance improvements
Still havent figured out the realloc issue with virtual arenas... But the fixes the slab perforamnce mitigate it at least.
2024-03-12 02:32:16 -04:00
Ed_
8b8c4948ad Added screeenspace culling for ui boxes 2024-03-11 02:05:30 -04:00
Ed_
1656dffb67 Setup spall profiling, did first optimizations! 2024-03-11 02:05:18 -04:00
Ed_
304e710c16 It works but there is a memory issue... (parsing in tick update) 2024-03-10 20:09:04 -04:00
Ed_
c80254adbc Got whitespace parser working + widget generation for basic case! 2024-03-10 10:31:21 -04:00
Ed_
197dd82e78 update odin repo 2024-03-09 14:53:51 -05:00
Ed_
7b69723f35 Made the ui_resize_border_width percent based instead of pixel based. 2024-03-09 14:24:02 -05:00
Ed_
4a53a158e0 Lefted text box test to its own widget proc, fixed overlapping widget interaction! 2024-03-09 13:55:47 -05:00
Ed_
635ce91a9d First text box!!! 2024-03-09 10:21:48 -05:00
Ed_
f1edf1c43e Added basic string interning 2024-03-08 23:20:49 -05:00
Ed_
c395cbaeb6 Some cleanup
need todo string interning next....
2024-03-08 19:51:46 -05:00
Ed_
cb58f4faef Improvements to UI signal 2024-03-08 18:45:27 -05:00
Ed_
4b026c379a Started to do manual control of the frame timing (no longer using raylib) 2024-03-08 18:45:08 -05:00
Ed_
191d5076ea Dragging! & basic proportional box resize frm cursor distance to box pos
Still need to add resize via 'pulling' to stretch the box out from a side or 2 sides diagonally.

Also some general clenaup of code
2024-03-08 03:34:21 -05:00
Ed_
a5208f2be2 Slab allocator works! 2024-03-07 19:15:54 -05:00
Ed_
aa47f0ead0 Slab allocator compiler bug fixes 2024-03-07 18:29:49 -05:00
Ed_
f17aead3ea Comment cleanup 2024-03-07 17:58:28 -05:00
Ed_
568e8043bb removing no longer used code from env 2024-03-07 17:57:58 -05:00
Ed_
06a040d056 Removing commetns from grime 2024-03-07 17:57:36 -05:00
Ed_
0afb4c3197 rename parser_code to parser_code_agnostic 2024-03-07 17:57:10 -05:00
Ed_
f2237e7211 Started to overhaul memory setup + runtime fixes 2024-03-07 15:57:17 -05:00
Ed_
6836459a1d Completed first draft of slab allocator 2024-03-07 03:10:21 -05:00
Ed_
d63c58008e Completed first draft iteration of grime_pool_allocator 2024-03-06 22:41:36 -05:00
Ed_
c71ed67d6a minor fromatting changes 2024-03-06 22:41:17 -05:00
Ed_
1f2f0c66d8 Added impl for singly-linked lists 2024-03-06 22:41:01 -05:00
Ed_
6e52a79ca2 Compile fix for grime_arena 2024-03-06 22:40:45 -05:00
Ed_
d92e4e1c7c Rolled my own virtual arena allocator
Much more straight forward and setup for my specific use case
2024-03-06 16:47:40 -05:00
Ed_
8eef63e84f Minor unicode file changes 2024-03-06 16:47:00 -05:00
Ed_
64229e6ca5 Updates to zpl hash map description 2024-03-06 16:46:33 -05:00
Ed_
9229358a16 Updates to general memory defs 2024-03-06 16:46:23 -05:00
Ed_
aa9ce39224 Typo in grime_stack file 2024-03-06 16:45:50 -05:00
Ed_
3ab6bb8616 Rolled my own virtual memory baseline interface
Mostly use the core library's functionality but wanted a nicer wrap for my use case
2024-03-06 16:45:12 -05:00
Ed_
0656a41cf7 Move context_ext to its own file
Will be adding context related features here in the future
2024-03-06 16:44:38 -05:00
Ed_
59ad47162d Update font_provider with raylib changes 2024-03-06 16:44:01 -05:00
Ed_
3c8abc5333 Start to setup the other allocators I'm going to roll my own of, also created a string interning file 2024-03-05 10:41:42 -05:00
Ed_
898f359470 Removed box serialial unmarshaling def 2024-03-05 10:41:11 -05:00
Ed_
eb66f5c70d Beginning setup of the code agnostic parser 2024-03-05 10:40:42 -05:00
Ed_
43a1c20d73 General refactors to various files
* Moved all mapped procedure overloads to grime.odin
* Removed extraneous entity_box related procedures
* Major refactor to grime_array its header is now allocated as part of its initialization
*
2024-03-05 10:40:28 -05:00
Ed_
3ee5dd7d65 First complete iteration of stack allocator 2024-03-05 10:38:12 -05:00
Ed_
509b73f79c Fix for linked lists 2024-03-05 10:37:51 -05:00
Ed_
3a63914282 Deleting entity_box2 for now as its not needed 2024-03-05 10:20:18 -05:00
Ed_
ceb746e537 Rolled my own string_to_runes 2024-03-05 10:19:27 -05:00
Ed_
fd44001456 Added vmem arena file
Going to need to roll my own for my use case.
2024-03-05 10:18:38 -05:00
Ed_
bba45ce96b deleting hot_reload file (not needed right now) 2024-03-05 10:18:13 -05:00
Ed_
0622add196 Added WYSIWYG odin parser file 2024-03-05 10:17:53 -05:00
Ed_
fb6d66140e Iteration on whitespace parser 2024-03-05 10:17:27 -05:00
Ed_
218af644d6 Added more helpers for memory ptr math 2024-03-05 10:16:50 -05:00
Ed_
d83d1cc128 Added push_back/pop_back for doubly-linked lists 2024-03-05 10:16:23 -05:00
Ed_
b05c87e250 Minor cleanup of font provider 2024-03-05 10:15:56 -05:00
Ed_
5147a53c4d Prepping for new vmem layout 2024-03-05 10:15:44 -05:00
Ed_
bd6e79d005 Runtime fixes 2024-03-02 20:22:28 -05:00
Ed_
b4feb9e506 make slab allocator file 2024-03-02 19:29:08 -05:00
Ed_
b0adfbf5f5 Made the initial whitespace parser 2024-03-02 18:19:27 -05:00
Ed_
035c726a71 got basic ui elmental interaction working, + alignment of anchor 2024-03-02 10:24:09 -05:00
Ed_
77449819af Deleting redundant hash table files for now.
I can bring them back from the commit history when I decide to explor again.
2024-02-29 19:38:29 -05:00
Ed_
12aa6b4870 Mostly exploring hashtables, some new files...
I made the files for the ast but they're not populated yet.
I made some initial implementation for raddbg flavored linked-lists.
2024-02-29 19:37:37 -05:00
Ed_
1de141288f Made font_cache use the zpl hash map, make a proper setup for how many atlases to sore in the size_table 2024-02-27 09:32:26 -05:00
Ed_
4deee942a8 General codebase refactor & cleanup
Renamed HashTable to HMapZPL, with procs having the zpl_ namespace prefix.
(I want to eventually get away from using it)

Started to use the grime pattern for library aliasing better.
2024-02-27 07:50:57 -05:00
Ed_
a00ba8a152 Minor cleanup for formatting, reverse verify condition usage
Verify condition needed to only fire off if false not the other way around.
2024-02-23 09:36:23 -05:00
Ed_
9b3bc6fd68 Got this thing to compile and seem operable at runtime
There was quite a few errors with the hashtable (not suprised). I need to use it more to see if it fails to work properly.

For now it should be fine enough for prototyping
2024-02-22 23:15:29 -05:00
Ed_
7332644515 Preparing skeleton for proper imgui support.
I originally wanted to reference Ryan's UI series along with the RAD Debugger codebase, but that ended up being too convoluted of a route. Instead, I moved on to just doing a deep dive on imgui content I could find to learn from and associated libraries available. I collected my notes so far in this repo [IMGUI_Notes](https://github.com/Ed94/IMGUI_Notes).

For now I have the base scaffolding datatype wise for the prototype ui.
2024-02-22 21:19:29 -05:00
Ed_
9cc0855c03 compile error fix 2024-02-14 02:46:08 -05:00
Ed_
9b959ef869 Initial impl pass for grime array and hashtable 2024-02-14 02:29:28 -05:00
Ed_
2da0554c78 Not using dynamic map temporarily for font caching
There is an issue with hot-reloading dynamic maps. So I'll be using my own dynamic array and hashtable instead to debug the reason.
2024-02-14 02:29:08 -05:00
Ed_
8d4b59353f some progression on ui code 2024-02-14 02:27:40 -05:00
Ed_
04c8f84e7d We got decent text rendering in world now! 2024-02-13 18:50:22 -05:00
Ed_
5c124521dc Font drawing is nice now 2024-02-13 17:16:39 -05:00
Ed_
f36b05e795 Starting to layout scaffolding for UI based on RAD Debugger/Ryan's UI Series 2024-02-12 20:52:56 -05:00
Ed_
794852a0b0 Got initial box mouse select detection working 2024-02-12 00:35:22 -05:00
Ed_
6147d4e344 Refactors, lots and lots of it... plus coodinate space 2024-02-11 23:00:06 -05:00
Ed_
f76ba4e9ba Lots of stuff (Big ones are cam and frame initial features)
There is now a 2D camera in the workspace!
We have a basic 'Frame' definition. It doesn't have any interaction yet...

I started to define spacial math, mostly for doing conversion and getting a grounding on pixel/points/cm reference. The world space is in cm.
2024-02-10 03:40:53 -05:00
Ed_
2d698d22c9 Added versioning to project serialization 2024-02-09 13:39:08 -05:00
Ed_
58851e34ac Got project saving/loading initally working 2024-02-09 13:09:58 -05:00
Ed_
58c3f23327 Moved the curly to KP_Enter on the lookup table to prevent a false syntax error for now 2024-02-08 22:36:52 -05:00
Ed_
6819336696 Got logging setup
There is an issue with the tracked allocators made for the host module.
I'll need to see later whats going on, for now it doesn't matter.
2024-02-08 22:33:53 -05:00
Ed_
d205aba15a Set the base address back to 1 tb 2024-02-08 16:05:56 -05:00
Ed_
84d9675a27 Got replay working
Doesn't work across app runs, unlike handmade the crux here is raylib. Even if we did raylibs features ourselves there would still be an issue of restoring the gpu memory state. So in order to have replays work across app runs is proper state serialization.

I'll leave that for later and focus on the next core features.
2024-02-08 16:05:15 -05:00
Ed_
9b4ceeffda Baseline input and replay setup done. Needs testing and fixes 2024-02-08 10:50:36 -05:00
Ed_
f27245f7a2 Moved grime to its own dedicated file 2024-01-30 02:27:45 -05:00
Ed_
282c071163 Finished off some loose ends for hot-reload 2024-01-30 01:54:37 -05:00
Ed_
2e6ca2d0fd Segregated host/api better. Memory setup is problably solid now. 2024-01-30 01:29:48 -05:00
Ed_
0c2a95c796 Update deps to not copy dlls if odin wasn't updated. 2024-01-25 11:31:21 -05:00
Ed_
c9a10c3b41 Fix for hot-reload (raylib shared required on odin compiler) 2024-01-25 11:24:52 -05:00
Ed
1755dac070 wip fixes for hot reload 2024-01-25 10:49:57 -05:00
Ed_
89f2041b79 Setup project to auto-grab dependencies directory from a fork of the odin repo. 2024-01-22 21:38:09 -05:00
Ed_
761794f594 Hot reload works 2024-01-22 03:47:53 -05:00
Ed_
77a48d7104 Memory setup for hot-reload & save states 2024-01-22 00:22:06 -05:00
Ed_
3b259f2893 Odin is nice. 2024-01-21 23:38:02 -05:00
Ed_
d0c016a355 Got window setup & basic text to window space debug. 2024-01-21 13:35:52 -05:00
Ed_
85ac6a1d55 Initial stuff 2024-01-21 11:16:12 -05:00