Почему это не хорошее решение?
Смешивать рендеринг GDI и D3D в одном окне - плохая идея.
Однако ID3DXFont не использует это. Он использует GDI для растеризации глифов в текстуру. И использует эту текстуру для визуализации фактического текста.
Единственной альтернативой было бы использование другой библиотеки (например, FreeType) для растеризации глифов в текстуру, но я не уверен, приведет ли это к каким-либо существенным преимуществам.
Конечно, для простых (например, неазиатских) шрифтов вы можете заранее растеризовать все глифы в текстуру, а затем использовать эту текстуру для рисования текста во время выполнения. Таким образом, во время выполнения не нужно использовать какую-либо библиотеку рендеринга шрифтов, она просто рисует четырехугольники с использованием текстуры. Этот подход плохо масштабируется с большими размерами шрифтов или шрифтами с большим количеством символов. Также не очень хорошо справляется со сложной типографикой (например, где буквы должны соединяться и т. Д.)