2010-12-06 4 views
-1

Я пытаюсь немного ускорить время запуска своего приложения Direct3D, и я заметил, что Direct3DCreate9 занимает целую секунду в соответствии с профилировщиком (больше всего на свете). Зачем? И что можно сделать по этому поводу?Почему Direct3DCreate9 может быть медленным?

ОС: XP, DirectX: 9.0. Такое же поведение в Windows 7 с разными DirectX, и я заметил, что многие игры также страдают от этой задержки «Direct X initialization», так что это не похоже на проблему с моей конфигурацией.

ответ

3

Когда вы вызываете Direct3DCreate9, вы инициализируете все библиотеки DirectX. Это может занять некоторое время.

Существует мало возможностей для повышения скорости этого звонка. Лучшим вариантом является, как правило, предоставление пользователю некоторой визуальной обратной связи о том, что вещи загружаются, если это возможно, при первой инициализации DirectX. Это, по крайней мере, показывает, что ваше приложение делает «что-то», а не просто висит.

+0

Тем не менее, я не понимаю, как инициализировать только кучу библиотек может занять одну секунду. DLL не загружается в Direct3DCreate9, другими словами, он просто выполняет код. Я с трудом могу представить себе какие-то задачи, которые нужно потратить на это много времени. – himself 2010-12-06 17:21:59