2009-02-10 6 views
1

Je crée un jeu en OpenGL qui charge l'ensemble de la police Arial Unicode MS quand il se charge. Le programme utilise sur moy. 10 Mo de mémoire sur mon ordinateur (op sys est WinXP SP2) et fonctionne sans problèmes, mais quand je déplace le programme sur mon ordinateur portable (avec Vista) le wglUseFontBitmaps se bloque et alloue la mémoire couramment et ne revient jamais. Ce problème est survenu récemment et je n'ai aucune idée pourquoi et jamais eu un tel problème auparavant. Pourquoi wglUseFontBitmaps fait-il cela et comment le réparer?Pourquoi wgluseFontBitmaps consomme-t-il trop de mémoire sur certains ordinateurs?

mise à jour: J'ai essayé une version plus ancienne et il fonctionne, mais mange 400megs de mémoire (il est donc pas un problème nouveau)

Répondre

1

Combien de listes d'affichage glyphe vous essayez de générer avec wglUseFontBitmaps()? Pouvez-vous nous montrer votre invocation? Peut-être que Vista essaie de faire tous les 60000 glyphes en une seule fois, et XP fait une sorte de construction à la demande?

J'ai eu de la chance avec FreeType2 et MS Arial Unicode, même s'il faut du temps pour se familiariser avec l'API. This tutorial peut être C++ - ized à grand effet.

+0

Je chargé juste la police ... toute #define UNICODEFONTSIZE 65535 ... SelectObject (hdc, hfontArialUnicodeStuff); wglUseFontBitmapsW (hdc, 0, UNICODEFONTSIZE, ListBase); ... Veuillez noter que cela ne pose aucun problème sous XP. J'ai entendu dire que Vista avait des problèmes avec OpenGL. Cela peut être l'un d'entre eux. – Calmarius

+0

Pour XP, 10 Mo d'utilisation Mem ou Mem Usage + VM Size? – genpfault

+0

Utilisation générale des mem – Calmarius

Questions connexes