Which one is the opentype path? Or rather, where exactly does GetOutlineTextMetrics() break when EBDT is missing? I didn't follow closely "recent" (year or two) changes in gdi32/win32u font handling. My guess is that freetype is capable to return grayscale bitmap for color png, rgba, or whatever format CBDT provides, is that correct? If it works this way, metrics data should be functionally equivalent between CBLC and EBLC tables.