我正在尝试加载位图以便将其呈现在屏幕上,为此我正在使用 loadSurfaceFromFile。 我要加载的图像是 1280*1024,加载这些图像大约需要 35ms。 在我看来,它应该加载得更快(大约 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;
最佳答案
您要做的是使用多个加载程序线程来隐藏加载延迟。 Here's关于从磁盘加载纹理的性能的讨论。我本人已经使用了那里的文章(由 Jon Watte 撰写)中概述的最后一种方法,并取得了很好的效果。
希望这对您有所帮助!
关于c++ - 使用 directx9 加载表面太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12278772/