2009-02-10 2 views
1

Я создаю игру в OpenGL, которая загружает весь шрифт MS Arial Unicode при загрузке. Программа использует на avg. 10 мегабайт памяти на моем компьютере (op sys - это WinXP SP2) и работает без проблем, но когда я переношу программу на свой ноутбук (с Vista), wglUseFontBitmaps зависает и свободно выделяет память и никогда не возвращается. Эта проблема возникла недавно, и я понятия не имею, почему и никогда не было такой проблемы раньше. Почему wglUseFontBitmaps делает это и как его исправить?Почему wgluseFontBitmaps потребляют слишком много памяти на некоторых компьютерах?

обновление: Я попробовал старую версию, и она работает, но ест 400megs памяти (так что это не новая проблема)

ответ

1

Сколько глифов отображения списков вы пытаетесь произвести с wglUseFontBitmaps()? Можете ли вы показать нам свой призыв? Возможно, Vista пытается сделать все 60000-некоторые нечетные глифы за один раз, и XP делает какую-то конструкцию по требованию?

Мне повезло с FreeType2 и MS Arial Unicode, хотя для ускорения работы с API требуется некоторое время. This tutorial может быть C++ -измерен.

+0

Я загрузил только весь шрифт ... #define UNICODEFONTSIZE 65535 ... SelectObject (HDC, hfontArialUnicodeStuff); wglUseFontBitmapsW (hdc, 0, UNICODEFONTSIZE, ListBase); ... Обратите внимание, что это не вызывает проблем с XP. Я слышал, что Vista имеет некоторые проблемы с OpenGL. Это может быть один из них. – Calmarius

+0

Для XP, использования или использования MemM Mem или VM + 10MB? – genpfault

+0

Использование общей памяти – Calmarius