Commit Graph

88 Commits

Author SHA1 Message Date
Ed_
73ba89e7f9 WIP - VEFontCache: Rendering 3k lines of whitespace ast is 16 ms rn... 2025-01-02 17:49:39 -05:00
Ed_
560b2a125b Adjustments to render codepath on sectr side 2025-01-02 13:00:22 -05:00
Ed_
5559d62826 Got render_list proper setup for UI_State rendering...
Still need a spacial indexing method to prevent redundant enqueues to the drawlist (esp for text)

I'm in the process of trying to see if I can keep getting vefontcache even more performant... Making it multi-threaded can help but there might be some single-thread per still possible..
2025-01-01 14:13:30 -05:00
Ed_
c7d465d06e Another bugfix for hashmap_chained 2024-12-31 11:26:21 -05:00
Ed_
9015f4ce3c Converted UI_State box caches to use hmap_chained 2024-12-31 02:39:18 -05:00
Ed_
b54d336193 Adjustments to logger 2024-12-31 02:07:30 -05:00
Ed_
ddca5e8668 Finished initial window implementation 2024-12-31 00:17:05 -05:00
Ed_
2a89778c0f May have figured out auto-layout for ordering children (horizontally or vertically)
I'm going to leave the manual compute_layout options for now but their going to be disabled by default.
2024-12-30 23:05:15 -05:00
Ed_
d61bd8f161 more misc changes
It seems applying ceil to cache_glyph_to_atlas.dst_glyph_size does generally improve text clarity...
2024-12-30 19:55:16 -05:00
Ed_
2f2253f12c misc changes
* Decided to not have a state scope (going to be more ganular)
* Fixes to settings_menu (prepping to convert to window after log scope is done)
2024-12-30 19:39:41 -05:00
Ed_
495e14194e Began to setup a UI_Window (generalized window widget) 2024-12-30 15:01:37 -05:00
Ed_
841260849e more reduction of direct mutuable state referencing 2024-12-30 13:26:14 -05:00
Ed_
57d51fc7b1 Began to reduce direct referencing of mutable state struct 2024-12-30 12:22:26 -05:00
Ed_
7488a6828e Text improvements
* Added clear_atlas_region_caches & clear_shape_cache to VEFontCache (Used on hot-reload by the pototype's font provider)
* Made glyph_draw's over_sample a vec2 for initialization (incase user wants to do some float value multiple of 4x4)
* ADVANCE_SNAP_SMALLFONT_SIZE made a runtime option: Shaper_Context.adv_snap_small_font_threshold
* Large imporvement to text hinting and general rendering of text
2024-12-29 17:30:00 -05:00
Ed_
7eab6f9a7f WIP: attempt to improve text rendering 2024-12-29 10:20:06 -05:00
Ed_
292d1b58b5 finishex exposing cam zoom settings to the wiget menu and the font size canvas scalaar 2024-11-30 04:51:03 -05:00
Ed_
7f8a068268 titles for the zoom mode setting menu btns aren't behaving correctly... 2024-11-30 01:04:32 -05:00
Ed_
533da2cdfb made intial impl for UI_TextInputBox, used it with min and max cam zoom settings ui 2024-11-29 23:17:27 -05:00
Ed_
f6ba5b2638 minor cleanup before generalization 2024-11-29 20:29:26 -05:00
Ed_
c62bf2cf07 refinements to input box prototype
Added constraints, visual feedback blink when bad input, enter can confirm setting

Adding proto-text cursor next
2024-11-29 17:46:22 -05:00
Ed_
36678c1127 Fixes for nov 7 breaking changes to sokol_gfx 2024-11-26 10:50:26 -05:00
Ed_
e793392e85 force rename lower 2024-07-01 16:14:33 -04:00
Ed_
d797762702 fix for harfbuzz, remove raylib from update_deps.ps1 2024-07-01 01:24:43 -04:00
Ed_
331046f590 Remove excess content from VEFontCache (keeping it only in its repo) 2024-06-30 21:53:42 -04:00
Ed_
0655ade456 Support for rounded rectangles & borders (not the best implementation...) 2024-06-30 13:37:24 -04:00
Ed_
2698670890 Finally reached parity pre-rendering overhaul 2024-06-29 23:49:12 -04:00
Ed_
597c88c6b7 Misc + made a more controlled digital zoom
Trying to get digital zoom to closer target levels that would match specific even font sizes

Various other changes from iterating on VEFontCache
2024-06-29 22:36:22 -04:00
Ed_
93e43c2b19 Updates for getting get_font_vertical_metrics, + other cleanup 2024-06-28 17:39:28 -04:00
Ed_
12741a228d mostly formatting/name changes and other misc stuff 2024-06-28 03:27:25 -04:00
Ed_
e6ccdd90d1 changes to sectr module based on VEFontCache changes 2024-06-26 15:23:44 -04:00
Ed_
9d0cc125a9 Misc changes
* Made refactor rende procedures to specify dependencies instead of directly grabbing from state singleton
2024-06-26 06:03:00 -04:00
Ed_
1533a14a1b misc changes
* draw_text_string_pos_extent_zoomed can now oversample text futher (if desired)
* render_ui_via_box_tree has a rudimentary render pass layering optimization

Add support for the slab allocator to accept arbitrary alignments (odin's map container needs it)
Messing around with 64-byte alignment as the default for the allocator...
2024-06-25 19:13:41 -04:00
Ed_
1fe741034d wip : trying to fix the workspace view bounds detection 2024-06-25 02:38:08 -04:00
Ed_
894c3fee97 Fix hot-reload 2024-06-24 23:38:53 -04:00
Ed_
6f722026ce Text rendering is now around parity (if not better) than what was done before with raylib
Performance still sucks since the rendering implementation is subpar
2024-06-24 23:19:08 -04:00
Ed_
c93c0ed567 Minor lifting in the render side, getting ready to just hunker down and take notes on whats next
* VEFontCache needs to get fixed up (possibly bring back ELFHash)
  * Problably going to do conversion early to odin's array and map usage
* Need get the quad tree setup for the ui so that I can do fast and efficient traversal for the layer based rendering.
2024-06-24 16:36:22 -04:00
Ed_
0d9623c340 layer text rendering works, ui has issues, there is perf problems
* Added todos for VEFontCache
* Going be remaking the direct box traversal rendering again, I'll keep both layer based and it as a option to switch between
* Need to implement a quad tree for the ui boxes to help with collision test traversal
2024-06-24 11:29:44 -04:00
Ed_
dee8fc7ef9 layer text rendering is working! 2024-06-23 21:32:00 -04:00
Ed_
7d41fcc335 wip : trying to get layered text rendering working 2024-06-23 20:22:36 -04:00
Ed_
55b80da8e5 Fixed input event buffer issues
Queue doesn't properly act as a ring buffer had to roll my own.
I want to make a allocated ring buffer as well...
2024-06-23 13:59:04 -04:00
Ed_
ce1d31f0d4 Progress on fleshing out rendering (Getting ui ready to render in "layer batches") 2024-06-23 02:47:13 -04:00
Ed_
a560222d5d Fixed a long-standing issue with the chained hashmap (finally) 2024-06-21 00:26:29 -04:00
Ed_
c405c47e6c mem tracker updates 2024-06-20 15:36:47 -04:00
Ed_
489faf5515 Misc changes (refactors, notes) 2024-06-20 14:39:50 -04:00
Ed_
5d6f996d3c Finished fixing input back to prev-sokol feature parity 2024-06-19 18:09:11 -04:00
Ed_
59ed4d9dd6 fix hot-reload, starting to setup proper rendering again.
* Added hot_reload, measure_text_size to VEFontCache
2024-06-19 02:34:02 -04:00
Ed_
4b8c4d0c2c Updated render testing str 2024-06-18 17:56:34 -04:00
Ed_
05ecad8f56 sokol gp rectangle demo works! 2024-06-18 17:24:07 -04:00
Ed_
b698f5166b Base input pass updated for sokol possibly done (untested)
Still need to figure out input event consumption, I don't want to do it with the event ring.

I would like to setup input binding layers and then have the push/pop input contextes with a set of bindings.
If the bindings are detected it should "consume" that binding from further use for the buffered time period.

This will be really important with how heavily model this app will be.I
2024-06-18 01:33:50 -04:00
Ed_
425a642fd3 Started to setup input events based off sokol
Will replace the input polling done with raylib.

Going to also provide the more robust input tracking for consuming events with the UI interactions
2024-06-17 03:35:53 -04:00