2017-02-06 2 views
1

Ich habe DirectX seit der DX9-Ära nicht mehr angeschaut. Ist es möglich, DX11/12-Anwendungen zu erstellen, ohne sie auch zu UWP-Anwendungen machen zu müssen?DirectX 11/12 ohne UWP möglich?

Ich bin ein wenig besorgt über den Overhead von UWP-- zum Spaß, machte ich eine leere Anwendung, und ich bemerkte, dass es ~ 30MB verwendet, nur um ein leeres Fenster zu zeichnen.

Antwort

1

Ich denke von "WUP" meinen Sie die Universal Windows Platform (UWP). Direct3D 11 wird für Win32 Classic Desktop-Anwendungen unter Windows 7, Windows Vista SP2, Windows 8.x und Windows 10 unterstützt. Direct3D 12 wird für Win32 Classic-Desktop-Apps unter Windows 10 unterstützt. Beide werden auch für UWP und Xbox One unterstützt.

Um auf die moderne Geschichte für DirectX aufholen, sollten Sie sehen: MSDN, Where is the DirectX SDK (2015 Edition)? und Getting Started with Direct3D 11, sowie die DirectX Tool Kit tutorials Tutorials

es drei grundlegende appmodels für UWP sind: XAML XAML + DirectX und DirectX (dh kein XAML). Eine grundlegende DirectX-App für Direct3D 11 mit nur einer Swap-Kette und einem Gerät hat eine EXE von etwa 100 KB als eine x86-Anwendung im Freigabemodus. Eine DirectX + XAML "leere" App ist ungefähr 347 KB groß.

AKTUALISIERT: Die grundlegende DirectX-App für Direct3D 11 als Release-Modus für x86 hat einen RAM-Speicherbedarf von etwa 6,1 MB im Vollbildmodus. Eine DirectX + XAML "leere" App im Freigabemodus für x86 ist 11,2 MB. Das ist ziemlich gut, da eine BGRA32-Renderzieltextur von 1920 x 1080 8 MB VRAM ist.

+0

Whoops! Tippe das zweimal! Ja, ich meinte die Universal Platform. 30 MB ist der Speicherbedarf des Programms, das ich in Visual Studio 2015 erstellt habe und das nur ein leeres Fenster hatte, das im Freigabemodus ausgeführt wurde. – Maxthecat

+0

Auch wenn die App 30 MB leer ist, warum ist es ein Problem? Es ist nicht so, dass Computer jetzt mit GB RAM arbeiten. Es ist wahrscheinlicher, dass Sie Speicher in Ihrem Benutzercode als im Service-Overhead verschwenden. Auch Sie sagen nicht viel auf Ihrem Test, war es Debug, Release, statische oder dynamische Verknüpfung, 32 oder 64 Bits, etc! Die UWP-Laufzeit ist nicht für eine leere Anwendung optimiert, sondern für eine echte Anwendung, bei der 30 MB nichts sind und die auch zwischen allen aktiven UWP-Anwendungen geteilt werden kann. – galop1n

+0

Nicht alle Maschinen laufen mit Tonnen von RAM. Du kennst meinen Anwendungsfall nicht. Hör auf herablassend zu sein. – Maxthecat