Extracting Kerning Tables from Windows
?
?

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:48Recap and plan for today
0:48Recap and plan for today
0:48Recap and plan for today
2:43There's a bug that prevents the fonts from loading
2:43There's a bug that prevents the fonts from loading
2:43There's a bug that prevents the fonts from loading
3:37Writing fonts in a separate asset file
3:37Writing fonts in a separate asset file
3:37Writing fonts in a separate asset file
6:10Stepping through the asset packer
6:10Stepping through the asset packer
6:10Stepping through the asset packer
12:53We were not setting the horizontal advance correctly. For the moment, we'll just hardcode it to be the width of the current character
12:53We were not setting the horizontal advance correctly. For the moment, we'll just hardcode it to be the width of the current character
12:53We were not setting the horizontal advance correctly. For the moment, we'll just hardcode it to be the width of the current character
16:35We were using the incorrect AssetType for our font glyphs
16:35We were using the incorrect AssetType for our font glyphs
16:35We were using the incorrect AssetType for our font glyphs
18:50Testing and still not loading
18:50Testing and still not loading
18:50Testing and still not loading
19:01Stepping through the asset loading code
19:01Stepping through the asset loading code
19:01Stepping through the asset loading code
21:16Take it backα
21:16Take it backα
21:16Take it backα
21:45On getting olderβ
21:45On getting olderβ
21:45On getting olderβ
22:16Debugging LoadFont
22:16Debugging LoadFont
22:16Debugging LoadFont
22:43We were not calling LoadFont yet!
22:43We were not calling LoadFont yet!
22:43We were not calling LoadFont yet!
23:39Implementing PushFont
23:39Implementing PushFont
23:39Implementing PushFont
27:00The fonts are back!
27:00The fonts are back!
27:00The fonts are back!
28:17Let's look for the correct kerning pair values
28:17Let's look for the correct kerning pair values
28:17Let's look for the correct kerning pair values
29:46Reviewing the GetKerningPairs docs
29:46Reviewing the GetKerningPairs docs
29:46Reviewing the GetKerningPairs docs
31:10Figuring out the number of kerning pairs
31:10Figuring out the number of kerning pairs
31:10Figuring out the number of kerning pairs
32:09Getting the kerning pairs
32:09Getting the kerning pairs
32:09Getting the kerning pairs
33:20Structure of tagKERNINGPAIRs
33:20Structure of tagKERNINGPAIRs
33:20Structure of tagKERNINGPAIRs
36:03What is the default advance?
36:03What is the default advance?
36:03What is the default advance?
41:18Question the ABCsγ
41:18Question the ABCsγ
41:18Question the ABCsγ
41:33Checking the system header files to see which functions and struct offer wide-character alternatives
41:33Checking the system header files to see which functions and struct offer wide-character alternatives
41:33Checking the system header files to see which functions and struct offer wide-character alternatives
43:23Debugging the LoadFont crash
43:23Debugging the LoadFont crash
43:23Debugging the LoadFont crash
45:30GetCharABCWidthsW expects a range, not a count
45:30GetCharABCWidthsW expects a range, not a count
45:30GetCharABCWidthsW expects a range, not a count
46:00Our fonts look nicer now
46:00Our fonts look nicer now
46:00Our fonts look nicer now
47:06Using the ABC's A information to modify the alignment of our glyphs
47:06Using the ABC's A information to modify the alignment of our glyphs
47:06Using the ABC's A information to modify the alignment of our glyphs
48:13(Blackboard) Diagram of the alignment point calculation
48:13(Blackboard) Diagram of the alignment point calculation
48:13(Blackboard) Diagram of the alignment point calculation
49:32Our fonts look even better
49:32Our fonts look even better
49:32Our fonts look even better
51:13The fonts still look bad, but it's Windows' fault
51:13The fonts still look bad, but it's Windows' fault
51:13The fonts still look bad, but it's Windows' fault
52:28See how Segoe Condensed looksδ
52:28See how Segoe Condensed looksδ
52:28See how Segoe Condensed looksδ
53:06Windows fonts make a fontographer cryε
53:06Windows fonts make a fontographer cryε
53:06Windows fonts make a fontographer cryε
54:27We still have to see how our glyph bounding box detection interacts with the system's kerning information
54:27We still have to see how our glyph bounding box detection interacts with the system's kerning information
54:27We still have to see how our glyph bounding box detection interacts with the system's kerning information
57:01The alignment based on the bounding boxes was already correct and we didn't need the ABCs
57:01The alignment based on the bounding boxes was already correct and we didn't need the ABCs
57:01The alignment based on the bounding boxes was already correct and we didn't need the ABCs
1:00:30Modifying the TextOutW call in the asset packer to allow Windows to paint glyphs to the left of the specified drawing point in the font Device Context
1:00:30Modifying the TextOutW call in the asset packer to allow Windows to paint glyphs to the left of the specified drawing point in the font Device Context
1:00:30Modifying the TextOutW call in the asset packer to allow Windows to paint glyphs to the left of the specified drawing point in the font Device Context
1:03:14Q&A
🗩
1:03:14Q&A
🗩
1:03:14Q&A
🗩
1:03:37Robrobby Could you use another text sample like "AVA WA Ta"
🗪
1:03:37Robrobby Could you use another text sample like "AVA WA Ta"
🗪
1:03:37Robrobby Could you use another text sample like "AVA WA Ta"
🗪
1:04:22Learn something new about Arial and Helvetica
1:04:22Learn something new about Arial and Helvetica
1:04:22Learn something new about Arial and Helvetica
1:06:22bkboggy How do you know so much about fonts?
🗪
1:06:22bkboggy How do you know so much about fonts?
🗪
1:06:22bkboggy How do you know so much about fonts?
🗪
1:07:26ChronalDragon Do you typically license fonts for use in games? Or does the loophole about rendering them to bitmaps mean you can just use whatever you want?
🗪
1:07:26ChronalDragon Do you typically license fonts for use in games? Or does the loophole about rendering them to bitmaps mean you can just use whatever you want?
🗪
1:07:26ChronalDragon Do you typically license fonts for use in games? Or does the loophole about rendering them to bitmaps mean you can just use whatever you want?
🗪
1:07:48Recommend Google Fonts1,2
1:07:48Recommend Google Fonts1,2
1:07:48Recommend Google Fonts1,2
1:10:26abnercoimbre Is fonts a topic you enjoy? An author once wrote: "If music is the subjective application of physics, then font rasterisation is almost certainly the subjective application of computer science." Do you agree?
🗪
1:10:26abnercoimbre Is fonts a topic you enjoy? An author once wrote: "If music is the subjective application of physics, then font rasterisation is almost certainly the subjective application of computer science." Do you agree?
🗪
1:10:26abnercoimbre Is fonts a topic you enjoy? An author once wrote: "If music is the subjective application of physics, then font rasterisation is almost certainly the subjective application of computer science." Do you agree?
🗪
1:11:10QuikliGames Probably doesn't make sense to look at kerning for lowercase to Uppercase. I doubt many fonts bother with those cases
🗪
1:11:10QuikliGames Probably doesn't make sense to look at kerning for lowercase to Uppercase. I doubt many fonts bother with those cases
🗪
1:11:10QuikliGames Probably doesn't make sense to look at kerning for lowercase to Uppercase. I doubt many fonts bother with those cases
🗪
1:12:05ijustwantfood Would Times New Roman be any better?
🗪
1:12:05ijustwantfood Would Times New Roman be any better?
🗪
1:12:05ijustwantfood Would Times New Roman be any better?
🗪
1:12:10JamesWidman What are some examples of font / typesetting systems that can do kerning well? Is Knuth's TeX the only game in town?
🗪
1:12:10JamesWidman What are some examples of font / typesetting systems that can do kerning well? Is Knuth's TeX the only game in town?
🗪
1:12:10JamesWidman What are some examples of font / typesetting systems that can do kerning well? Is Knuth's TeX the only game in town?
🗪
1:14:14bkboggy Hmm... good point. More game designers should have a guy / gal who knows about fonts, because I see lots of games where it's hard to read quest text / chat text
🗪
1:14:14bkboggy Hmm... good point. More game designers should have a guy / gal who knows about fonts, because I see lots of games where it's hard to read quest text / chat text
🗪
1:14:14bkboggy Hmm... good point. More game designers should have a guy / gal who knows about fonts, because I see lots of games where it's hard to read quest text / chat text
🗪
1:15:18abnercoimbre Regarding the abstract text, I agree! Which is why I asked. Given your experience, maybe you could've read more into that than I could
🗪
1:15:18abnercoimbre Regarding the abstract text, I agree! Which is why I asked. Given your experience, maybe you could've read more into that than I could
🗪
1:15:18abnercoimbre Regarding the abstract text, I agree! Which is why I asked. Given your experience, maybe you could've read more into that than I could
🗪
1:15:51Robrobby The down-left corner of the "A" is cut, but you search bounds by the pixels, so why did this happen?
🗪
1:15:51Robrobby The down-left corner of the "A" is cut, but you search bounds by the pixels, so why did this happen?
🗪
1:15:51Robrobby The down-left corner of the "A" is cut, but you search bounds by the pixels, so why did this happen?
🗪
1:16:33quartertron Have you played Facade and / or met the designers?
🗪
1:16:33quartertron Have you played Facade and / or met the designers?
🗪
1:16:33quartertron Have you played Facade and / or met the designers?
🗪
1:18:09Clear everything to black instead of white
1:18:09Clear everything to black instead of white
1:18:09Clear everything to black instead of white
1:20:54Robrobby You said Molly Rocket's upcoming game has crazy font functions - can you say one example what about fonts can be crazy? Just wondering
🗪
1:20:54Robrobby You said Molly Rocket's upcoming game has crazy font functions - can you say one example what about fonts can be crazy? Just wondering
🗪
1:20:54Robrobby You said Molly Rocket's upcoming game has crazy font functions - can you say one example what about fonts can be crazy? Just wondering
🗪
1:21:12quartertron What's behind the curtain?
🗪
1:21:12quartertron What's behind the curtain?
🗪
1:21:12quartertron What's behind the curtain?
🗪
1:21:24garlandobloom Facade was kinda interesting. One time I typoed the first thing I said to the guy when he opened the door and he just scowled, shut the door in my face and then the game faded to black and ended
🗪
1:21:24garlandobloom Facade was kinda interesting. One time I typoed the first thing I said to the guy when he opened the door and he just scowled, shut the door in my face and then the game faded to black and ended
🗪
1:21:24garlandobloom Facade was kinda interesting. One time I typoed the first thing I said to the guy when he opened the door and he just scowled, shut the door in my face and then the game faded to black and ended
🗪
1:21:46Check our edges
1:21:46Check our edges
1:21:46Check our edges
1:22:23Close things down here
🗩
1:22:23Close things down here
🗩
1:22:23Close things down here
🗩