Рисовать текст с помощью буфера трафарета - PullRequest
1 голос
/ 16 марта 2012

Я настроил трафаретный буфер так, чтобы вызовы отрисовки влияли только на части экрана. В частности, я хочу нарисовать на небольшой площади. Он станет пользовательским интерфейсом, поэтому все нарисованное будет неким 2D-спрайтом. Использование объекта спрайт работает очень хорошо. Спрайты, находящиеся за пределами области, обрезаются. Однако, когда я добавляю текст, все рисуется потом, а сам текст не обрезается. PIX показывает, что новый DepthStencilState устанавливается с отключенным буфером трафарета, как только вызывается отрисовка текста. Текст рисуется тем же объектом спрайта, который отвечает за рисование других спрайтов.

Рисование выполняется методом SlimDX.Direct3D10.Font.Draw.

Есть ли способ заставить DirectX не изменять объект состояния? Я использую SlimDX, но, согласно его коду, он не отвечает за изменение состояния.

Нико

1 Ответ

0 голосов
/ 30 марта 2012

Если вы переходите на D3D11, вас может заинтересовать библиотека рендеринга шрифтов, над которой я работал над портированием на SlimDX (а также некоторые другие фрагменты из библиотек набора инструментов DirectX, выпущенных за последние несколько месяцев).

Он все еще находится в разработке, поэтому никаких гарантий ни о чем, но вы можете найти его здесь (SVN): http://code.google.com/p/slimdx/source/browse/#svn%2Fbranches%2Flite%2FSlimDX.Toolkit

...