Commit Graph

47 Commits

Author SHA1 Message Date
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_
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_
0e27635a9b Updates to readme 2024-05-04 12:59:08 -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_
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_
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_
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_
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_
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_
f2237e7211 Started to overhaul memory setup + runtime fixes 2024-03-07 15:57:17 -05:00
Ed_
bd6e79d005 Runtime fixes 2024-03-02 20:22:28 -05:00
Ed_
035c726a71 got basic ui elmental interaction working, + alignment of anchor 2024-03-02 10:24:09 -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_
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_
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_
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