Handmade Hero»Episode Guide
Aligning Text to a Baseline
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
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 Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

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:08Recap and plan for today
0:08Recap and plan for today
0:08Recap and plan for today
2:14Scaling fonts with respect to the size of the original glyph asset
2:14Scaling fonts with respect to the size of the original glyph asset
2:14Scaling fonts with respect to the size of the original glyph asset
5:42Getting the bitmap dimensions from the hha_asset structure
5:42Getting the bitmap dimensions from the hha_asset structure
5:42Getting the bitmap dimensions from the hha_asset structure
7:24Implementing GetBitmapInfo
7:24Implementing GetBitmapInfo
7:24Implementing GetBitmapInfo
8:15Drawing text using the original scale of the font
8:15Drawing text using the original scale of the font
8:15Drawing text using the original scale of the font
11:41We also need to fix the vertical alignment
11:41We also need to fix the vertical alignment
11:41We also need to fix the vertical alignment
12:33Understanding the cause of our bad horizontal advancing behavior
12:33Understanding the cause of our bad horizontal advancing behavior
12:33Understanding the cause of our bad horizontal advancing behavior
14:56Vertical alignment to a baseline
14:56Vertical alignment to a baseline
14:56Vertical alignment to a baseline
15:58(Blackboard) Baselines
15:58(Blackboard) Baselines
15:58(Blackboard) Baselines
17:56Using the asset AlignPercentage field to specify the alignment point
17:56Using the asset AlignPercentage field to specify the alignment point
17:56Using the asset AlignPercentage field to specify the alignment point
19:38LoadGlyphBitmap will write the alignment information in the test asset builder
19:38LoadGlyphBitmap will write the alignment information in the test asset builder
19:38LoadGlyphBitmap will write the alignment information in the test asset builder
20:26The alignment information is derived from the text metrics
20:26The alignment information is derived from the text metrics
20:26The alignment information is derived from the text metrics
21:43(Blackboard) Description of the text metrics we'll use
21:43(Blackboard) Description of the text metrics we'll use
21:43(Blackboard) Description of the text metrics we'll use
23:52Finding the alignment point of each bitmap
23:52Finding the alignment point of each bitmap
23:52Finding the alignment point of each bitmap
26:09Setting the horizontal alignment to the left of the character
26:09Setting the horizontal alignment to the left of the character
26:09Setting the horizontal alignment to the left of the character
27:25Vertical alignment using text metrics
27:25Vertical alignment using text metrics
27:25Vertical alignment using text metrics
30:27Testing what we have so far. Still not right
30:27Testing what we have so far. Still not right
30:27Testing what we have so far. Still not right
32:47Trying to avoid the double flipping in the glyph pixel extraction code to simplify it
32:47Trying to avoid the double flipping in the glyph pixel extraction code to simplify it
32:47Trying to avoid the double flipping in the glyph pixel extraction code to simplify it
37:31There's no simple way of doing it while restricting the region of the bitmap we need to scan
37:31There's no simple way of doing it while restricting the region of the bitmap we need to scan
37:31There's no simple way of doing it while restricting the region of the bitmap we need to scan
38:05We're still in janktastic modeα
38:05We're still in janktastic modeα
38:05We're still in janktastic modeα
38:40(Blackboard) Some theories about what's wrong with the vertical alignment
38:40(Blackboard) Some theories about what's wrong with the vertical alignment
38:40(Blackboard) Some theories about what's wrong with the vertical alignment
41:42Does GetTextExtentPoint32 respect the baseline?
41:42Does GetTextExtentPoint32 respect the baseline?
41:42Does GetTextExtentPoint32 respect the baseline?
43:46Stepping into the code to inspect the metrics values
43:46Stepping into the code to inspect the metrics values
43:46Stepping into the code to inspect the metrics values
45:55MinY and tmDescent have conflicting values. Are MinY and MaxY flipped?
45:55MinY and tmDescent have conflicting values. Are MinY and MaxY flipped?
45:55MinY and tmDescent have conflicting values. Are MinY and MaxY flipped?
47:08Computing MaxY correctly
47:08Computing MaxY correctly
47:08Computing MaxY correctly
51:45A heavy brain day at the officeβ
51:45A heavy brain day at the officeβ
51:45A heavy brain day at the officeβ
51:56Vertical alignment works now
51:56Vertical alignment works now
51:56Vertical alignment works now
52:30More consistent horizontal spacing
52:30More consistent horizontal spacing
52:30More consistent horizontal spacing
53:58Summary of pending tasks related to font rendering and drawing
53:58Summary of pending tasks related to font rendering and drawing
53:58Summary of pending tasks related to font rendering and drawing
54:30Applying gamma to correct the alpha blending of fonts
54:30Applying gamma to correct the alpha blending of fonts
54:30Applying gamma to correct the alpha blending of fonts
1:00:03Q&A
🗩
1:00:03Q&A
🗩
1:00:03Q&A
🗩
1:00:31ChronalDragon Does stb_truetype provide text metrics for this sort of thing? Will you show how to get them from the stb lib on stream?
🗪
1:00:31ChronalDragon Does stb_truetype provide text metrics for this sort of thing? Will you show how to get them from the stb lib on stream?
🗪
1:00:31ChronalDragon Does stb_truetype provide text metrics for this sort of thing? Will you show how to get them from the stb lib on stream?
🗪
1:01:37mseery Will you be covering right-to-left text?
🗪
1:01:37mseery Will you be covering right-to-left text?
🗪
1:01:37mseery Will you be covering right-to-left text?
🗪
1:02:05TactileDactyl Do you have any proprietary dependencies?
🗪
1:02:05TactileDactyl Do you have any proprietary dependencies?
🗪
1:02:05TactileDactyl Do you have any proprietary dependencies?
🗪
1:02:18DrLeetClown What were the things you just took off? I'm assuming something for your wrists
🗪
1:02:18DrLeetClown What were the things you just took off? I'm assuming something for your wrists
🗪
1:02:18DrLeetClown What were the things you just took off? I'm assuming something for your wrists
🗪
1:02:25RobotChocolateDino Can you go over how you computed AlignPercentage[1] again?
🗪
1:02:25RobotChocolateDino Can you go over how you computed AlignPercentage[1] again?
🗪
1:02:25RobotChocolateDino Can you go over how you computed AlignPercentage[1] again?
🗪
1:02:43Blackboard: Computing AlignPercentage[1]
1:02:43Blackboard: Computing AlignPercentage[1]
1:02:43Blackboard: Computing AlignPercentage[1]
1:09:36aeadon Are you developing this engine with the intent to use it beyond this game?
🗪
1:09:36aeadon Are you developing this engine with the intent to use it beyond this game?
🗪
1:09:36aeadon Are you developing this engine with the intent to use it beyond this game?
🗪
1:09:50colonparen Aren't we currently using a fixed-width font? So advancing by some fixed distance (instead of the bitmap width) should improve letter spacing even before discussing kerning in full generality?
🗪
1:09:50colonparen Aren't we currently using a fixed-width font? So advancing by some fixed distance (instead of the bitmap width) should improve letter spacing even before discussing kerning in full generality?
🗪
1:09:50colonparen Aren't we currently using a fixed-width font? So advancing by some fixed distance (instead of the bitmap width) should improve letter spacing even before discussing kerning in full generality?
🗪
1:10:19mseery Now that you have text handled, will there be a NetHack (ASCII style) mode for Handmade Hero?
🗪
1:10:19mseery Now that you have text handled, will there be a NetHack (ASCII style) mode for Handmade Hero?
🗪
1:10:19mseery Now that you have text handled, will there be a NetHack (ASCII style) mode for Handmade Hero?
🗪
1:10:31TactileDactyl Proprietary dependencies - anything that you need to pay a license fee for to develop or sell copies of the game
🗪
1:10:31TactileDactyl Proprietary dependencies - anything that you need to pay a license fee for to develop or sell copies of the game
🗪
1:10:31TactileDactyl Proprietary dependencies - anything that you need to pay a license fee for to develop or sell copies of the game
🗪
1:12:00Mojobojo Off topic, saved this for the end because I forgot to mention in the beginning. I had a dream with you and Jeff in it. You guys were in my neighborhood on Halloween trick or treating and going door to door asking for candy. At some point I was trying to put on my costume and it got stuck and Jeff was laughing at me
🗪
1:12:00Mojobojo Off topic, saved this for the end because I forgot to mention in the beginning. I had a dream with you and Jeff in it. You guys were in my neighborhood on Halloween trick or treating and going door to door asking for candy. At some point I was trying to put on my costume and it got stuck and Jeff was laughing at me
🗪
1:12:00Mojobojo Off topic, saved this for the end because I forgot to mention in the beginning. I had a dream with you and Jeff in it. You guys were in my neighborhood on Halloween trick or treating and going door to door asking for candy. At some point I was trying to put on my costume and it got stuck and Jeff was laughing at me
🗪
1:13:24Mojobojo I did forget a question. How did you guys get in my dream?
🗪
1:13:24Mojobojo I did forget a question. How did you guys get in my dream?
🗪
1:13:24Mojobojo I did forget a question. How did you guys get in my dream?
🗪
1:13:53ciastek3214 You could try answering the one I just asked
🗪
1:13:53ciastek3214 You could try answering the one I just asked
🗪
1:13:53ciastek3214 You could try answering the one I just asked
🗪
1:14:11iTz_Kaj Why not use block-based sprite fonts for debugging and avoid the Windows font headache?
🗪
1:14:11iTz_Kaj Why not use block-based sprite fonts for debugging and avoid the Windows font headache?
🗪
1:14:11iTz_Kaj Why not use block-based sprite fonts for debugging and avoid the Windows font headache?
🗪
1:15:13mojo123X What do you use for version control at work?
🗪
1:15:13mojo123X What do you use for version control at work?
🗪
1:15:13mojo123X What do you use for version control at work?
🗪
1:15:59mseery Who is John Galt?
🗪
1:15:59mseery Who is John Galt?
🗪
1:15:59mseery Who is John Galt?
🗪
1:16:22Close it down
🗩
1:16:22Close it down
🗩
1:16:22Close it down
🗩
1:16:44We didn't need those electronsγ
🗩
1:16:44We didn't need those electronsγ
🗩
1:16:44We didn't need those electronsγ
🗩