[video output=day163 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Asset Processing with STB TrueType" vod_platform=youtube id=lOLRQ01QY48 annotator=debiatan annotator=Miblo]
[0:02][We can use libraries inside the asset processor]
[0:50][Two ways of generating the font bitmaps: Resorting to windows or using a library]
[1:32][Deciding to resort to an stb library]
[3:38][The stb libraries]
[5:08][The stb_truetype library]
[5:37][Structure of the stb libraries]
[8:57][Using the library]
[9:39][Library integration in two lines]
[12:08][Documentation of stb libraries]
[13:51][Rasterizing one letter]
[16:31][Pass the entire thing to Sean][quote 148]
[18:27][Using GetCodepointBitmap]
[19:27][Font scaling; points and pixels]
[21:37][Recording the size of returned bitmap and the X and Y displacement offsets]
[23:41][Freeing the memory allocated by stb_truetype]
[24:30][Appreciating work well done]
[25:43][Using the character bitmap as a loaded_bitmap]
[30:49][Displaying the bitmap]
[31:26][Testing it]
[32:00][Checking MakeNothingsTest]
[35:18][Debugging the drawing code]
[36:10][MakeEmptyBitmap was out of date and missing some initialization code]
[37:00][Testing it again]
[38:38][Flipping the letter bitmap upside-down]
[39:58][Moving this code to the asset builder]
[42:09][Merge handmade_asset_type_id.h into handmade_file_formats.h][quote 149]
[43:03][Adding one bitmap per letter to the asset file]
[46:42][Reload the entire font file and make Sean parse it][quote 150]
[49:43][Good job, Handmade Hero][quote 151]
[51:14][Adapting the font rasterizer test code to the asset system]
[53:20][Adapting the asset system to the new asset type]
[57:37][AddCharacterAsset]
[59:22][Thank the compiler][quote 152]
[59:58][Go ahead and run our generator][quote 153]
[1:00:18][Try and debug the program in Visual Studio]
[1:00:49][Let's try that again][quote 154]
[1:01:18][This machine is very old][quote 155]
[1:02:37][Try to change the heads to be fonts][quote 156]
[1:03:03][Filtering which letters spew out of the fountain]
[1:07:29][Library success!][quote 157]
[1:08:56][Q&A][:speech]
[1:09:16][@TheSizik][The 'A' is the best match for the null terminator]
[1:09:53][@JamesWidman][Until tonight, I thought there was a use case for CMake (which is that, if the user compiles the program, it finds libraries so that you don't need to know where they're installed). But now... it seems the STB way is the only reasonable default. I think I'm done with CMake for the foreseeable future]
[1:11:32][@zuurr_][External libraries, malloc/free, what's next, a java virtual machine?]
[1:12:11][@kknewkles][You have used a library, and there are riots raging in the streets. I see shadows of pitchforks, cast by torch lights of the rabid crowd. Run, Casey, I'll do my best to slow them down. *tips his hat with a last farewell gaze*]
[1:12:46][@MannuB][How would you write debug info now?]
[1:12:59][@kknewkles][Also, if you make the Hero spew out letters of my nickname at random (at least 'til the end of Q&A (and we already established that I'm the mascot of the community (le lovable goof))), holy hell will I be happy]
[1:13:20][@argimm][I noticed "mollyrocket" in one of the comments of the STB file... Did you make contributions?]
[1:13:43][@JamesWidman][It looks like this episode was brought to us by the letter N]
[1:14:39][@MannuB][Rephrase: how would you output sentences to see debug strings like fps or error codes?]
[1:14:56][@SoysauceTheKid][Is the debug text going to be spewing forth out of the handmade hero's head?]
[1:15:08][@kknewkles][I'm curious: what do you look at when hiring an artist (I have no idea how you apply for that)? After watching a few episodes of Double Fine Adventure I'm in awe at how good artists at Double Fine seem to be and what kind of *richnesses* you have to have to be one of those. You also seem to practise more intelligent and humane approaches to hiring]
[1:16:49][@cubercaleb][It's almost 1am, please tell me this won't be a normal thing]
[1:18:09][@Filiadelski][Can you input a tilde sign in emacs with your config, because I can't?]
[1:18:29][@kknewkles][I don't look for a practical advice, just interested how you do it now. Often my friends tell me "I can't give you an objective answer/data" "screw it, I want YOUR opinion!"]
[1:19:39][@kknewkles][ONE MORE! Ever thought of special episodes with guests/bonus episodes done on specific topics by someone else (being a rad debugger with Jeff or being a splendor deitial programmer with Fabian)?]
[1:20:30][@gasto5][Is formatting coming tomorrow?]
[1:21:02][@dgc2002][I've heard you mention a "new language" someone is developing. Could you mention the name/creator? I Usually listen to Handmade Hero in my car on my way to work so I can't write it down if I hear it]
[1:21:56][Go to bed][:speech]
[1:25:35][See you on the internet, Casey][:speech][quote 158]
[/video]
