Загрузка поверхности с использованием DirectX9 слишком медленная

Я пытаюсь загрузить растровое изображение, чтобы отобразить его на экране, для этого я использую loadSurfaceFromFile.
изображения, которые я хочу загрузить, имеют размер 1280 * 1024, для их загрузки требуется около 35 мс.
мне кажется, что он должен загружаться намного быстрее (что-то вроде 5 мс)
что я делаю не так?

отредактированный код:

QueryPerformanceCounter(&liStart2);
int size = load_file_to_memory(s.c_str(),&content);
QueryPerformanceCounter(&liStop2);
QueryPerformanceCounter(&liStart);
D3DXLoadSurfaceFromFileInMemory(surface,NULL,NULL,content,size,NULL,D3DX_DEFAULT,0,NULL);
QueryPerformanceCounter(&liStop);
LONGLONG llTimeDiff = liStop.QuadPart - liStart.QuadPart;
double dftDuration = (double) llTimeDiff * 1000.0 / (double) Frequency.QuadPart;
LONGLONG llTimeDiff2 = liStop2.QuadPart - liStart2.QuadPart;
double dftDuration2 = (double) llTimeDiff2 * 1000.0 / (double) Frequency.QuadPart;

3

Решение

Что вы хотите сделать, это скрыть задержку загрузки, используя несколько потоков загрузчика. Вот обсуждение производительности загрузки текстур с диска. Я сам использовал последний метод, описанный в этой статье (Джон Уотт), с отличными результатами.

Надеюсь это поможет!

1

Другие решения

Других решений пока нет …