Commit Graph
100 Commits
Author SHA1 Message Date
ed 1e7650970b compile fixes 2024-06-26 21:51:33 -04:00
ed fc59f948f5 moved catch_batch_glyph to draw file 2024-06-26 21:40:45 -04:00
ed 86d6adc931 Set glyph_padding to 4 (when using 8x8 over_sample we need more padding) 2024-06-26 17:02:15 -04:00
ed e6ccdd90d1 changes to sectr module based on VEFontCache changes 2024-06-26 15:23:44 -04:00
ed 470197cb6c Advance_Snap_Smallfont_Size to 0 by default, removed position rounding in shape_text_uncached
Need to eventually make the rounding an option
2024-06-26 15:23:02 -04:00
ed 8e8f25ba50 VEFontCache: Lifted the GlyphDrawBuffer member of atlas to the context 2024-06-26 15:15:03 -04:00
ed 343d558a94 Clean up of last remaining vestitudes of using my containers in VEFontCache 2024-06-26 13:28:54 -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 413f544e9c VEFontCache: Codepath simplificiation & optimization 2024-06-26 06:01:06 -04:00
ed 6f034534f3 VEFontCache: Should be using odin arrays and maps excluisvely now for the package 2024-06-25 23:53:44 -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 268ba29ec6 minor pref improvements, started to convert to using odin's arrays (in VEFontCache) (last commit bad) 2024-06-25 19:11:31 -04:00
ed c567d48a4c minor pref improvements, started to convert to using odin's arrays (in VEFontCache) (last commit bad) 2024-06-25 19:11:10 -04:00
ed 00587a226b minor pref improvements, started to convert to using odin's arrays 2024-06-25 19:09:53 -04:00
ed 6fac2a97ff Swapped LRU and temp_codepoint_seen to use odin's vendor hash map
Starting to get serious about profiling this procedure and optimizing performance.
I also want to make it more ideomatic now...
2024-06-25 17:10:18 -04:00
ed b5f9687927 Various improvements to VEFontCache's font rendering 2024-06-25 14:28:59 -04:00
ed 1fe741034d wip : trying to fix the workspace view bounds detection 2024-06-25 02:38:08 -04:00
ed 1f4d07727e minor reorganization 2024-06-25 02:37:18 -04:00
ed 894c3fee97 Fix hot-reload 2024-06-24 23:38:53 -04:00
ed 08932c8c99 Fixes to test_whitespace_ast 2024-06-24 23:19:18 -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 321bbfd772 Fix for VEFontCache: measure_text_size & shape_text_cached 2024-06-24 23:17:18 -04:00
ed 838e37e58d Fixed crash with VEFontCache.can_batch_glyph 2024-06-24 23:16:24 -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 136fef65c4 bad notes updates 2024-06-23 02:45:19 -04:00
ed ea384b10af brainstorming notes on imgui ui_graph_build_end processing passes 2024-06-21 16:33:34 -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 c405c47e6c mem tracker updates 2024-06-20 15:36:47 -04:00
ed f9820457d1 notes 2024-06-20 14:40:02 -04:00
ed 489faf5515 Misc changes (refactors, notes) 2024-06-20 14:39:50 -04:00
ed 03500acb9a notes updates 2024-06-20 14:38:32 -04:00
ed 5d6f996d3c Finished fixing input back to prev-sokol feature parity 2024-06-19 18:09:11 -04:00
ed 6f4a5e215c prevent hot reload failure from lack of transient backing 2024-06-19 05:51:34 -04:00
ed bcbbf95471 add support for fixed_size option to make_queue 2024-06-19 05:51:13 -04:00
ed 10f58b432e truncate log files on init 2024-06-19 05:50:40 -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 d2d55b210c Setup initial readme for VEFontCache 2024-06-18 11:24:54 -04:00
ed 156ddcef97 Removing fontstash and RFont from codebase
Planning to instead just focus on using VEFontCache.
2024-06-18 11:18:33 -04:00
ed d6cd65288f remove input_raylib.odin 2024-06-18 10:22:34 -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 3b395f3356 Ignore thirdparty and toolchain directories & updates to build scripts 2024-06-17 17:24:59 -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 05ffaf432d VEFontCache: got rid of elf hash using a "label" hash borrowed from the rad debugger
There was an issue with uniqueness so I just decided to scrap it (no need to keep parity with the original there...)
2024-06-17 01:24:03 -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 9cc5d85b01 fix for draw optimization 2024-06-16 08:56:24 -04:00
ed 964c6c852d Fixes to shape cache and atlas region math 2024-06-16 08:56:06 -04:00
ed fd3bb65aaf fixes to LRU font cache 2024-06-16 08:54:37 -04:00
ed 65be3eae03 More bug fixing, All latin characters don't look corrupt anymore
HMapChained causes memory corruption in VEFontCache (not sure why yet), so I switched temporarily over to HMapZPL.

Fixed bug with parser_get_glyph_shape from me tracking vertices as u16s instead of i16s.

Currently a bug with the frametime example:
text_test_str := str_fmt("frametime: %0.2f", frametime_avg_ms)

It doesn't handle per-frame updates properly compared to C++ source
2024-06-15 14:53:26 -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 7ec00edfbd render doc nows shows the lettter... 2024-06-13 19:44:55 -04:00
ed 3402701f99 fix bug with outside bunds calc for VEFontCache.cache_glyph 2024-06-13 18:35:32 -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 93368a40ff Changed new shapers' namespace to just ve 2024-06-06 16:19:53 -04:00
ed 4a931dcbe5 Setup shaders for text rendering based on VEFontCache samples 2024-06-06 16:15:57 -04:00
ed a81019d2a5 Decided against the mapping of parser and shaper infos
Parser and shaper should just be intrusive to w/e uses them adding a map directions slows things down for no reason..
2024-06-06 10:19:20 -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 566a90001b Finished draft porting pass for VE Font Cache (next is hook to sokol_gfx + runtime testing) 2024-06-05 19:52:25 -04:00
ed d469fd53e8 progress on VEFontCache port 2024-06-05 13:27:34 -04:00
ed 991e7a81c0 Progress on VEFontCache port, only cache_glyph_to_atlas & shape_text_uncached left 2024-06-04 18:44:12 -04:00
ed 26e53bf327 VEFC: ported decide_codepoint_region 2024-06-04 13:30:30 -04:00
ed 38ebed8874 VEFC: Added bad edge case to handle parsing conic curves, progess on cache_glyph 2024-06-03 21:08:12 -04:00
ed c182ab7173 An attempt at doing a freetype outline to the stbtt shape verts 2024-06-03 19:37:09 -04:00
ed 1741532d64 Progress on VEFontCache port, working on freetype outline to stbtt shape 2024-06-03 17:43:15 -04:00
ed 26ad2d1e49 VEFontCache : Finished porting the LRU 2024-06-03 01:04:24 -04:00
ed f99157aae5 Starting the process of porting VEFontCache 2024-06-02 17:29:44 -04:00
ed 33ddd420b7 Progress on porting fontstash 2024-06-02 17:29:27 -04:00
ed 9ba718254c lifted the hash maps and the string cache to the grime package 2024-05-31 20:51:30 -04:00
ed e84ec719b3 Progress on lifting the 'grime' module to its own package 2024-05-31 19:31:27 -04:00
ed d63242ac9c Some progress on fontstash 2024-05-31 19:31:08 -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 300727198b made empty files for the projection parsers
Planning to isolate the implementation into a separate package

Eventually the UI and Font handling will also be.
2024-05-31 11:28:24 -04:00
ed 3998776f4b Beginning to lift the "grime" files to their own pacakge 2024-05-31 11:26:52 -04:00
ed 65386372fc ignore settings.json 2024-05-31 11:26:09 -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 0b819fb8bc ignore failed... 2024-05-30 19:55:01 -04:00
ed e3c2daaed4 fix for gen_flattened_codebase.ps1 package paths 2024-05-30 19:52:37 -04:00
ed c353c9032d ignore ols.json 2024-05-30 19:52:17 -04:00
ed 64e56485fa remove .bkup of the learngl shader as its no longer needed 2024-05-30 13:18:28 -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 5c2f55148a zpl_hmap prefix to hmap_zpl, plus some todos to go back to builtin containers 2024-05-26 13:35:08 -04:00