عن المشروع

DirectXTex هي مكتبة C++ مشتركة المصدر من Microsoft لقراءة وكتابة ملفات .DDS وتنفيذ عمليات معالجة محتوى القوام. تشمل قدراتها المعلنة تغيير الحجم، وتحويل الصيغ، وتوليد mip-map، وضغط الكتل لموارد القوام في وقت تشغيل Direct3D، وتحويل خرائط الارتفاع إلى خرائط normal. تستخدم المكتبة واجهات Windows Image Component (WIC) وتتضمن أيضًا قارئات وكاتبات .TGA و.HDR، لأن هذه الصيغ شائعة في خطوط معالجة القوام لكنها تفتقر إلى برامج ترميز WIC المدمجة. تتوزع بنية المستودع حول المكتبة الأساسية بالإضافة إلى عدة أدوات نموذجية ومحمّلات وقت تشغيل: - DirectXTex: المكتبة الرئيسية، وتتضمن قارئًا/كاتبًا كامل الميزات لملفات DDS بما في ذلك تحويلات الصيغ القديمة، وقارئات/كاتبات TGA وHDR، وقارئًا/كاتبًا للصور النقطية قائمًا على WIC (BMP، JPEG، PNG، TIFF، HD Photo)، ودوال معالجة القوام. يُوصف فقط DirectXTex.h وDirectXTex.inl بأنهما ملفات رأس عامة؛ أما معظم الملفات الأخرى فهي داخلية. - Auxiliary: ملفات مصدر اختيارية مثل دوال تحميل المحوّلات باستخدام OpenEXR وامتدادات تبليط القوام الخاصة بـ Xbox. - Common: ملفات رأس مصدرية مشتركة تستخدمها المكتبة والأدوات. - Texconv: أداة قوام من سطر الأوامر مبنية على DirectXTex، وتدعم وسائط مشابهة لأداة texconvex.exe القديمة، مع اختلافات في الوسيطين ‎-10/-11‎ وأسماء المرشحات، بالإضافة إلى دعم JPEG XR (HD Photo). - Texassemble: أداة من سطر الأوامر لإنشاء cubemaps أو volume maps أو مصفوفات القوام من صور إدخال فردية. - Texdiag: أداة من سطر الأوامر لتحليل محتويات الصور، أساسًا لأغراض التنقيح. - DDSView: عارض بسيط لملفات DDS قائم على Direct3D 11، مع تنقل بلوحة المفاتيح لمصفوفات القوام وvolume maps. - DDSTextureLoader: محمّل DDS خفيف لوقت التشغيل لـ Direct3D 9 و11 و12 لا ينفذ أي تحويلات لبيانات البكسل في وقت التشغيل ويدعم 1D و2D وvolume maps وcubemaps ومستويات mipmap ومصفوفات القوام وصيغ BC. - ScreenGrab: وحدات كتابة القوام لـ Direct3D 9 و11 و12، أساسًا لالتقاط الشاشة، وتكتب DDS أو صيغ صور مدعومة من WIC. - WICTextureLoader: محمّل قوام ثنائي الأبعاد لـ Direct3D 9 و11 و12 يستخدم WIC لتحميل الصور النقطية، وتغيير الحجم بناءً على مستوى الميزات أو معامل صريح، والتحويل إلى DXGI_FORMAT إذا لزم الأمر، وإنشاء قوام ثنائي الأبعاد. ولا يدعم القوام أحادي الأبعاد أو قوام الحجم أو cubemaps أو مصفوفات القوام. تشمل متطلبات البناء المذكورة في README كلاً من Visual Studio 2022 أو 2026، أو clang for Windows الإصدار 12 أو أحدث، أو MinGW، مع اشتراط Windows 11 SDK (22000) أو أحدث لـ Visual Studio. ويمكن أيضًا بناؤه لـ Windows Subsystem for Linux باستخدام GCC 11 أو أحدث. وتتطلب مشاريع CMake الإصدار 3.21 أو أحدث. وقد صُممت المكوّنات لتعمل دون محتوى من DirectX SDK القديم. تُستضاف الوثائق على GitHub wiki. كما يوثّق README تثبيت مهارة CoPilot CLI، وملاحظات الإصدار التي تغطي تغييرات API (مثل أعلام bitmask ذات enum مُنمّط وتغيير CREATETEX_FLAGS)، وإهمال بعض حزم NuGet لصالح vcpkg، وإيقاف دعم Windows 7 وWindows 8.0، والخيارات الطويلة بنمط GNU لأدوات سطر الأوامر. المشروع مرخّص بموجب MIT ويرحّب بالمساهمات بموجب CLA، مع تقديم الاختبارات إلى مستودع مجموعة اختبارات منفصل.