我正在测试 Direct2D 程序。
http://msdn.microsoft.com/en-us/library/windows/desktop/ff819062(v=vs.85).aspx
当我编译并运行程序 D2DCircle.exe 并查看任务管理器的内存列时,使用了大约 19 MByte(或分配了?)
我使用一些画笔和几何图形运行一个更大的程序,任务管理器的内存列显示大约 30MByte。
为什么direct2d会使用这么多内存?
我正在测试 Direct2D 程序。
http://msdn.microsoft.com/en-us/library/windows/desktop/ff819062(v=vs.85).aspx
当我编译并运行程序 D2DCircle.exe 并查看任务管理器的内存列时,使用了大约 19 MByte(或分配了?)
我使用一些画笔和几何图形运行一个更大的程序,任务管理器的内存列显示大约 30MByte。
为什么direct2d会使用这么多内存?
Direct2D 可能会在内存中缓存一些呈现的图元(作为位图)。由于并非所有内容都由 GPU 直接渲染。
GDI+在这方面也比较贪心。
您可以将其与我的Sciter引擎进行比较。如果您只启动 sciter.exe,它将使用 Direct2D 后端,但如果您将运行它,sicter.exe sciter-gfx=gdi
它将使用 GDI+。
如果您比较在 D2D 和 GDI+ 中渲染的相同内容的速度,您会发现 30mb 根本不算什么。