Я только начал изучать PdfBox Apache именно для этой цели. Похоже, что один из их примеров, PrintTextLocations.java, является хорошей отправной точкой для того, что вам нужно.
Основная проблема заключается в том, что вы используете отдельный экземпляр ID3DX11Sprite
для каждого спрайта, по крайней мере, на основе приведенного выше кода. Это исключает любую возможность для спрайтового механизма пакетного рендеринга, и поэтому вы тратите максимальное время рендеринга. Он должен захватить состояние, обновить VB / IB, установить VB / IB и все состояния рендеринга, нарисовать 4 точки, а затем восстановить состояние на каждом спрайте. Это будет медленно.
Вы должны иметь один экземпляр ID3DX11Sprite
для всех ваших рисунков и рисовать столько спрайтов, сколько сможете между одним вызовом Begin
и одним вызовом [113 ].
Direct3D 9 является устаревшим.
ID3DX11Sprite
является частьюD3DX9
, которая устарела и доступна только в конце DirectX SDK. См. Документы Microsoft .Вам гораздо лучше использовать Direct3D 11 или Direct3D 12 для любого современного приложения.
BLOCKQUOTE>SpriteBatch
в DirectX Tool Kit обеспечивает функциональность, необходимую для эффективного рисования спрайтов, а также загрузчиков текстур и т. Д. См. Жизнь без D3DX .