DirectXMath as a C++ module
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- cpp
- Bereich
- compilers, computer-graphics
Rechercherichtung
Start by reading DirectXMath.h and the proposed DirectXMath.ixx contents, then inspect DirectXPackedVector.h and the mentioned SHMath, Stereo3D, and XDSP components. Done means the module structure, standard-library imports, export granularity, and Windows SDK or cppwinrt integration questions are resolved and an agreed module design is documented.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
A few months ago, I designed the winrt module for C++/WinRT. C++/WinRT depends on DirectXMath, so I hope DirectXMath can also be modularized. This would help make the winrt module cleaner and compilation faster. Thanks to the high quality of DirectXMath, modularizing it is easy, but some decisions need to be discussed.
Overall, the following changes need to be made:
- Provide a macro to disable the inclusion of all standard library headers in DirectXMath.h (for example, XM_IMPL_MODULE).
- Create the following DirectXMath.ixx:
extern "C++" is used so that when the header file and the module are used at the same time, the same functions can be merged and ODR violations can be avoided.module; #include "sal.h" #include <intrins.h> #include <cassert> export module DirectXMath; import std; #define XM_IMPL_MODULE export { extern "C++" { #include "DirectXMath.h" } }
Once the details are settled, I can implement it. Any questions are welcome.
My questions:
- I hope to avoid using C standard library headers, and instead use the suffixless headers of the C++ standard library, and complete the std:: qualification for these types. This is to avoid using the std.compact module.
- Are fine-grained exports needed?
- DirectXPackedVector.h is not in DirectXMath.h. Should it be part of DirectXMath.ixx or a separate module?
- How should SHMath, Stereo3D, and XDSP be handled?
- Can the Windows SDK package the DirectXMath module?
- Vorherrschende Sprache
- C++
- Sterne
- 1.8k
- Forks
- 264
- Ø Merge
- 2 T. 19 Std.
- Gemergte PRs (30 T.)
- 7
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus microsoft/DirectXMath
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
microsoft/DirectXMath#328 ·
-
simplemath
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 35/100
microsoft/DirectXMath#327 · 1 Kommentar ·
-
Project feedbackOffen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
microsoft/DirectXMath#326 · 2 Kommentare ·
-
arm64 maintenance
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
microsoft/DirectXMath#309 ·
-
enhancement
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
microsoft/DirectXMath#299 ·
Alle Issues in microsoft/DirectXMath
Ähnliche Issues
-
backlog bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
EchoTools/nevr-runtime#653 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
InfiniTimeOrg/InfiniTime#2492 ·
-
accessibility good first issue hacktoberfest help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
OpenChemistry/avogadrolibs#3184 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Tracktion/tracktion_engine#475 ·
Maintainer antworten meist innerhalb von 1 Tag