Réponse courte: Il n'y a aucun moyen fiable d'obtenir cette information.
Réponse longue:
Il existe de nombreuses façons déconseillés pour obtenir ces informations. Comme l'ouverture d'une ancienne interface DirectDraw et interroger la mémoire vidéo disponible. Ce nombre peut cependant inclure la mémoire AGP, la mémoire unifiée ou il ne peut pas l'inclure. Ou vous pouvez même obtenir une valeur factice codée en dur dans le pilote.
Je sais que vous savez déjà que ce nombre est d'interroger une mauvaise idée, mais permettez-moi de le résumer à nouveau pour les autres lecteurs:
Que voulez-vous faire avec le numéro à la première place? En tant que programmeur d'application, vous avez un contrôle très limité de l'utilisation de la mémoire vidéo. Vous n'allouez ou ne gérez pas la mémoire de quelque manière que ce soit. Le conducteur le fait pour vous. Rendre votre code conscient de la mémoire disponible "faussée" entraînera de sérieux problèmes.
Vous pensez peut-être que vous pouvez utiliser la mémoire disponible pour décider du nombre de textures qui rentreront dans la mémoire vidéo, mais c'est une fausse supposition. Certaines cartes ont des exigences très étranges comment la mémoire est utilisée. Une carte particulière dont je connais certains détails a une taille minimale pour tout mipmap de 4kb. Par conséquent, si vous chargez une texture 8x8 8 bits dans la mémoire, vous pouvez vous attendre à ce qu'elle prenne 85 octets (8 * 8 + 4 + 4 + 2 + 2 + 1). Après que le pilote a fait le travail de téléchargement, il sera de 12kb en taille (4 * 4kb). Votre estimation serait plus d'un facteur de cent.
La même chose s'applique aux vertex et aux buffers d'index, aux render-targets, aux shaders et ainsi de suite.
C'est la raison pour laquelle cette information n'est plus exposée aux applications. Cela a fait beaucoup de problèmes dans le passé.
Merci pour la réponse, c'est un bel été de quelques-unes des nombreuses raisons pour lesquelles c'est une mauvaise idée de jouer avec ce numéro en premier lieu. Les raisons pour lesquelles j'ai personnellement besoin de ce numéro sont: Estimer la qualité de la texture, et estimer le nombre de textures (de taille connue) que je peux utiliser en même temps. Sachant que j'ai une carte 256mb vs une carte 32mb changera radicalement soit la qualité des textures que je charge ou le nombre que je tente d'afficher à la fois. Mes utilisateurs sont, en somme, stupides. Ils ne peuvent pas jouer avec un curseur de qualité jusqu'à ce qu'ils obtiennent un bon rapport qualité-prix. Il doit bien fonctionner hors de la boîte. – ima747
Même si les raisons pour lesquelles il est mauvais de jouer avec ce numéro ne peuvent pas être surestimées, il y a des moments où même une supposition approximative et approximative vaut mieux que rien. – ima747