Commit Graph

50 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 4adbfaa9fd WIP - VEFontCahe: More progress on optimizing codepaths with SOA 2025-01-01 22:11:41 -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 b54d336193 Adjustments to logger 2024-12-31 02:07:30 -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 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 898c389bb0 prototype cursor done 2024-11-29 20:11:08 -05:00
ed 36678c1127 Fixes for nov 7 breaking changes to sokol_gfx 2024-11-26 10:50:26 -05:00
ed cfc1a802d5 fix for changes to sokol_gfx.Filter.NONE to NEAREST 2024-09-09 13:26:59 -04:00
ed 93e43c2b19 Updates for getting get_font_vertical_metrics, + other cleanup 2024-06-28 17:39:28 -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 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 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 2b83b69745 Converted string cache table to use HMapChained, initial impl for ui_box_traverse_next_layer_based 2024-06-21 16:33:15 -04:00
ed a560222d5d Fixed a long-standing issue with the chained hashmap (finally) 2024-06-21 00:26:29 -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 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
ed b1927a8461 optimize_draw_list now produces parity optimization to original 2024-06-16 10:27:58 -04:00
ed 000d46cd73 misc fixes, trying to get parity optimizatin to original VEFontCache
still not getting the pass reduction to be equivalent...
2024-06-16 08:57:06 -04:00
ed 13f24b4ae9 More fixes, more letters 2024-06-15 08:20:58 -04:00
ed 5f09c22f11 Finally got a letter on the screen with the VEFontCache port 2024-06-15 04:29:10 -04:00
ed 569ce5ce99 still diagnosing... 2024-06-15 02:08:29 -04:00
ed 87bc31636e lots of corrections to VEFontCache, still no letters on screen
Something is either wrong with the sokol_gfx rendering setup or its a really dumb checkbox/uv value
2024-06-14 17:00:06 -04:00
ed 3b9e08794a More progress toward VEFontCache rendering
Based off of render doc, most likely down to UV issues for where on the glyph buffer the shape is located
2024-06-14 03:13:47 -04:00
ed bcb684e140 Renders to glyph and I think the atlas targets (but not the screen) 2024-06-13 20:44:10 -04:00
ed 314582b225 Changes while attempting to debug 2024-06-13 18:25:11 -04:00
ed 692ca3a577 sokol gfx bug fixing for the pass/pipeline log errors (still black screen) 2024-06-13 13:58:23 -04:00
ed 5bd6519b6a Bugfixing the runtime (rendering not working yet) 2024-06-11 22:20:30 -04:00
ed 82e7482c85 Finished first draft for VEFontCache font provider hookup for sokol_gfx (untested) 2024-06-09 21:39:49 -04:00
ed 4a931dcbe5 Setup shaders for text rendering based on VEFontCache samples 2024-06-06 16:15:57 -04:00
ed 71e8fadcab VEFontCache: Initial hookup to sectr module & runtime bugfixes 2024-06-06 01:07:23 -04:00
ed 38be79d7a9 VEFontCache: runtime bugfixes 2024-06-06 00:43:18 -04:00
ed 1741532d64 Progress on VEFontCache port, working on freetype outline to stbtt shape 2024-06-03 17:43:15 -04:00
ed f99157aae5 Starting the process of porting VEFontCache 2024-06-02 17:29:44 -04:00
ed e84ec719b3 Progress on lifting the 'grime' module to its own package 2024-05-31 19:31:27 -04:00
ed f415eada0d Doing some heavy refactors on the container interfaces
Trying to set up their use to be more ideomatic to the core containers
2024-05-31 17:58:18 -04:00
ed 3db403017e Lifted fontstash to its own package, made packages for RFont and VEFontCache
Going to do fonstash first then rfont ports.

After will complete the VEFontCache port
2024-05-31 13:04:52 -04:00
ed 0b74a8115e Minor cleanup to current bad impl of font rendering
Just trying to really "get" sokol_gfx.h
2024-05-31 11:25:27 -04:00
ed 936c0100ba Got text rendering to work with sokol_gfx (learngl text rendering article #1)
Need to todo the altas article next then the optimizing vod
2024-05-30 13:06:51 -04:00
ed c681370d8b Just restore some code that I deleted from the raylib font provider file. 2024-05-26 13:58:55 -04:00
ed 797ab227e9 Gut raylib usage from the codebase.
Going to either fully commit to sokol or if it fails, rolling the platform layer myself.
2024-05-25 11:52:23 -04:00
ed cf81d3f9bd Renamed str_fmt_alloc to str_fmt, str_fmt to str_fmt_out, allocator convention enforcement in context
I'm enforcing aprintf it as the default formatter.
I changed up the context allocator assignment to reflect how I've been intending to allocation in startup & platform events vs tick.
Tick uses the frame slab's by default with transient on temp. Startup & platform events use the transient by default & for temp, with any use of the persistent allocator being explicit.
2024-05-22 17:13:56 -04:00
ed cdfc3d65bb Added sokol library to thirdparty
Going to get sokol_gp soonish
Need to look into figuring out text rendering...

I'm preemtively getting this stuff now but I problably won't be swapping raylib impl anytime soon.
2024-05-19 14:04:54 -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