Commit Graph

172 Commits

Author SHA1 Message Date
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