Кратчайший путь рендеринга из DirectWrite в Direct3D11? - PullRequest
3 голосов
/ 25 июля 2011

Человек так сильно изменился с тех пор, как я изучил DirectX 7.

Куда бы я ни посмотрел (за исключением Википедии ), там написано, что мне нужно выполнить рендеринг из DWrite в D2D или GDI, прежде чем я смогу что-либо сделать.

Это статья в Википедии не так? Могу ли я не рендерить в Direct3D?

Я бы хотел избежать рендеринга в D2D, поскольку, очевидно, чтобы заставить D2D записывать в D3D, вам также необходимо открыть устройство D3D10.1.

Действительно ли все это нужно, чтобы визуализировать текст в D3D11?

1 Ответ

2 голосов
/ 25 июля 2011

К сожалению, Microsoft решила удалить поддержку собственного текста из своего DirectX API.Теперь вы можете либо использовать DirectWrite, а затем, как вы сказали, выполнить рендеринг в GDI или D2D, что несколько неуклюже, или, в качестве альтернативы, создать свой собственный класс обработки шрифтов и использовать его (что я и выбрал для своего проекта).).

Существует хороший учебник по созданию собственного класса обработки шрифтов, здесь: http://www.rastertek.com/dx11tut12.html

Очевидно, вы должны написать свой собственный, но он обеспечивает хорошую отправную точкуи позволяет просматривать все необходимые процедуры (возможно, вы захотите добавить поддержку нескольких шрифтов, для чего я рекомендую создать класс Font, который ваш Font-Handler хранит с ассоциативной строкой в ​​std :: map).

Надеюсь, это поможет!:)

...