عن المشروع

## نظرة عامة هذا هو المستودع الرسمي لـ Khronos لـ KTX (Khronos Texture)، وهو تنسيق حاوية خفيف للنسيج يُستخدم مع OpenGL وVulkan وواجهات برمجة تطبيقات GPU الأخرى. يخزن ملف KTX جميع المعلمات اللازمة لتحميل النسيج، ويمكن لملف واحد أن يحتوي على أي شيء بدءًا من نسيج ثنائي الأبعاد بسيط بالمستوى الأساسي وحتى نسيج مصفوفة مكعبة مع خرائط ميب. ## ما يتضمنه البرنامج - **libktx** — مكتبة C صغيرة لقراءة وكتابة ملفات KTX ولإنشاء نسج OpenGL وOpenGL ES وVulkan منها. - **libktx.js / libktx.wasm** — بناء WebAssembly لـ libktx مع غلاف JavaScript. - **msc_basis_transcoder.js / .wasm** — مُحوِّل WebAssembly مع غلاف JavaScript لتنسيقات Basis Universal، مخصص لمحللات KTX المكتوبة بلغة JavaScript. - **libktx.jar و libktx-jni** — غلاف Java ومكتبة الواجهة الأصلية. - **pyktx** — غلاف Python. - **ktx** — أداة سطر أوامر عامة لإدارة ملفات KTX2، مع أوامر فرعية: compare وconvert وcreate وdeflate وextract وencode وtranscode وinfo وvalidate وhelp. ## تنسيقات النسيج يمكن أن تكون النسج المضمنة بتنسيق Basis Universal، أو بتنسيقات مضغوطة بالكتل مدعومة من عائلة OpenGL وواجهات برمجة تطبيقات Vulkan وامتداداتها، أو بتنسيق غير مضغوط أحادي المستوى. يغطي Basis Universal حاليًا LZ/ETC1S (ضغط الكتل بالإضافة إلى الضغط الفائق) وUASTC (تنسيق مضغوط بالكتل). يمكن ضغط التنسيقات الأخرى غير LZ/ETC1S بشكل فائق باستخدام Zstd وZLIB. ## التوزيع والتوثيق تُنشر الحزم الثنائية للأدوات والمكتبة ورؤوس التطوير على صفحة الإصدارات الخاصة بالمشروع، والتي تستضيف أيضًا حزمًا تحتوي على أغلفة JavaScript وملفات .wasm الثنائية. يتوفر توثيق مُولَّد بواسطة Doxygen يغطي استخدام واجهة البرمجة والأدوات عبر الإنترنت. تتضمن مثبتات إصدارات سطح المكتب مكونات متعددة؛ افتراضيًا يتم تثبيت أداة ktx ومكتبة libktx وقت التشغيل فقط، ويمكن تحديد مكونات أخرى مثل رؤوس التطوير وغلاف Java عبر خيار التخصيص في المثبت. ## ملاحظات المستودع يجب تثبيت Git LFS (الإصدار 1.1 أو أحدث) لسحب المستودع بالكامل بعد الاستنساخ؛ إذا كان مفقودًا عند أول سحب، قم بتشغيل `git lfs checkout` بعد ذلك. توجد اختبارات المطابقة لأداة سطر الأوامر ktx في مستودع منفصل KTX-Software-CTS، مُضمَّن كوحدة فرعية لـ git غير مطلوبة افتراضيًا لبناء المكتبات أو الأدوات. تستخدم بعض الملفات توسيع الكلمات الرئيسية `$Date$` عبر مرشحات smudge/clean، المكوّنة عبر نصوص install-gitconfig ونصوص smudge_date لصدفات يونكس وWindows PowerShell. تتضمن النصوص المساعدة `scripts/gk` للبحث في المصدر مع تخطي أدلة البناء و.git وexternal وtests/cts، و`scripts/ktx-compare-git`، وهو غلاف يتيح `ktx compare` كبرنامج تشغيل diff لـ git لملفات KTX2. يتم التعامل مع الدعم عبر مناقشات GitHub، ويتم الإبلاغ عن المشكلات عبر قضايا GitHub. يتم توثيق معلومات المساهمة والترخيص والبناء في ملفات CONTRIBUTING وLICENSE وBUILDING.