OpenGL Utility Toolkit - OpenGL Utility Toolkit

OpenGL Utility Toolkit
Tuzuvchi (lar)Mark Kilgard
Operatsion tizimO'zaro faoliyat platforma
PlatformaO'zaro faoliyat platforma
TuriAPI
Veb-saytwww.opengl.org/ resurslar/ kutubxonalar/ glut/ Buni Vikidatada tahrirlash

The OpenGL Utility Toolkit (GLUT) a kutubxona uchun kommunal xizmatlar OpenGL birinchi navbatda tizim darajasida bajariladigan dasturlar I / O mezbon bilan operatsion tizim. Amalga oshiriladigan funktsiyalar oynani aniqlash, oynani boshqarish va monitoringni o'z ichiga oladi klaviatura va sichqoncha kiritish. Shuningdek, bir qator geometrik ibtidoiylarni (qat'iy va simli ramkada) chizish tartibi, shu jumladan kublar, sohalar va Yuta choynagi. GLUT-da pop-up menyularni yaratish bo'yicha cheklangan yordam mavjud.

GLUT tomonidan yozilgan Mark J. Kilgard, muallifi X oyna tizimi uchun OpenGL dasturlash va Cg bo'yicha qo'llanma: dasturlash mumkin bo'lgan real vaqtda grafikalar uchun aniq qo'llanma, u ishlayotgan paytda Silikon grafikalar Inc.

GLUT-ning ikkita maqsadi operatsion tizimlar orasida juda ko'chma kodni yaratishga imkon berishdir (GLUT - bu o'zaro faoliyat platforma ) va OpenGL-ni o'rganishni osonlashtirish uchun. GLUT-dan foydalanish paytida OpenGL dasturiy ta'minotini boshlash ko'pincha bir necha satr kodni oladi va operatsion tizimga xos oynalarni bilishni talab qilmaydi. API-lar.

Barcha GLUT funktsiyalari ochlik prefiks (masalan, glutPostRedisplay joriy oynani qayta chizish kerak deb belgilaydi).

Amaliyotlar

Mark Kilgard tomonidan yaratilgan asl GLUT kutubxonasi X oyna tizimi (GLX ) va ko'chirildi Microsoft Windows (WGL ) tomonidan Neyt Robins. Qo'shimcha ravishda, macOS o'z NSGL-ni qo'llab-quvvatlaydigan GLUT tizimiga ega kemalar /CGL.

Kilgardning GLUT kutubxonasi endi saqlanmaydi va uning litsenziyasi kutubxonaning o'zgartirilgan nusxalarini qayta tarqatishga ruxsat bermaydi. Bunga ehtiyoj paydo bo'ldi bepul dasturiy ta'minot yoki ochiq manba API-ni noldan qayta tiklash. Birinchi shunday kutubxona bo'lgan FreeGLUT, bu GLUTning cheklovlarini hal qilish uchun oz sonli yangi funktsiyalarni taqdim etsa-da, juda yaqin reproduktsiya bo'lishni maqsad qiladi. OpenGLUT, a vilka FreeGLUT-dan, asl API-ga bir qator yangi xususiyatlarni qo'shadi, ammo u bilan ishlash 2005 yil may oyida to'xtatildi.

Mark Kilgardda GLUT uchun GitHub ombori mavjud.[1] Glut.h sarlavha fayli quyidagi litsenziyani o'z ichiga oladi:[2]

/ * Mualliflik huquqi (c) Mark J. Kilgard, 1994, 1995, 1996, 1998, 2000, 2006, 2010. * // * Ushbu dastur litsenziyalash to'lovlariisiz erkin tarqatiladi va kafolat yoki kafolat bildirilmagan yoki nazarda tutilmagan holda taqdim etiladi. Ushbu dastur jamoat domenida emas. * /

Cheklovlar

GLUT-ning ba'zi bir original dizayn qarorlari dasturchilarga kerakli vazifalarni bajarishni qiyinlashtirdi. Bu ko'pchilikni GLUT-ga kanon bo'lmagan yamalar va kengaytmalar yaratishga olib keldi.[1] Biroz bepul dasturiy ta'minot yoki ochiq manba reimplementations shuningdek tuzatishlarni o'z ichiga oladi.

Asl GLUT kutubxonasining ba'zi muhim cheklovlariga quyidagilar kiradi:

  • Kutubxona uchun dasturchilar qo'ng'iroq qilishni talab qiladi glutMainLoop (), hech qachon qaytmaydigan funktsiya. Bu dasturchilarga GLUT-ni o'z voqealar davrasini boshqarishni xohlaydigan dastur yoki kutubxonaga qo'shilishini qiyinlashtiradi. Buni tuzatish uchun umumiy yamoq - bu yangi funktsiyani kiritishdir glutCheckLoop () (macOS) yoki glutMainLoopEvent () (FreeGLUT / OpenGLUT), bu faqat GLUT voqealar tsiklining bitta takrorlanishini ishlaydi. Boshqa keng tarqalgan vaqtinchalik echim - bu GLUT ning voqealar tsiklini alohida-alohida ishlatish ip, ammo bu operatsion tizimga qarab farq qilishi va kiritishi mumkin sinxronizatsiya muammolar yoki boshqa muammolar: masalan, macOS GLUT dasturini amalga oshirish shuni talab qiladi glutMainLoop () asosiy ipda ishlaydi.
  • Haqiqat glutMainLoop () hech qachon qaytmaydi, shuningdek GLUT dasturi voqealar siklidan chiqa olmasligini anglatadi. FreeGLUT buni yangi funktsiyani kiritish orqali tuzatadi, glutLeaveMainLoop ().
  • Oyna yopilganda kutubxona jarayonni to'xtatadi; ba'zi ilovalar uchun bu kerak bo'lmasligi mumkin. Shunday qilib, ko'plab dasturlar qo'shimcha qo'ng'iroqni o'z ichiga oladi, masalan glutWMCloseFunc ().

U endi saqlanib qolmaganligi sababli (asosan ochiq manba FreeGLUT ) yuqoridagi dizayn muammolari hali ham asl GLUT-da hal qilinmagan.

Shuningdek qarang

Adabiyotlar

Tashqi havolalar