Hafif Java Oyun Kitaplığı - Lightweight Java Game Library - Wikipedia

Hafif Java Oyun Kitaplığı (LWJGL)
LWJGL logo.svg
İlk sürüm4 Şubat 2007; 13 yıl önce (2007-02-04)[1]
Kararlı sürüm
3.2.3 b13 / 2 Eylül 2019; 15 ay önce (2019-09-02)[2]
Önizleme sürümü
3.2.4 b6 / 15 Eylül 2020; 3 ay önce (2020-09-15)
Depogithub.com/ lwjgl
YazılmışJava, C, Kotlin[3][4]
İşletim sistemipencereler, Linux, OS X
PlatformJava platformu
TürÜcretsiz bilgisayar kitaplığı
LisansBSD,[5] farklı lisanslar altında bazı bağlamalar[3]
İnternet sitesiwww.lwjgl.org Bunu Vikiveri'de düzenleyin

Hafif Java Oyun Kitaplığı (LWJGL) bir açık kaynak Java için yazılım kitaplığı video oyun geliştiricileri. Yüksek performansı ortaya çıkarır çapraz platform kütüphaneler video oyunları ve multimedya başlıkları geliştirmede yaygın olarak kullanılır, örneğin Vulkan, OpenGL, OpenAL ve OpenCL. Ayrıca, platformdan bağımsız bir şekilde kumandalara, direksiyon simidlerine ve kumanda kollarına erişim sağlar.[6]

Projenin birincil amacı, Java geliştiricilerinin mevcut Java platformunda başka şekilde kullanılamayan veya kötü bir şekilde uygulanmış kaynaklara erişim sağlamaları için bir yol sağlamaktır. Temel felsefe, altta yatan teknolojiyi ince bir paketleyici olarak ortaya çıkarmak ve böylece API orijinale yakın. Aynı zamanda birçok üst düzey Java oyun motorunun ve kitaplığının temelini oluşturur. libGDX ya da jMonkeyEngine.

LWJGL, bir BSD lisansı.[5]

13 Kasım 2014'te, 27 Nisan 2015'te alfa sürümünde yayınlanan ve LWJGL'nin tamamen yeniden yazılması olan sürüm 3 duyuruldu.[7][8][9] Dahil olmak üzere birçok yeni bağlama GLFW, EGL ve Amaç-C, eklendi.[5][8] İçin destek Oculus Rift geliştirme de eklendi LibOVR bağlamalar.[5][9] Yeni sürüm, 3 buçuk yıldan fazla süren geliştirme sürecinin ardından 4 Haziran 2016'da piyasaya sürüldü.[10]

Bağlamalar

Kütüphane yerel erişime C aracılığıyla kod Java Yerel Arayüzü (JNI). Bağlamalar yerel kitaplıkların her biri için farklı modüller olarak bulunur, böylece geliştiriciler yalnızca belirli bir programda ihtiyaç duydukları şeylerle özel yapılar oluşturabilir.[5][9][11]

Fayda sınıfları saf olarak yazılırken Java, bağlama sınıflarının çoğu, içinde uygulanan özel bir oluşturucu tarafından otomatik olarak oluşturulur. Kotlin.[3][4]

3.1 sürümünden bu yana, LWJGL ayrı ayrı indirilebilen ve kullanılabilen 51 modüle tamamen bölünmüştür. Bu süreci kolaylaştırmak için proje, kullanıcıların özel modül kombinasyonlarını indirmesine ve otomatik olarak oluşturmasına olanak tanıyan çevrimiçi bir yapı yapılandırıcısı sağlar. Uzman ve Gradle mevcut projelerle kullanımlarını kolaylaştırmak için yapılandırma dosyaları.[12][13]

Sağlanan bağlamalar[3][5]
BağlayıcıKategoriAçıklamaNotlar
EGLKhronos API'lerKhronos işleme API'leri ile temeldeki yerel platform pencere sistemi arasındaki arayüz.
OpenCLÇapraz platform için API paralel hesaplama.
OpenGLÇoğu tarafından uygulanan 3B grafik özellikleri GPU satıcılar.Çoğu uzantı desteklenir, ancak daha az popüler olanlar istek üzerine eklenecektir.
OpenGL ESOpenGL için gömülü sistemler cep telefonları, tabletler veya konsollar gibi.
VulkanYeni platformlar arası 3B grafik API'si.
GLFWEkran ve GirişOpenGL ve Vulkan bağlamlarının yanı sıra kullanıcı girdisini işlemek için pencere yönetimi kitaplığı gereklidir.
ÇENEAWT yerel arayüz.
nfdKüçük, platformlar arası yerel dosya iletişim kutuları kitaplığı.
tinyfdKüçük yerel iletişim kitaplığı.
OpenALSesÜç boyutlu ses API'si.ALC ve diğer uzantılar desteklenmektedir.
OpenAL YumuşakSerbest lisanslı yazılım uygulaması OpenAL.
başyapıtAçık, telifsiz ses codec bileşeni.
AssimpGrafiklerÇeşitli içe aktarmak için taşınabilir açık kaynak kitaplık 3 boyutlu model biçimler.
bgfxBirden çok grafik arka ucunu destekleyen çapraz platform oluşturma kitaplığı.
DriftFXOpenGL içeriğini JavaFX düğümlerine dönüştürmek için kitaplık.
LibOVRAPI'si Oculus Rift SDK.
meshoptimizerAğları daha küçük ve daha hızlı hale getiren bir ağ optimizasyon kitaplığı
NanoSVGBasit SVG ayrıştırıcı.
NanoVGOpenGL kullanarak 2B vektör grafik oluşturma kitaplığı.
Nuklear (kütüphane)Basit GUI kütüphane.
par şekillerİçin jeneratör parametrik ve diğer basit şekiller.
par_streamlinesGeniş çizgileri ve eğrileri üçgenleyin.
OpenVRUygulamaların hedefledikleri donanım türü hakkında belirli bilgilere sahip olmasını gerektirmeden birden çok tedarikçiden VR donanımına erişime izin veren bir API çalışma zamanı.
Shadercİçin bir kütüphane koleksiyonu gölgelendirici derleme
SPIRV-ÇaprazÜzerinde derinlemesine düşünmek için bir kütüphane SPIR-V ve SPIR-V'nin yüksek seviyeli dillere geri döndürülmesi.
OpenEXROpenEXR (.exr) görüntülerini yüklemek ve kaydetmek için küçük, tek başlıklı bir kitaplık.
Tootle (AMD)Mevcut mesh ön işleme tekniklerini iyileştiren bir 3B üçgen kafes optimizasyon kitaplığı.
Vulkan Hafıza AyırıcıEntegre edilmesi kolay bir Vulkan bellek ayırma kitaplığı.
YogaAçık kaynaklı, çapraz platform düzen kitaplığı CSS Flexbox.
STBSTBGörüntüleri, sesleri ve yazı tiplerini yüklemek için hafif tek dosya kitaplıkları.
Bullet FiziğiDiğerSanal gerçeklik, oyunlar, görsel efektler, robotik, makine öğrenimi vb. İçin gerçek zamanlı çarpışma algılama ve çoklu fizik simülasyonu.
CUDABir paralel hesaplama platformu ve programlama modeli NVIDIA GPU'larda genel bilgi işlem için.
dyncallC işlevlerini taşınabilir bir şekilde dinamik olarak çağırmak için kitaplık.
jemallocDüşük seviyeli bellek yönetimi.
libdividePahalı tamsayının yerini alan bir kitaplık, nispeten ucuz çarpma ve bit kaydırmalarıyla bölünür.
LLVMModüler ve yeniden kullanılabilir derleyici ve araç zinciri teknolojilerinin bir koleksiyonu.
LMDBHızlı veritabanı kitaplığı kullanarak bellek eşlemeli dosyalar.
LZ4Kayıpsız Veri sıkıştırma hıza odaklanan algoritma.
Miyav HashHızlı olmayankriptografik karma.
ODBCUygulamaların çeşitli veritabanı yönetim sistemlerinden verilere erişmesini mümkün kılan bir C dili arabirimi.
Uzaktan kumandaGerçek zamanlı CPU / GPU profil oluşturucu.
rpmallocPlatformlar arası iş parçacığı önbelleğe alma bellek ayırıcısı.
xxHashHızlı karma algoritma.
ZstandardHızlı, kayıpsız bir sıkıştırma algoritması.

Önemli kullanımlar

Referanslar

  1. ^ "LWJGL 1.0 Yayınlandı". forum.lwjgl.org. 4 Şubat 2007. Alındı 23 Temmuz 2016.
  2. ^ "LWJGL 3.2.3". github.com. 2 Eylül 2019. Alındı 13 Ekim 2019.
  3. ^ a b c d "LWJGL / lwjgl3". github.com. Alındı 13 Ağustos 2016.
  4. ^ a b "lwjgl3 / doc - Oluşturucu". github.com. 11 Ağustos 2015. Alındı 30 Ağustos 2015.
  5. ^ a b c d e f "Resmi internet sitesi". Alındı 14 Ağustos 2015.
  6. ^ "LWJGL Wiki". github.com. Alındı 2 Haziran 2015.
  7. ^ Tsakpinis, Ioannis (13 Kasım 2014). "LWJGL 3'e hoş geldiniz". blog.lwjgl.org.
  8. ^ a b "LWJGL 3 Yol Haritası". github.com. Alındı 2 Haziran 2015.
  9. ^ a b c Tsakpinis, Ioannis (27 Nisan 2015). "LWJGL 3.0.0a piyasaya çıktı". blog.lwjgl.org.
  10. ^ "LWJGL 3.0.0 Yayınlandı!". blog.lwjgl.org. 4 Haziran 2016. Alındı 4 Haziran 2016.
  11. ^ "Bağlamalar SSS". github.com. 27 Aralık 2014. Alındı 27 Temmuz 2015.
  12. ^ "LWJGL 3.1.0 Yayınlandı!". blog.lwjgl.org. 30 Ekim 2016. Alındı 11 Kasım 2016.
  13. ^ "İndir - LWJGL". lwjgl.org. Alındı 11 Kasım 2016.
  14. ^ "Minecraft Atıfları | Minecraft". Minecraft.net. Alındı 9 Temmuz 2020.

Dış bağlantılar