2017-02-06 3 views
1

Je n'ai pas regardé DirectX depuis l'ère DX9. Est-il possible de faire des applications DX11/12 sans avoir à en faire aussi des applications UWP? Je suis un peu préoccupé par les frais généraux de UWP - pour le plaisir, j'ai fait une application vide, et j'ai remarqué qu'il utilise ~ 30 Mo juste pour dessiner une fenêtre vide.DirectX 11/12 sans UWP possible?

Répondre

1

Je suppose que par "WUP" vous voulez dire la plate-forme Windows universelle (UWP). Direct3D 11 est pris en charge pour les applications de bureau classiques Win32 sous Windows 7, Windows Vista SP2, Windows 8.x et Windows 10. Direct3D 12 est pris en charge pour les applications de bureau classiques Win32 sous Windows 10. Les deux sont également pris en charge pour UWP et Xbox One.

Pour rattraper son retard sur l'histoire moderne pour DirectX, vous devriez voir: MSDN, Where is the DirectX SDK (2015 Edition)? et Getting Started with Direct3D 11, ainsi que les DirectX Tool Kit tutorials tutoriels

Il y a trois appmodels de base pour UWP: XAML, XAML + DirectX, et DirectX (c'est-à-dire pas de XAML). Une application DirectX de base pour Direct3D 11 avec juste une chaîne d'échange et un périphérique a un EXE d'environ 100 Ko en tant qu'application x86 en mode Release. Une application DirectX + XAML 'vide' est d'environ 347 Ko. L'application de base DirectX pour Direct3D 11 en tant que mode de libération pour x86 a une empreinte RAM d'environ 6,1 Mo en mode plein écran. Une application DirectX + XAML 'vide' en mode Release pour x86 est de 11,2 Mo. C'est très bien, car une texture de rendu de rendu BGRA32 1920 x 1080 est de 8 Mo de VRAM.

+0

Oups! Typo'd que deux fois! Oui, je voulais dire la plate-forme universelle. 30 Mo est l'empreinte de la mémoire du programme que j'ai créé dans Visual Studio 2015 qui n'avait qu'une fenêtre vide, fonctionnant en mode édition. – Maxthecat

+0

Même si l'application est vide de 30 Mo, pourquoi est-ce un problème? Ce n'est pas comme si les ordinateurs fonctionnaient avec des Go de RAM maintenant. Vous êtes plus susceptible de perdre de la mémoire dans votre code utilisateur que dans les services généraux. Aussi, vous ne dites pas grand-chose sur votre test, était-ce le débogage, la release, le linkage statique ou dynamique, 32 ou 64bits, etc! Le runtime UWP n'est pas optimisé pour une application vide, il est fait pour faire une application réelle où 30 Mo ne sont rien, et peut également être partagé entre toutes les applications UWP en vie. – galop1n

+0

Toutes les machines ne fonctionnent pas avec des tonnes de RAM. Vous ne connaissez pas mon cas d'utilisation. Arrête d'être condescendant. – Maxthecat