【问题标题】:Why does wgluseFontBitmaps consume too much memory on some computers?为什么 wgluseFontBitmaps 在某些计算机上会消耗太多内存?
【发布时间】:2010-10-06 16:03:09
【问题描述】:

我正在 OpenGL 中创建一个游戏,它在加载时会加载整个 Arial Unicode MS 字体。该程序使用平均。我的计算机上有 10 兆内存(操作系统是 WinXP SP2)并且运行没有问题,但是当我将程序移动到我的笔记本电脑(使用 Vista)时,wglUseFontBitmaps 挂起并流畅地分配内存并且永远不会返回。这个问题最近发生了,我不知道为什么,以前从未遇到过这样的问题。 wglUseFontBitmaps 为什么会这样,如何解决?

更新:我尝试了一个旧版本,它运行但占用了 400 兆内存(所以这不是一个新问题)

【问题讨论】:

    标签: c++ c winapi opengl graphics


    【解决方案1】:

    您尝试使用 wglUseFontBitmaps() 生成多少个字形显示列表?你能告诉我们你的调用吗?也许 Vista 试图一次性完成所有 60000 多个字形,而 XP 正在做某种按需构建?

    我在使用 FreeType2 和 MS Arial Unicode 时运气不错,不过要掌握 API 的速度确实需要一些时间。 This tutorial 可以被 C++ 化,效果很好。

    【讨论】:

    • 我只加载了整个字体... #define UNICODEFONTSIZE 65535 ... SelectObject(hdc,hfontArialUnicodeStuff); wglUseFontBitmapsW(hdc, 0, UNICODEFONTSIZE,ListBase); ...请注意,这不会在 XP 上造成任何问题。我听说 Vista 有一些 OpenGL 问题。这可能是其中之一。
    • 对于 XP,10MB 内存使用量还是内存使用量 + VM 大小?
    • 机器是否具有相同的 DPI?机器是否有不同的 ClearType 设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-30
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    相关资源
    最近更新 更多