[video output=day175 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Finishing Sparse Unicode Support" vod_platform=youtube id=kXQMyg4Prfo annotator=Miblo annotator=debiatan]
[0:23][Recap and plan for today]
[1:10][Reviewing the the current status of the test asset builder]
[4:55][On type-safe memory allocations]
[7:13][Reserving space for the null glyph]
[10:39][Happy Birthday, Windows][quote 197]
[13:18][Running the asset builder]
[13:50][Reviewing the asset loading code]
[14:30][We don't address Unicode codepoints directly anymore]
[15:16][Unpacking the dense glyph table]
[16:18][Using an unnecessarily big Unicode mapping table for the moment]
[19:53][Storing the highest used codepoint in the asset file]
[22:25][Hunt for ONE_PAST_MAX_FONT_CODEPOINT][quote 198]
[23:03][Genius day at Handmade Hero][quote 199]
[23:26][Casey's mommy says he's very good at programming][quote 200]
[24:39][We normally wouldn't be doing finicky suballocations by hand]
[26:20][Adding extra finalization code after font loading]
[28:10][Building the Unicode mapping table]
[32:50][Implementing ZeroArray helper function]
[34:10][Guarding against overflows by double casting]
[35:27][Substituting codepoints with glyphs]
[37:25][Implementing the glyph lookup routine]
[38:26][Debugging today's and yesterday's changes]
[38:54][No fonts visible. Let's inspect the font loading code]
[39:33][OnePastHighestCodepoint was set but not saved to the asset file]
[42:38][Another small error in font loading code]
[43:20][Our font is back!]
[43:28][Displaying the handmade owl unicode codepoints]
[44:08][We egged Casey on][quote 201]
[51:10][The kanji codepoints are there but not kerned properly]
[52:20][Q&A][:speech]
[53:39][@ChronalDragon][So, are we done with fonts now? Moving on to other parts of the debug?]
[54:32][@ijustwantfood][So what will we be moving onto next week?]
[55:13][@InstantKafka][Any chance you could use a different font for the editor? Hard to tell difference between 0s and 8s]
[55:34][@Manicthenobody][It's possible that that's how it is supposed to be kerned]
[56:57][@cubercaleb][Maybe it's just twitch, but the letters in Red look a bit off on the edges]
[59:38][@elxenoaizd][Might be a basic question but why do we need our own font rendering? Doesn't Windows have its own font rendering functions we could call?]
[1:01:14][@SeaOfSorrows][I saw you were wearing something around your forearms. Is that to treat Tendinitis? I heard about this condition from typing too much]
[1:01:27][@abnercoimbre][People don't understand why a font rendering system can be complex because they think in terms of pixels. Any comments on this (only if there are no other questions)?]
[1:01:59][@butwhynot1][Can you check if your numbers are monospaced? For example, 111111 should be the same width as 999999]
[1:03:17][@ChronalDragon][What happened to ZoomIt?]
[1:04:21][@krabba][Not a question but I think ZoomIt is just on the desktop]
[1:05:48][@andsz_][The ones and nines don't line up the same way in game and in notepad]
[1:06:57][@elxenoaizd][How do you have the background black in Mischief? I found it a bit tricky to change the background color for some reason, surprisingly!]
[1:07:17][@nicstop][How do you prefer to traverse trees, loops or recursion? Why?]
[1:07:46][@elxenoaizd][If you want to start your own game project, do you start from scratch, use Frameworks / API / SDKs (SFML, SDL, etc.) or use an engine (custom made by you, or one that already exists)?]
[1:08:41][@butwhynot1][They don't line up relative to each other though]
[1:09:25][@InstantKafka][Any plans to add scripting or modding hooks?]
[1:09:53][@cubercaleb][Off-topic: How do you grep with your Emacs config?]
[1:10:41][@abnercoimbre][Sure. Some (reasonably) think of the screen as a grid of pixels and that font rendering is directly plastering that font on the screen. So nvm, they just haven't understood beyond bitmap fonts]
[1:11:46][@constantinopol][What font do you use in Emacs?]
[1:12:19][@nickrolfe][Why did you use GlyphIndexFromCodePoint instead of an array of (mostly null) pointers to achieve sparseness?]
[1:13:18][@Mr4thDimention][How valuable do you think non-mono-spaced fonts would be in, say, an editor?]
[1:14:10][@DryZilla][Could you recommend a website or YouTuber that could teach me coding? I really want to learn]
[1:16:45][@elxenoaizd][I like to limit the scope of my functions to be defined only where they're used. How do you workaround the fact that C doesn't have locally defined functions? Do you use functors?]
[1:17:48][@constantinopol][Vertical cursor navigation is easier to follow in a mono font]
[1:18:05][@cubercaleb][Tried to use grep in Emacs: the program crashed]
[1:18:26][@elxenoaizd][How do you handle introspection / metadata to build your editor inspection tools?]
[1:19:05][Wind it down][:speech]
[/video]
