Direct3D странный сбой - PullRequest
0 голосов
/ 17 мая 2011

У меня есть библиотека рендеринга Direct3D, скомпилированная с VS2008.Другое приложение (созданное с VS2008) использует мою библиотеку, и все работает нормально.

Недавно родительское приложение было перемещено на VS2010, но моя библиотека все еще строится под VS2008.И все же все работает нормально, НО один вызов только на ОДНОМ спрайте.

D3DXSprite-> Метод Draw падает в D3DX9_43.dll в методе D3DXCore :: CSprite :: Draw ().И это происходит только тогда, когда я пытаюсь нарисовать определенный элемент из текстуры.

Я также пытался перестроить свою библиотеку под VS2010, но безуспешно.Сбой все еще происходит.

Есть идеи?

Спасибо!

1 Ответ

1 голос
/ 17 мая 2011

Возможно, это не то, что вы хотите услышать, но все, что я могу предложить для отладки чего-то вроде этого, - это либеральное использование точек останова и специальных отладочных операторов if.

Поместите оператор try-catch вокруг сбойной функции рендеринга и поместите точку останова в блок catch.

Возможно, вам понадобится добавить некоторые счетчики и переменные отладки, чтобы вы могли отслеживать размер / продолжение ваших структур данных в сравнении с тем, что фактически обработал ваш код рендеринга.

Если у вас все еще нет никаких подсказок, пришло время временно разветвить ваш код (скопировать его) и упростить. Начните извлекать куски кода, чтобы посмотреть, не сработает ли он до сих пор. В конце концов вы сузите его.

Удачи.

...