SetDisplayMode(XRes, YRes, 16 vs 32, 0, 0)
SetDisplayMode(XRes, YRes, 16 vs 32, 0, 0)
我几年前写了一个基于 DirectDraw 的旧程序,我又开始看它了。
我从这里更改了一行:SetDisplayMode(XRes, YRes, 16, 0, 0)
对此:SetDisplayMode(XRes, YRes, 32, 0, 0)
而且该程序的运行速度大大加快。(也许快 4 倍)
我更改的参数是每像素位数。我希望每像素使用更多位需要更多的内存,因此速度更慢。
有人有这种行为的经验吗?如果是,您是否对性能提高的原因有任何解释?
谢谢。
虽然精度
较低的运行速度似乎很直观,但您当前的显示硬件很可能本身不支持 16 位模式。事实上,除非您在兼容模式下运行程序,否则 Windows 8.0+ 根本不支持 16 位颜色。您可以检查驱动程序,看看是否实际上列出了 16 位模式。如果您在更旧的硬件上运行此类程序,则很可能支持 16 位模式。
如果没有本机可用的支持,则必须在运行时完成转换,从而解释为什么 16 位模式较慢。如果转换是原因,它也将消耗不少于 32 位版本的内存。
相关文章:
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- SetDisplayMode(XRes, YRes, 16 vs 32, 0, 0)