Asset Processing with STB TrueType
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next timestamp
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu and Index Controls

a
w
s
d
h j k l


Esc Close menu / unfocus timestamp

Quotes and References Menus and Index

Enter Jump to timestamp

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:02We can use libraries inside the asset processor
0:02We can use libraries inside the asset processor
0:02We can use libraries inside the asset processor
0:50Two ways of generating the font bitmaps: Resorting to windows or using a library
0:50Two ways of generating the font bitmaps: Resorting to windows or using a library
0:50Two ways of generating the font bitmaps: Resorting to windows or using a library
1:32Deciding to resort to an stb library
1:32Deciding to resort to an stb library
1:32Deciding to resort to an stb library
3:38The stb libraries
3:38The stb libraries
3:38The stb libraries
5:08The stb_truetype library
5:08The stb_truetype library
5:08The stb_truetype library
5:37Structure of the stb libraries
5:37Structure of the stb libraries
5:37Structure of the stb libraries
8:57Using the library
8:57Using the library
8:57Using the library
9:39Library integration in two lines
9:39Library integration in two lines
9:39Library integration in two lines
12:08Documentation of stb libraries
12:08Documentation of stb libraries
12:08Documentation of stb libraries
13:51Rasterizing one letter
13:51Rasterizing one letter
13:51Rasterizing one letter
16:31Pass the entire thing to Seanα
16:31Pass the entire thing to Seanα
16:31Pass the entire thing to Seanα
18:27Using GetCodepointBitmap
18:27Using GetCodepointBitmap
18:27Using GetCodepointBitmap
19:27Font scaling; points and pixels
19:27Font scaling; points and pixels
19:27Font scaling; points and pixels
21:37Recording the size of returned bitmap and the X and Y displacement offsets
21:37Recording the size of returned bitmap and the X and Y displacement offsets
21:37Recording the size of returned bitmap and the X and Y displacement offsets
23:41Freeing the memory allocated by stb_truetype
23:41Freeing the memory allocated by stb_truetype
23:41Freeing the memory allocated by stb_truetype
24:30Appreciating work well done
24:30Appreciating work well done
24:30Appreciating work well done
25:43Using the character bitmap as a loaded_bitmap
25:43Using the character bitmap as a loaded_bitmap
25:43Using the character bitmap as a loaded_bitmap
30:49Displaying the bitmap
30:49Displaying the bitmap
30:49Displaying the bitmap
31:26Testing it
31:26Testing it
31:26Testing it
32:00Checking MakeNothingsTest
32:00Checking MakeNothingsTest
32:00Checking MakeNothingsTest
35:18Debugging the drawing code
35:18Debugging the drawing code
35:18Debugging the drawing code
36:10MakeEmptyBitmap was out of date and missing some initialization code
36:10MakeEmptyBitmap was out of date and missing some initialization code
36:10MakeEmptyBitmap was out of date and missing some initialization code
37:00Testing it again
37:00Testing it again
37:00Testing it again
38:38Flipping the letter bitmap upside-down
38:38Flipping the letter bitmap upside-down
38:38Flipping the letter bitmap upside-down
39:58Moving this code to the asset builder
39:58Moving this code to the asset builder
39:58Moving this code to the asset builder
42:09Merge handmade_asset_type_id.h into handmade_file_formats.hβ
42:09Merge handmade_asset_type_id.h into handmade_file_formats.hβ
42:09Merge handmade_asset_type_id.h into handmade_file_formats.hβ
43:03Adding one bitmap per letter to the asset file
43:03Adding one bitmap per letter to the asset file
43:03Adding one bitmap per letter to the asset file
46:42Reload the entire font file and make Sean parse itγ
46:42Reload the entire font file and make Sean parse itγ
46:42Reload the entire font file and make Sean parse itγ
49:43Good job, Handmade Heroδ
49:43Good job, Handmade Heroδ
49:43Good job, Handmade Heroδ
51:14Adapting the font rasterizer test code to the asset system
51:14Adapting the font rasterizer test code to the asset system
51:14Adapting the font rasterizer test code to the asset system
53:20Adapting the asset system to the new asset type
53:20Adapting the asset system to the new asset type
53:20Adapting the asset system to the new asset type
57:37AddCharacterAsset
57:37AddCharacterAsset
57:37AddCharacterAsset
59:22Thank the compilerε
59:22Thank the compilerε
59:22Thank the compilerε
59:58Go ahead and run our generatorζ
59:58Go ahead and run our generatorζ
59:58Go ahead and run our generatorζ
1:00:18Try and debug the program in Visual Studio
1:00:18Try and debug the program in Visual Studio
1:00:18Try and debug the program in Visual Studio
1:00:49Let's try that againη
1:00:49Let's try that againη
1:00:49Let's try that againη
1:01:18This machine is very oldθ
1:01:18This machine is very oldθ
1:01:18This machine is very oldθ
1:02:37Try to change the heads to be fontsι
1:02:37Try to change the heads to be fontsι
1:02:37Try to change the heads to be fontsι
1:03:03Filtering which letters spew out of the fountain
1:03:03Filtering which letters spew out of the fountain
1:03:03Filtering which letters spew out of the fountain
1:07:29Library success!κ
1:07:29Library success!κ
1:07:29Library success!κ
1:08:56Q&A
🗩
1:08:56Q&A
🗩
1:08:56Q&A
🗩
1:09:16TheSizik The 'A' is the best match for the null terminator
🗪
1:09:16TheSizik The 'A' is the best match for the null terminator
🗪
1:09:16TheSizik The 'A' is the best match for the null terminator
🗪
1:09:53JamesWidman 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:09:53JamesWidman 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:09:53JamesWidman 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:32zuurr_ External libraries, malloc/free, what's next, a java virtual machine?
🗪
1:11:32zuurr_ External libraries, malloc/free, what's next, a java virtual machine?
🗪
1:11:32zuurr_ External libraries, malloc/free, what's next, a java virtual machine?
🗪
1:12:11kknewkles 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:11kknewkles 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:11kknewkles 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:46MannuB How would you write debug info now?
🗪
1:12:46MannuB How would you write debug info now?
🗪
1:12:46MannuB How would you write debug info now?
🗪
1:12:59kknewkles 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:12:59kknewkles 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:12:59kknewkles 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:20argimm I noticed "mollyrocket" in one of the comments of the STB file... Did you make contributions?
🗪
1:13:20argimm I noticed "mollyrocket" in one of the comments of the STB file... Did you make contributions?
🗪
1:13:20argimm I noticed "mollyrocket" in one of the comments of the STB file... Did you make contributions?
🗪
1:13:43JamesWidman It looks like this episode was brought to us by the letter N
🗪
1:13:43JamesWidman It looks like this episode was brought to us by the letter N
🗪
1:13:43JamesWidman It looks like this episode was brought to us by the letter N
🗪
1:14:39MannuB Rephrase: how would you output sentences to see debug strings like fps or error codes?
🗪
1:14:39MannuB Rephrase: how would you output sentences to see debug strings like fps or error codes?
🗪
1:14:39MannuB Rephrase: how would you output sentences to see debug strings like fps or error codes?
🗪
1:14:56SoysauceTheKid Is the debug text going to be spewing forth out of the handmade hero's head?
🗪
1:14:56SoysauceTheKid Is the debug text going to be spewing forth out of the handmade hero's head?
🗪
1:14:56SoysauceTheKid Is the debug text going to be spewing forth out of the handmade hero's head?
🗪
1:15:08kknewkles 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:15:08kknewkles 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:15:08kknewkles 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:49cubercaleb It's almost 1am, please tell me this won't be a normal thing
🗪
1:16:49cubercaleb It's almost 1am, please tell me this won't be a normal thing
🗪
1:16:49cubercaleb It's almost 1am, please tell me this won't be a normal thing
🗪
1:18:09Filiadelski Can you input a tilde sign in emacs with your config, because I can't?
🗪
1:18:09Filiadelski Can you input a tilde sign in emacs with your config, because I can't?
🗪
1:18:09Filiadelski Can you input a tilde sign in emacs with your config, because I can't?
🗪
1:18:29kknewkles 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:18:29kknewkles 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:18:29kknewkles 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:39kknewkles 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:19:39kknewkles 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:19:39kknewkles 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:30gasto5 Is formatting coming tomorrow?
🗪
1:20:30gasto5 Is formatting coming tomorrow?
🗪
1:20:30gasto5 Is formatting coming tomorrow?
🗪
1:21:02dgc2002 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:02dgc2002 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:02dgc2002 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:56Go to bed
🗩
1:21:56Go to bed
🗩
1:21:56Go to bed
🗩
1:25:35See you on the internet, Caseyλ
🗩
1:25:35See you on the internet, Caseyλ
🗩
1:25:35See you on the internet, Caseyλ
🗩