http://go.microsoft.com/fwlink/?LinkID=615561
حقوق الطبع والنشر (ج) شركة مايكروسوفت.
28 أكتوبر 2024
تحتوي هذه الحزمة على "DirectX Tool Kit"، وهي مجموعة من الفئات المساعدة لكتابة كود Direct3D 12 C++ لتطبيقات Universal Windows Platform (UWP) لنظامي التشغيل Windows 11 وWindows 10، وعناوين الألعاب لـ Xbox Series X|S وXbox One، وWin32 تطبيقات سطح المكتب لنظامي التشغيل Windows 11 وWindows 10.
تم تصميم هذا الرمز للإنشاء باستخدام Visual Studio 2019 (16.11)، أو Visual Studio 2022، أو clang لنظام التشغيل Windows v12 أو الإصدارات الأحدث، أو MinGW 12.2. يلزم استخدام Windows 10 May 2020 Update SDK (19041) أو الإصدار الأحدث لبرنامج Visual Studio.
تم تصميم هذه المكونات للعمل دون الحاجة إلى أي محتوى من DirectX SDK القديم. للحصول على تفاصيل، راجع أين توجد DirectX SDK؟.
Inc
ملفات الرأس العامة (في مساحة اسم DirectX C++):
Src
Audio
build
يمكن العثور على MakeSpriteFont وXWBTool في مجموعة أدوات DirectX لـ DirectX 11
الوثائق متاحة على جيثب ويكي.
يخضع كل المحتوى والكود المصدري لهذه الحزمة لشروط ترخيص MIT.
للحصول على أحدث إصدار من DirectXTK12 وتقارير الأخطاء وما إلى ذلك، يرجى زيارة موقع المشروع على GitHub.
لا يوجد دعم لتظليل تأثير Visual Studio Directed Graph Shader Language (DGSL) (أي DGSLEffect ). يتم تحميل ملفات CMO باستخدام مواد BasicEffect أو SkinnedEffect.
لا تتضمن VertexTypes VertexPositionNormalTangentColorTexture أو VertexPositionNormalTangentColorTextureSkinning التي كانت مخصصة للاستخدام مع خط أنابيب DGSL.
تدعم مجموعة أدوات DirectX لـ DirectX 11 مستوى الميزة 9.x، بينما يتطلب DirectX 12 مستوى ميزة Direct3D 11.0. لا توجد برامج تشغيل DirectX 12 متوقعة لأي أجهزة ذات مستوى ميزات أقل.
تفترض المكتبة أنها مصممة لنظام التشغيل Windows 10 (المعروف أيضًا باسم _WIN32_WINNT=0x0A00
) لذا فهي تستخدم XAudio 2.9 وWIC2 بالإضافة إلى DirectX 12.
تتطابق مجموعة أدوات DirectX للصوت ولوحة الألعاب ولوحة المفاتيح والماوس وSimpleMath مع إصدار DirectX 11.
للحصول على استشارات أمنية، راجع GitHub.
للحصول على سجل التغيير الكامل، راجع CHANGELOG.md.
في إصدار يونيو 2024، تمت إزالة المعلمة الافتراضية initialState
لوظيفة CreateUploadBuffer
في BufferHelpers . وفقًا لطبقة التحقق من صحة DirectX 12، فإن الحالة الأولية الصالحة الوحيدة لمخزن التحميل المؤقت هي D3D12_RESOURCE_STATE_GENERIC_READ
.
بدءًا من إصدار فبراير 2023، تم تحديث تطبيق فئة Mouse لحركة الماوس النسبية لتجميع التغييرات بين استدعاءات GetState
. افتراضيًا، في كل مرة تقوم فيها باستدعاء GetState
، تتم إعادة تعيين الدلتا وهو ما يناسب السيناريوهات التي تستخدم فيها الحركة النسبية ولكنك تستدعي الطريقة مرة واحدة فقط لكل إطار. إذا قمت باستدعائه أكثر من مرة لكل إطار، فقم بإضافة استدعاء صريح إلى EndOfInputFrame
لاستخدام نموذج إعادة تعيين صريح بدلاً من ذلك.
اعتبارًا من إصدار سبتمبر 2022، تستخدم المكتبة مساحات الأسماء المضمنة C++ 11 للأنواع المختلفة التي لها نفس الأسماء في إصدار DirectX 11 وDirectX 12 من مجموعة أدوات DirectX . يوفر هذا اسمًا فريدًا للارتباط مثل DirectX::DX12::SpriteBatch
الذي سيظهر في رسائل مخرجات الرابط. ومع ذلك، في معظم حالات الاستخدام، ليست هناك حاجة لإضافة دقة مساحة اسم DX12
صريحة في كود العميل.
بدءًا من إصدار يونيو 2021، تقوم هذه المكتبة ببناء تظليل HLSL باستخدام Shader Model 6 عبر DXC. راجع صفحة الويكي هذه لمزيد من المعلومات. لقد استخدمت مشاريع Microsoft GDK دائمًا Shader Model 6.
بدءًا من إصدار يونيو 2020، تستخدم هذه المكتبة إشارات قناع البت التعدادي المكتوب وفقًا لتوصية القسم القياسي لـ C++ 17.5.2.1.3 أنواع قناع البت . قد يكون لذلك تأثيرات تغيير جذرية على كود العميل:
لا يمكنك تمرير الرقم 0
كقيمة أعلامك. بدلاً من ذلك، يجب عليك الاستفادة من قيمة التعداد الافتراضية المناسبة: AudioEngine_Default
أو SoundEffectInstance_Default
أو ModelLoader_Clockwise
أو DDS_LOADER_DEFAULT
أو WIC_LOADER_DEFAULT
.
استخدم نوع التعداد بدلاً من DWORD
في حالة إنشاء قيم العلامات محليًا باستخدام عمليات القناع النقطي. على سبيل المثال، WIC_LOADER_FLAGS flags = WIC_LOADER_DEFAULT; if (...) flags |= WIC_LOADER_FORCE_SRGB;
تتضمن مشاريع UWP ومشروع Win10 الكلاسيكي لسطح المكتب تكوينات لمنصة ARM64. يتطلب إنشاء هذه العناصر تثبيت مجموعة أدوات ARM64.
بالنسبة لتطوير ARM64/AArch64، يوصى بشدة باستخدام مترجم VS 2022 عبر مجموعة أدوات VS 2019. Windows SDK (26100 أو الأحدث) غير متوافق مع VS 2019 لـ Win32 على تطوير ARM64. لاحظ أنه تم إهمال النظام الأساسي ARM32/AArch32 .
عند استخدام clang/LLVM للنظام الأساسي ARM64/AArch64، يلزم وجود Windows 11 SDK (22000) أو إصدار أحدث.
يجب أن يحتوي البرنامج النصي CompileShaders.cmd
على نهايات أسطر بنمط Windows (CRLF). إذا تم تغييره إلى نهايات الأسطر على نمط Linux (LF)، فقد يفشل في إنشاء جميع التظليلات المطلوبة.
بالنسبة للأسئلة، فكر في استخدام Stack Overflow مع علامة directxtk ، أو DirectX Discord Server في قناة dx12 للمطورين .
للحصول على تقارير الأخطاء وطلبات الميزات، يرجى استخدام مشكلات GitHub لهذا المشروع.
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب معظم المساهمات منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق في منحنا حقوق استخدام مساهمتك، بل وتفعل ذلك بالفعل. للحصول على التفاصيل، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب، سيحدد روبوت CLA تلقائيًا ما إذا كنت بحاجة إلى تقديم CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال، التحقق من الحالة، التعليق). ما عليك سوى اتباع التعليمات التي يقدمها لك الروبوت. سوف تحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع اتفاقيات إعادة الشراء باستخدام CLA الخاصة بنا.
يجب أيضًا إرسال اختبارات الميزات الجديدة كتقرير علاقات عامة إلى مستودع Test Suite.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة المتداولة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المصرح به للعلامات التجارية أو الشعارات الخاصة بشركة Microsoft ويجب أن يتبع إرشادات العلامة التجارية والعلامات التجارية الخاصة بشركة Microsoft. يجب ألا يتسبب استخدام العلامات التجارية أو الشعارات الخاصة بشركة Microsoft في الإصدارات المعدلة من هذا المشروع في حدوث ارتباك أو الإشارة ضمنًا إلى رعاية Microsoft. ويخضع أي استخدام لعلامات تجارية أو شعارات تابعة لجهات خارجية لسياسات تلك الجهات الخارجية.
مجموعة أدوات DirectX لـ DirectX 11 هي من عمل Shawn Hargreaves وChuck Walbourn، مع مساهمات من Aaron Rodriguez Hernandez وDani Roman.
إن مجموعة أدوات DirectX لـ DirectX 12 هي من عمل Pete Lewis وJustin Saunders وChuck Walbourn، وهي تعتمد بشكل كبير على مجموعة أدوات DirectX لـ DirectX 11.
شكرًا لـ Shanon Drone على تنسيق ملف SDKMESH.
شكرًا لأدريان تساي على تنفيذ المجال الجيوديسي.
شكرًا لـ Garrett Serack لمساعدته في إنشاء حزم NuGet لمجموعة أدوات DirectX.
شكرًا لـ Pete Lewis وJustin Saunders على التنفيذ العادي وتظليل PBR.
شكرًا لترافيس جونسون على دعم mGPU.
شكرًا لروبرتو سونينو لمساعدته في تنسيق CMO والرسوم المتحركة VS Starter Kit.
شكرًا لـ Richie Meyer على مساهمتهم في الذاكرة المخصصة لـ Xbox PIX ودعم أحداث تتبع تخصيص النوع.
شكرًا لأندرو فارير وسكوت ماتلوف لمساعدتهما المستمرة في مراجعات الكود.