ImGui Nedir? Dear ImGui Açıklaması (2026)

ImGui (Dear ImGui), C++ için anında modlu bir grafik kullanıcı arayüzü kütüphanesidir. Her karede menüleri çizerek, saklanan bir widget ağacı olmadan çalışır; oyun araçlarında ve yerel istemcilerde yaygın olarak kullanılır.

Librariesby trqUpdated June 4, 2026
Key takeaways
  • ImGui (Dear ImGui), C++ için küçük, anında modlu bir grafik kullanıcı arayüzü (GUI) kütüphanesidir.
  • Her karede, fonksiyon çağrıları aracılığıyla menüyü yeniden çizer, herhangi bir widget ağacı bakımını gerektirmez.
  • Yerel istemciler ve araçlar, 3D bir sahnenin üzerine düşük gecikmeli bir örtü için onu tercih ederler.
  • Bu, bir C++ kalıbıdır; Java Fabric modları, oyunun kendi GUI bağlantı noktalarını kullanır.

ImGui, Dear ImGui'nin kısaltmasıdır, C++ için küçük, anında modlu bir grafik kullanıcı arayüzü (GUI) kütüphanesidir. Widget nesnelerinin bir ağacını korumak yerine, her karede düz fonksiyon çağrıları aracılığıyla menüyü yeniden çizer. Bu, kurulumunu hızla sağlamayı ve bir oyunun mevcut render döngüsünün üzerine kolayca yerleştirmeyi mümkün kılar; bu nedenle araçlar ve yerel istemciler düşük gecikmeli üst üste bindirmeler için onu kullanır.

Opal Nerede Çalışır

Opal, bir Fabric mod'udur, bu nedenle oyunun kendi GUI bağlantı noktaları aracılığıyla arayüzünü oluşturur, ImGui yerine. Yerel kodu değiştirmeden özellikler eklemek istiyorsanız, GraalVM JavaScript betik çalıştırma motoru ile başlamak için doğru yerdir. Kurulum rehberine ve betik çalıştırma rehberine bakın.

Anlamı Ne Demek?

ImGui, arayüzü her karede yeniden oluşturur. Bir buton nesnesi oluşturup saklamazsınız. "Buraya bir buton çiz" diyen bir fonksiyonu çağırırsınız ve bu çağrı hem butonu çizer hem de bu karede tıklanıp tıklanmadığını size bildirir.

Saklı modlu bir araç seti tam tersi şekilde çalışır. Bellekte uzun ömürlü bir widget ağacı tutar ve durum değiştiğinde bu ağacı güncellersiniz. Anlık mod, bu kalıcı yapıyı, kendi durumunuzun yanında okunan ve yaşayan koda karşılık getirir.

Neden Araçlar ve İstemciler Bunu Seçiyor?

ImGui, 3D bir sahnenin üzerine yerleştirilen menüler için popülerdir. Bunun pratik nedenleri vardır.

  • Düşük gecikme süresi: programın zaten oluşturduğu bir kareye bağlanır, böylece menü hemen tepki verir.
  • Az ekleme: bir pencere ve birkaç kontrol, sadece birkaç fonksiyon çağrısıdır. Yönetilmesi gereken bir düzen dosyası veya ayrı bir UI iş parçacığı yoktur.
  • Bağımsız: kütüphanenin az bağımlılığı vardır ve yaygın grafik arka uçlarına uyum sağlar, bu nedenle ağır bir çerçeve çekmez.
  • Hata ayıklamaya uygun: yayın menüsünü oluşturan aynı çağrılar, geliştiricilerin bir özelliği oluştururken kullandıkları geçici hata ayıklama panellerini de oluşturur.

Anlık Mod vs Saklı Mod

YönAnında Mod (ImGui)Saklı Mod Araç Kiti
Durum sahipliğiKodunuz veriyi tutarAraç kiti bir widget ağacını tutar
Kare başına çalışmaHer karede kullanıcı arayüzünü yeniden oluşturunDeğişiklikte ağacı güncelleyin
Kurulum maliyetiBirkaç fonksiyon çağrısıÖnceden daha fazla yapı
En uygunÜst üste binenler, araçlar, oyun menüleriBüyük, belge tarzı uygulamalar

Yerel bir istemciye nasıl uyum sağlıyor

C++ ile oluşturulmuş yerel bir yardımcı istemci, genellikle oyunun çerçevesi üzerinde ImGui ile menüsünü çizer. Menü kodu, render döngüsünün içinde çalışır, istemcinin kendi ayarlarını okur ve değişiklikleri doğrudan yazar. Ayrı bir kullanıcı arayüzü süreci olmadığından, bir özelliği etkinleştirmek, istemcinin zaten sahip olduğu bir değere karşı yalnızca bir fonksiyon çağrısıdır.

Bu, bir C++ kalıbıdır. Fabric ile yazılmış bir Java modu, oyunun kendi GUI bağlantı noktaları aracılığıyla arayüzüne ulaşır, bu nedenle ImGui çoğunlukla yerel kod olarak gönderilen istemcilerde görünür, Java modları olarak değil.

SSS