К сожалению, единственные способы уже были описаны. Взаимодействуйте с DirectWrite или создайте свою файловую систему глифов.
Что вы делаете, так это импортируете файл текстуры с глифами на нем, вырезаете маленькие квадраты вокруг каждого символа из файла текстуры глифа, а затем склеиваете все это вместе, чтобы сформировать строку. Это приводит к более быстрому рисованию (в некоторых случаях).
Я думаю, что подход к этому, на который ссылаются другие, немного устарел и обречен на провал. Direct3D11 имел такое же отсутствие поддержки рисования текста, как и Direct3D12 (возможно, дезинформация по этому поводу). Это был Direct3D9, который имел встроенную поддержку отрисовки текста, которая, тем не менее, работала нормально, а позже поддерживала пакетную отрисовку спрайтов, где вы могли отображать весь текст в одном спрайте.
Кажется обратным утверждение, что вам просто «нужно знать» или «не являетесь экспертом», чтобы внедрить такую простую, но утомительную систему. Такой системе суждено потерпеть неудачу, точно так же, как никто не хочет использовать Ассемблер для кодирования чего-то, что они могут кодировать на C и далее.
Математические библиотеки D3D11 и D3D12 также страдают теми же сбоями. Для определения и преобразования векторов вам лучше использовать математику D3D9X или пользовательские математические структуры, потому что новые включенные методы настолько обратны. «Кто-то» сделал это, и это должно понравиться, но я помню, как жаловался, показывая, насколько легко выполнять векторные операции до и после, это почти удваивает или утраивает количество строк, необходимых для выполнения основных операций и преобразований векторов, даже не считая количество ссылок и время обучения, которое вам потребуется, чтобы увидеть, как работает чужая библиотека. Кажется, это большой провал, представленный математиками, которые никогда не были хороши в программировании.
person
Community
schedule
14.07.2017