Bei der Programmierung mit DirectX, verwendet nicht-UWP Praktiken und Dinge wie WinMain und WinProc möglich? Ich habe ein älteres Buch über Win32 für DirectX, aber es ist völlig anders als UWP.In DirectX mit UWP, kann Win32 verwendet werden?
Antwort
DirectX 11 wird von der Universal Windows Platform (UWP) unterstützt und die Kern-API ist die gleiche wie in klassischen Win32-Desktop-Apps. Die großen Unterschiede liegen in den Dienstprogrammbibliotheken, da Sie die veraltete Bibliothek D3DX
in einem UWP und die Verwendung von CoreWindow
anstelle von Win32-Nachrichten und WndProc
nicht verwenden können.
MSDN
Where is the DirectX SDK (2015 Edition)?
Living without D3DX
Sie sollten einen Blick auf this post auf DirectX Buchempfehlungen nehmen, sowie die DirectX Tool Kit tutorials.
Wenn Ihr Buch ist alt genug, um Direct3D 9 oder Direct3D 10 sprechen zu werden, dann für UWP nicht sinnvoll es ist.
Die ‚Hauptanwendung‘ Entry-Point und Schleife sind unterschiedlich in UWP, wenn die C++/CX Spracherweiterungen oder mit Hilfe der Sprach C++/WinRT Projektionen verwendet wird. Das heißt, Sie können dies leicht isolieren und konzentrieren Sie sich nur auf eine DirectX-Swapchain und -Rendering, die in Win32 Classic Desktop- und UWP-Apps die gleichen sind. Ich mache das in meinem Direct3D VS Game templates, die für beide Plattformen gleich strukturiert sind.
Für C++/CX UWP-Anwendungen, die Entry-Punkt ist:
ref class ViewProvider sealed : public IFrameworkView
{
/* There is no WndProc. This class registers for events instead. */
}
ref class ViewProviderFactory : IFrameworkViewSource
{
public:
virtual IFrameworkView^ CreateView()
{
return ref new ViewProvider();
}
};
[Platform::MTAThread]
int __cdecl main(Platform::Array<Platform::String^>^ argv)
{
auto viewProviderFactory = ref new ViewProviderFactory();
CoreApplication::Run(viewProviderFactory);
return 0;
}
Für C++/WinRT UWP-Anwendungen, die Entry-Punkt ist:
class ViewProvider final :
public winrt::implements<ViewProvider, IFrameworkView>
{
/* There is no WndProc. This class registers for events instead. */
}
class ViewProviderFactory final : public
winrt::implements<ViewProviderFactory, IFrameworkViewSource>
{
public:
IFrameworkView CreateView()
{
return winrt::make<ViewProvider>();
}
};
int WINAPI wWinMain(
_In_ HINSTANCE hInstance,
_In_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
_In_ int nCmdShow
)
{
ViewProviderFactory viewProviderFactory;
CoreApplication::Run(viewProviderFactory);
return 0;
}
Das wird mich lehren, ein Buch über 2,02 $ bei Goodwill zu kaufen. Ich vergaß UWP, als ich es kaufte, aber dann war es zu spät All Sales Final im Secondhand-Laden. Es ist ein guter Grund. – johnny
- 1. UWP und DirectX
- 2. Benutzerdefinierter Treiberzugriff in UWP mit win32
- 3. DirectX 11/12 ohne UWP möglich?
- 4. Starten Hintergrund win32 Konsolenanwendung in UWP
- 5. UWP Entwicklung von C++, C#, DirectX
- 6. Mix DirectX 12 und XAML Steuerelemente in UWP
- 7. Qt-Projektdatei: Win32 verwendet
- 8. VB.net XAML UWP Kann Shared Class für DataContext verwendet werden?
- 9. UWP: Binding + TextChanging = JIT win32 Ausnahme
- 10. DirectX 11 Framebuffer-Capture (C++, kein Win32 oder D3DX)
- 11. Warum werden die Standarddatentypen in der Win32-API nicht verwendet?
- 12. Win32-Drucken - Querformat kann nicht eingestellt werden
- 13. Verwendet System.Windows.Media.Imaging DirectX (wie WPF) oder GDI +?
- 14. DirectX hInstance kann nicht
- 15. Kann GDB in einer Cross-kompilierten Win32-Anwendung auf der Zielplattform verwendet werden
- 16. UWP Game Capture auf Xbox DirectX oder MMF
- 17. Bildschirmaufnahmen mit DirectX verhindern
- 18. Kann nicht herausfinden, wie DirectX 12 UWP in Visual Studio 2017 Community erhalten
- 19. Acryl Material in Win32 App
- 20. Ausgabe des Anzeigegeräts mit DirectX
- 21. Wie kann synthetisierte Sprachsprache UWP geändert werden?
- 22. g ++ Windows mit DirectX?
- 23. kann CGMainDisplayID() mit iOS verwendet werden?
- 24. Kann Realm mit Angular 2 verwendet werden?
- 25. Twilio kann nicht mit Python verwendet werden
- 26. IEnumerable kann nicht mit Typargumenten verwendet werden
- 27. Kann die Bildvorverarbeitung mit Bildsequenzen verwendet werden?
- 28. Kann WebHDFS mit Flume verwendet werden?
- 29. Kann Valgrind zusammen mit Cygwin verwendet werden?
- 30. Get Installed Win32-Anwendung
UWP verwendet die 'WinMain' Eintrag Punkt, wie jede Windows-Desktop-Anwendung. Und da DirectX ein Jahrzehnt älter ist als UWP, können Sie Windows Desktop-Anwendungen mit DirectX schreiben. Warum würdest du das anders annehmen? Wie auch immer, es ist schwer zu sagen, was du hier wirklich willst. – IInspectable
Ich las WinMain und WinProc waren in UWP verschwunden. Bearbeiten:. Ich versuche zu sehen, ob es Zeitverschwendung ist, win32 für neue Projekte zu lernen. – johnny
Ich bin nicht sicher, welche Art von Magie Sie dem vom Benutzer bereitgestellten Einstiegspunkt zuordnen. Es ist nur ein Symbol, und es könnte alles sein. Der Einstiegspunkt von UWP ist immer noch derselbe wie für jede Win32-Anwendung, aber abhängig von der Sprachprojektion sehen Sie dies möglicherweise nicht so. Ist es eine Verschwendung, die Windows-API zu lernen? Ich würde sagen: Nein, niemals. UWP ist Win32, nur mit vielen COM aufgefüllt. – IInspectable