Asset Processing with Windows Fonts
?
?

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:02Recap and plan for today
0:02Recap and plan for today
0:02Recap and plan for today
1:43Reasons for and against using libraries in the asset processor
1:43Reasons for and against using libraries in the asset processor
1:43Reasons for and against using libraries in the asset processor
4:19Windows calls to draw fonts
4:19Windows calls to draw fonts
4:19Windows calls to draw fonts
6:11GetPixel: Simplest way of getting the rendered font, pixel by pixel
6:11GetPixel: Simplest way of getting the rendered font, pixel by pixel
6:11GetPixel: Simplest way of getting the rendered font, pixel by pixel
7:06CreateCompatibleDC and CreateCompatibleBitmap
7:06CreateCompatibleDC and CreateCompatibleBitmap
7:06CreateCompatibleDC and CreateCompatibleBitmap
8:46Defining an alternative code path inside LoadGlyphBitmap to render fonts via Windows calls
8:46Defining an alternative code path inside LoadGlyphBitmap to render fonts via Windows calls
8:46Defining an alternative code path inside LoadGlyphBitmap to render fonts via Windows calls
9:51TextOut: Drawing text to an HDC
9:51TextOut: Drawing text to an HDC
9:51TextOut: Drawing text to an HDC
11:21Creating the device context
11:21Creating the device context
11:21Creating the device context
12:20CreateCompatibleBitmap
12:20CreateCompatibleBitmap
12:20CreateCompatibleBitmap
14:00We are not using the right font yet
14:00We are not using the right font yet
14:00We are not using the right font yet
14:23This is a zygote of a thingα
14:23This is a zygote of a thingα
14:23This is a zygote of a thingα
15:14Finding out space taken by the text
15:14Finding out space taken by the text
15:14Finding out space taken by the text
15:58GetTextMetrics
15:58GetTextMetrics
15:58GetTextMetrics
16:48GetTextExtentPoint32
16:48GetTextExtentPoint32
16:48GetTextExtentPoint32
18:18Clearing the background prior to writing the glyph: Patblt
18:18Clearing the background prior to writing the glyph: Patblt
18:18Clearing the background prior to writing the glyph: Patblt
20:22SetTextColor
20:22SetTextColor
20:22SetTextColor
21:28Try doing some extractionβ
21:28Try doing some extractionβ
21:28Try doing some extractionβ
21:48GetPixel: Extraction of the glyph
21:48GetPixel: Extraction of the glyph
21:48GetPixel: Extraction of the glyph
23:50Recap of previous steps
23:50Recap of previous steps
23:50Recap of previous steps
25:24Test out this alternative font implementationγ
25:24Test out this alternative font implementationγ
25:24Test out this alternative font implementationγ
25:57Debugging it
25:57Debugging it
25:57Debugging it
26:50No need to debug; Casey remembers the cause of the problem
26:50No need to debug; Casey remembers the cause of the problem
26:50No need to debug; Casey remembers the cause of the problem
27:36SetBkmode: Setting the background filling behavior
27:36SetBkmode: Setting the background filling behavior
27:36SetBkmode: Setting the background filling behavior
28:29Selecting a background brush instead of calling PatBlt
28:29Selecting a background brush instead of calling PatBlt
28:29Selecting a background brush instead of calling PatBlt
29:18'Doopity Doo' by Casey Muratoriδ
29:18'Doopity Doo' by Casey Muratoriδ
29:18'Doopity Doo' by Casey Muratoriδ
29:55SetDCBrushColor
29:55SetDCBrushColor
29:55SetDCBrushColor
30:28Let's test it
30:28Let's test it
30:28Let's test it
31:35Setting the background color with SetBkColor
31:35Setting the background color with SetBkColor
31:35Setting the background color with SetBkColor
32:13Success!
32:13Success!
32:13Success!
32:50CreateFont: Picking the font
32:50CreateFont: Picking the font
32:50CreateFont: Picking the font
34:31AddFontResourceEx: Making the font visible to windows
34:31AddFontResourceEx: Making the font visible to windows
34:31AddFontResourceEx: Making the font visible to windows
37:26We need to specify the font name
37:26We need to specify the font name
37:26We need to specify the font name
44:52We also need to mark the font as active
44:52We also need to mark the font as active
44:52We also need to mark the font as active
45:44Testing the renderer with a more recognizable font
45:44Testing the renderer with a more recognizable font
45:44Testing the renderer with a more recognizable font
46:54Back to STB font rendering for a minute
46:54Back to STB font rendering for a minute
46:54Back to STB font rendering for a minute
47:52Resorting to solid alpha to inspect the bounding boxes
47:52Resorting to solid alpha to inspect the bounding boxes
47:52Resorting to solid alpha to inspect the bounding boxes
52:54Scanning the bitmap to get the bounding box of the glyph manually
52:54Scanning the bitmap to get the bounding box of the glyph manually
52:54Scanning the bitmap to get the bounding box of the glyph manually
57:41Adding a one-pixel empty border
57:41Adding a one-pixel empty border
57:41Adding a one-pixel empty border
59:40Q&A
🗩
59:40Q&A
🗩
59:40Q&A
🗩
1:00:19insofaras Can the fonts have outlines?
🗪
1:00:19insofaras Can the fonts have outlines?
🗪
1:00:19insofaras Can the fonts have outlines?
🗪
1:00:43gasto5 What did you mean by "backing bitmap"?
🗪
1:00:43gasto5 What did you mean by "backing bitmap"?
🗪
1:00:43gasto5 What did you mean by "backing bitmap"?
🗪
1:03:16cubercaleb I love how stb_truetype is easier and arguably better than the windows api version
🗪
1:03:16cubercaleb I love how stb_truetype is easier and arguably better than the windows api version
🗪
1:03:16cubercaleb I love how stb_truetype is easier and arguably better than the windows api version
🗪
1:03:24ThisisAtticus Vote on the strawpoll!
🗪
1:03:24ThisisAtticus Vote on the strawpoll!
🗪
1:03:24ThisisAtticus Vote on the strawpoll!
🗪
1:04:43Robrobby Does windows font have subscript and superscript support and therefore so much overbounding? Also, is the anti-alias only stored in the alpha value by windows? After seeing a pro like you struggle with this API I understand the burden you go through with it, having seen STB yesterday
🗪
1:04:43Robrobby Does windows font have subscript and superscript support and therefore so much overbounding? Also, is the anti-alias only stored in the alpha value by windows? After seeing a pro like you struggle with this API I understand the burden you go through with it, having seen STB yesterday
🗪
1:04:43Robrobby Does windows font have subscript and superscript support and therefore so much overbounding? Also, is the anti-alias only stored in the alpha value by windows? After seeing a pro like you struggle with this API I understand the burden you go through with it, having seen STB yesterday
🗪
1:06:10insofaras To clarify, do we have the ability to create font bitmaps with outlines on the characters that could maybe be colored separately?
🗪
1:06:10insofaras To clarify, do we have the ability to create font bitmaps with outlines on the characters that could maybe be colored separately?
🗪
1:06:10insofaras To clarify, do we have the ability to create font bitmaps with outlines on the characters that could maybe be colored separately?
🗪
1:07:22gasto5 Which one is worse: GDI or DirectInput8?
🗪
1:07:22gasto5 Which one is worse: GDI or DirectInput8?
🗪
1:07:22gasto5 Which one is worse: GDI or DirectInput8?
🗪
1:07:34quartertron Is today a good example of why sometimes using a library is okay?
🗪
1:07:34quartertron Is today a good example of why sometimes using a library is okay?
🗪
1:07:34quartertron Is today a good example of why sometimes using a library is okay?
🗪
1:10:11SoysauceTheKid Would DirectWrite (or ClearType) help out with the anti-aliasing?
🗪
1:10:11SoysauceTheKid Would DirectWrite (or ClearType) help out with the anti-aliasing?
🗪
1:10:11SoysauceTheKid Would DirectWrite (or ClearType) help out with the anti-aliasing?
🗪
1:10:25plain_flavored Ignore this if you're already doing this, but why not ship the mono bitmap as part of the asset file instead of the much larger RGBA bitmap?
🗪
1:10:25plain_flavored Ignore this if you're already doing this, but why not ship the mono bitmap as part of the asset file instead of the much larger RGBA bitmap?
🗪
1:10:25plain_flavored Ignore this if you're already doing this, but why not ship the mono bitmap as part of the asset file instead of the much larger RGBA bitmap?
🗪
1:11:56abnercoimbre Q: People are liking the idea of handmade.dev
🗪
1:11:56abnercoimbre Q: People are liking the idea of handmade.dev
🗪
1:11:56abnercoimbre Q: People are liking the idea of handmade.dev
🗪
1:12:35Robrobby How often do you regret using a API/lib and back-up writing your own implementation? When you are fast-paced as you maybe this sometimes is better when your knowledge of the problem is sufficient
🗪
1:12:35Robrobby How often do you regret using a API/lib and back-up writing your own implementation? When you are fast-paced as you maybe this sometimes is better when your knowledge of the problem is sufficient
🗪
1:12:35Robrobby How often do you regret using a API/lib and back-up writing your own implementation? When you are fast-paced as you maybe this sometimes is better when your knowledge of the problem is sufficient
🗪
1:14:29BonusRocket What GUI toolkit do you recommend?
🗪
1:14:29BonusRocket What GUI toolkit do you recommend?
🗪
1:14:29BonusRocket What GUI toolkit do you recommend?
🗪
1:15:12SoysauceTheKid Would CLEARTYPE_QUALITY instead of ANTIALIASED_QUALITY make a difference?
🗪
1:15:12SoysauceTheKid Would CLEARTYPE_QUALITY instead of ANTIALIASED_QUALITY make a difference?
🗪
1:15:12SoysauceTheKid Would CLEARTYPE_QUALITY instead of ANTIALIASED_QUALITY make a difference?
🗪
1:15:30Blackboard: LCD pixel elements
1:15:30Blackboard: LCD pixel elements
1:15:30Blackboard: LCD pixel elements
1:17:12That's all she wrote
🗩
1:17:12That's all she wrote
🗩
1:17:12That's all she wrote
🗩