OpenGL Image ( GLI ) عبارة عن مكتبة صور C++ رأسية فقط لبرامج الرسومات.
يوفر GLI فئات ووظائف لتحميل ملفات الصور ( KTX و DDS )، وتسهيل إنشاء نسيج واجهات برمجة تطبيقات الرسومات، ومقارنة الأنسجة، والوصول إلى texels، وعينة من الأنسجة، وتحويل الأنسجة، وإنشاء خرائط mipmap، وما إلى ذلك.
تعمل هذه المكتبة بشكل مثالي مع OpenGL أو Vulkan ولكنها تضمن أيضًا إمكانية التشغيل التفاعلي مع مكتبات الطرف الثالث الأخرى وSDK. إنه مرشح جيد لعرض البرامج (تتبع الأشعة / التنقيط) أو معالجة الصور أو اختبار البرامج القائمة على الصور أو أي سياق تطوير يتطلب مكتبة صور بسيطة ومريحة.
تمت كتابة GLI في C++ 11. إنها مكتبة مستقلة عن النظام الأساسي دون أي تبعية وتدعم المترجمين التاليين:
- أبل كلانج 6.0 وما فوق
- دول مجلس التعاون الخليجي 4.7 وما فوق
- Intel C++ Composer XE 2013 والإصدارات الأحدث
- LLVM 3.4 وما فوق
- فيجوال سي++ 2013 وما فوق
- أي مترجم C++ 11
لمزيد من المعلومات حول GLI ، يرجى إلقاء نظرة على الدليل والوثائق المرجعية لواجهة برمجة التطبيقات (API). تم ترخيص الكود المصدري والوثائق بموجب ترخيص Happy Bunny (معهد ماساتشوستس للتكنولوجيا المعدل) أو ترخيص معهد ماساتشوستس للتكنولوجيا.
نشكرك على المساهمة في المشروع من خلال تقديم طلبات السحب.
# include < gli/gli.hpp >
GLuint CreateTexture ( char const * Filename)
{
gli::texture Texture = gli::load (Filename);
if (Texture. empty ())
return 0 ;
gli::gl GL (gli::gl::PROFILE_GL33);
gli::gl::format const Format = GL. translate (Texture. format (), Texture. swizzles ());
GLenum Target = GL. translate (Texture. target ());
assert ( gli::is_compressed (Texture. format ()) && Target == gli::TARGET_2D);
GLuint TextureName = 0 ;
glGenTextures ( 1 , &TextureName);
glBindTexture (Target, TextureName);
glTexParameteri (Target, GL_TEXTURE_BASE_LEVEL, 0 );
glTexParameteri (Target, GL_TEXTURE_MAX_LEVEL, static_cast <GLint>(Texture. levels () - 1 ));
glTexParameteriv (Target, GL_TEXTURE_SWIZZLE_RGBA, &Format. Swizzles [ 0 ]);
glTexStorage2D (Target, static_cast <GLint>(Texture. levels ()), Format. Internal , Extent. x , Extent. y );
for (std:: size_t Level = 0 ; Level < Texture. levels (); ++Level)
{
glm::tvec3<GLsizei> Extent (Texture. extent (Level));
glCompressedTexSubImage2D (
Target, static_cast <GLint>(Level), 0 , 0 , Extent. x , Extent. y ,
Format. Internal , static_cast <GLsizei>(Texture. size (Level)), Texture. data ( 0 , 0 , Level));
}
return TextureName;
}
أحدث إصدار
صحة المشروع
خدمة | نظام | مترجم | حالة |
---|
ترافيس سي آي | لينكس 64 بت | كلانج 3.9، كلانج 7، كلانج 9، كلانج 10، دول مجلس التعاون الخليجي 4.8، دول مجلس التعاون الخليجي 7.4، دول مجلس التعاون الخليجي 9، دول مجلس التعاون الخليجي 10 | |
AppVeyor | ويندوز 32 و 64 | فيجوال ستوديو 2013 | |
ملاحظات الإصدار
جي إل آي 0.8.3.0 - 2017-XX-XX
سمات:
- تمت إضافة تخفيف الضغط وأخذ العينات من DXT1 وDXT3 وDXT5 وATI1N وATI2N #110 #119
- تمت إضافة استعلامات العمق وتنسيق الاستنسل رقم 119
- تمت إضافة text_grad إلى العينات
الإصلاحات:
جي إل آي 0.8.2.0 - 2016-11-13
سمات:
- تمديد flip() للقوام المضغوط S3TC #94
- تمت إضافة استعلامات خاصية التنسيق رقم 102
التحسينات:
- عامل الملمس الثابت=
- تمت إضافة الدليل الأولي
الإصلاحات:
- تم إصلاح معلمات swizzle ATI2N رقم 121
جي إل آي 0.8.1.1 - 11/09/2016
التحسينات:
- تم تحديث GLM إلى الإصدار 0.9.8.0
الإصلاحات:
- تم إصلاح حفظ خرائط مكعب KTX
- نسيج ثابت :: بناء واضح
جي إل آي 0.8.1.0 - 2016-03-16
سمات:
- تمت إضافة نسخة نسيجية، دون الحاجة إلى تخصيص، بل نقل فقط
- تمت إضافة نسخة الصورة الفرعية
- تمت إضافة غير عضو واضح
- تمت إضافة وظائف المساعدة make_texture*
التحسينات:
- تمت إضافة قوام npot المضغوط لدعم رقم 73
- تمت إضافة ذاكرة تخزين مؤقت للوصول إلى الصور إلى الأنسجة العامة
- تمت إضافة ترجمة تنسيق ألفا للسطوع إلى OpenGL 3.3+ من خلال RG swizzling. #93
- تحسين الأداء عند أخذ العينات باستخدام mipmaps
- تم تحسين أقرب مرشح بدون حدود باستخدام أداء Texture_lod (أسرع بمقدار 2.5 مرة تقريبًا مع Texture2d)
- تحسين الملمس :: البيانات () (~ 18x مع صفيف المكعب، ~ 68x مع 2D)
- نسيج محسّن::size() (~3.1x مع مصفوفة المكعب، ~3.9x مع ثنائي الأبعاد)
- تحسين الملمس المتزامن::size() واستدعاءات الملمس::extent() (~2.1x مع صفيف المكعب، ~2.3x مع ثنائي الأبعاد)
الإصلاحات:
- تم إصلاح حفظ DX10 DDS للأنسجة ثلاثية الأبعاد رقم 91
- تم إصلاح ترجمة BGRX مع ملف التعريف PROFILE_GL33 رقم 92
- تم إصلاح تحميل DDS9 للنسيج ثلاثي الأبعاد الذي تم اكتشافه كنسيج ثنائي الأبعاد رقم 93
جي إل آي 0.8.0.0 - 2016-02-16
سمات:
- تمت إضافة دعم swizzle للملمس رقم 79
- تمت إضافة دعم لذاكرة الملمس
- تمت إضافة تحويل النسيج من أي تنسيق غير مضغوط إلى أي تنسيق غير مضغوط
- تمت إضافة نسيج الملمس
- تمت إضافة إنشاء خرائط mipmap للتنسيقات غير المضغوطة
- تمت إضافة دعم للتحميل والتخزين
- تمت إضافة الدعم للعديد من التنسيقات الجديدة
- تمت إضافة أداة أخذ العينات 1D و2D و3D والمصفوفة وخريطة المكعب
- تمت إضافة أداة جلب العينات وكتابة تيكسل
- تمت إضافة عينة واضحة
- تمت إضافة خوارزمية التحويل لحساب الحساب بين texels
- تمت إضافة خوارزمية تقليل لمقارنة جميع التكسيلات داخل الصورة
التحسينات:
- إعادة ترتيب التنسيقات لتتوافق مع تنسيقات Vulkan
- تحسين ترجمة OpenGL مع ملفات تعريف متعددة: KTX وES2.0 وES3.0 وGL3.2 وGL3.3
- تحسين وثائق دوكسيجين
الإصلاحات:
- دعم PVRTC2 ثابت
- نصوع ثابت وترجمة ألفا إلى OpenGL #56
- تم إصلاح دعم DXGI_FORMAT_B8G8R8X8_UNORM_SRGB رقم 59
- تم إصلاح تحميل FORMAT_RGBA8_UNORM DDS باستخدام وضع DDPF_RGBA رقم 60
- معالجة ثابتة لـ DDS DDPF_ALPHAPIXELS #68
- تم إصلاح الصور ومطابقة الأسماء والتنسيقات بشكل أفضل #78 #81 #80
- تم إنشاء ملفات BC4U وBC5U الثابتة من أداة تحميل MS DDS رقم 82
العمل قيد التقدم:
- تمت إضافة دعم حاوية KMG واقتراح المواصفات
جي إل آي 0.7.0.0 - 01/09/2015
- تمت إضافة تحميل وحفظ KTX
- تمت إضافة gli::load لتحميل الملفات العامة، إما ملفات DDS أو KTX اعتمادًا على امتدادات أسماء الملفات
- تمت إضافة gli::save لحفظ الملفات العامة، إما ملفات DDS أو KTX اعتمادًا على امتدادات أسماء الملفات
- تمت إضافة طرق عرض النسيج باستخدام تنسيق نسيج مختلف، بما في ذلك تنسيقات النسيج المضغوط
- وأضاف التفاصيل الدقيقة تشمل
- تحسين وثائق API
- مقارنات النسيج الأسرع بكثير ليست الحالات المثالية. (تم القياس بشكل أسرع بمعدل 21 مرة تقريبًا على Intel IVB)
- التعامل بشكل صريح مع أهداف النسيج: تم إصلاح حالات مختلفة من cubemap ومصفوفات النسيج التي فشلت في التحميل باستخدام DDS
- بناء دول مجلس التعاون الخليجي الثابتة
- تحذيرات ثابتة
- تم إصلاح حجم رأس DDS المحفوظ في رقم 52
جي إل آي 0.6.1.1 - 2015-07-18
- وثائق API المحدثة
- خطأ في الارتباط الثابت
جي إل آي 0.6.1.0 - 2015-07-18
- تناقضات الواجهة الثابتة
- تحسين أداء Clear() وdata() وsize() باستخدام التخزين المؤقت
- تمت إزالة الاعتماد الداخلي على std::fstream
- تمت إضافة دعم FORMAT_BGRX8_UNORM وFORMAT_BGRX8_SRGB رقم 48، رقم 43
- تحسين تحميل FORMAT_RGB8_UNORM
جي إل آي 0.6.0.0 - 28-06-2015
- إعادة هيكلة كبيرة
- تمت إضافة تحميل DDS من الذاكرة
- تمت إضافة حفظ DDS إلى الذاكرة
- تغطية DDS محسنة لتنسيقات R وRG وRGB وRGBA
- تمت إضافة دعم DDS ASTC وPVRTC وATC وETC
- تمت إضافة دعم نصوع DDS ألفا والنصوع وألفا
- تمت إضافة تنسيقات PVRTC2 وETC2 وEAC
جي إل آي 0.5.1.1 - 2014/01/20
- تم إصلاح قناة RGB المضطربة عند قراءة DDS مرة أخرى
- تم إصلاح خطأ رابط getMask*
جي إل آي 0.5.1.0 - 2014/01/18
- تمت إضافة وظيفة الوجه
- تمت إضافة وظيفة Level_count
- تم إصلاح التفاعل مع std::map (#33)
- تمت إضافة وظائف texelFetch وtexelWrite
جي إل آي 0.5.0.0 - 2013-11-24
- إعادة كتابة المكتبة بشكل أساسي
- تمت إضافة نسخ صريحة
- تمت إضافة تخصيص ذاكرة واحد لكل مساحة تخزين نسيج
- تمت إضافة طرق عرض الملمس
- وأضاف نسخ الملمس
- عوامل المقارنة المضافة
- تمت الإضافة بشكل واضح
جي إل آي 0.4.1.0:2013-03-10
- تمت إضافة توفير DDS
- بناء دول مجلس التعاون الخليجي الثابتة
- بناء XCode ثابت
جي إل آي 0.4.0.0:2013-01-28
- إعادة هيكلة واجهة برمجة التطبيقات (API) الكبيرة
- تحسينات في الأداء عند التحميل: 50x في تصحيح الأخطاء و50% في إنشاء الإصدار
- وأضاف الملمس2DArray
- وأضاف TextCube وtextureCubeArray
- وأضاف الملمس3D
- وأضاف الملمس 1D والملمس 1DArray
- تحسين دعم تحميل DDS
جي إل آي 0.3.0.3: 2011-04-05
جي إل آي 0.3.0.2: 2011-02-08
جي إل آي 0.3.0.1: 2010-10-15
جي إل آي 0.3.0.0:2010-10-01
- تمت إضافة تحميل وتخزين DDS10 (BC1 - BC7)
- وأضاف نظام التمديد
- تمت إضافة إنشاء كائن نسيج OpenGL تلقائيًا من الملف
جي إل آي 0.2.2.0: 2010-09-07
جي إل آي 0.2.1.1: 2010-05-12
- بناء دول مجلس التعاون الخليجي الثابتة
جي إل آي 0.2.1.0: 2010-02-15
- تمت إضافة وظيفة texelWrite
- تم إصلاح تحذيرات Visual Studio 2010
- تمت إضافة readme.txt وcopying.txt
جي إل آي 0.2.0.0: 2010-01-10
- واجهة برمجة التطبيقات المحدثة
- تمت إزالة تبعية التعزيز
جي إل آي 0.1.1.0: 2009-09-18
- محمل DDS ثابت
- تمت إضافة RGB8 إلى محمل DDS
- وأضاف عملية أفرط المكون
- تمت إضافة دعم مكونات الأعداد الصحيحة 32 بت
- جلب تيكسل ثابت
جي إل آي 0.1.0.0: 2009-03-28
- تمت إضافة محمل TGA
- تمت إضافة محمل DDS
- تمت إضافة نسخة مكررة، واقتصاص، ونسخة جزئية
- تمت إضافة جيل mipmaps.