c++ - 使用 directx9 加载表面太慢

标签 c++ bitmap directx textures

我正在尝试加载位图以便将其呈现在屏幕上,为此我正在使用 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/

相关文章:

c++ - 如何通过多个步骤跟踪状态

c++ - 比较 std::stringstream 的内容

java - 由于位图和空指针,应用程序在图像上传时崩溃

java - 使人脸检测器适用于任何文件格式

c++ - 您如何在 DirectX 和 C++ 中执行 LoD?

c++ - DirectX 11 : how to define input layout when using more than one vertex buffer?

c++ - 在哪些 C++ 编译器中我可以为结构变量赋值?

c++ - C++如何处理&&? (短路评估)

android - 从创建的所选颜色的位图中设置墙纸

windows - 更正 Windows API 以查找 CurrentControlSet\Control\MediaProperties?