Я некоторое время спотыкался об этом и думал, не сталкивался ли кто-нибудь с этой проблемой раньше.
Приложение, над которым я работаю, разделено на несколько графиков данных и одну временную шкалу в нижней части экрана. Каждый график (который на самом деле состоит из нескольких текстур, наложенных друг на друга), а также временная шкала отображаются в отдельной текстуре. Текстура временной шкалы отображается первой, за которой следуют каждая из текстур графика от верхней части экрана до нижней. Я использую DXUT и DirectX9 (март 2009 г.).
После добавления временного текста в текстуру временной шкалы я заметил, что текст повторяется в строке заголовка каждого графика данных. Вот скриншот части дисплея, он показывает только один график, но текст повторяется на каждом открытом графике:
Кажется, что он напрямую связан с DrawText, вызываемым в функции визуализации временной шкалы. Я использую относительные координаты в качестве прямоугольника, передаваемого в DrawText, но, поскольку я уже установил цель рендеринга на желаемую текстуру, она должна влиять только на текущую текстуру. Не каждая текстура отображается после.
Кто-нибудь когда-нибудь сталкивался с подобными проблемами при использовании D3DXFont?
РЕДАКТИРОВАТЬ : После дополнительных экспериментов похоже, что это как-то связано с буфером Z. При добавлении D3DCLEAR_ZBUFFER для очистки на каждой поверхности текстуры дублирующийся текст исчезает. Пока проблема кажется обойденной, мне все еще интересно, почему Z-буфер для совершенно отдельной текстуры записывался во время моего вызова DrawText.