İçeriğe atla

GLFW

GLFW
Geliştirici(ler)GLFW geliştirici takımı
Güncel sürüm3.2.1 / 18 Ağustos 2016
Geliştirme durumuAktif
İşletim sistemiWindows, Mac OS X, Linux
TürYazılım Kütüphanesi
Lisanszlib/libpng
Resmî sitesiwww.glfw.org
Kod deposu Bunu Vikiveri'de düzenleyin

GLFW, temelde ve ilk olarak OpenGL ile kullanılmak üzere geliştirilmiş hafif bir yardımcı kütüphanedir. Programcıya, üzerinde çalışılan işletim sisteminden bağımsız olarak OpenGL ve Vulkan için 'context' ve pencere yaratma, klavye, fare, oyun çubuğu girdi ve çıktılarını yönetme kolaylığı sağlar.

Yazılım mimarisi

GLFW, küçük bir C kütüphanesidir ve programcının OpenGL, Vulkan kaynağına sahip pencereler yaratıp yönetebilmesine, tanımlı farklı monitör ve video modlarını kullanabilmesine, standart bilgisayar giriş çıkış aygıtlarıyla OpenGL'i ilişkilendirebilmesine yardımcı olur. GLFW, uygulamaların ilgili grafik API'sinin çıktılarına zemin olabilecek oldukça ince birçok-platform soyutlama katmanı sunar. GLFW, çok-platformlu uygulamalar geliştirmek için uygun olduğu gibi, tek platform üzerinde uygulama geliştirmek isteyen programcıların da üzerinde çalıştıkları işletim sisteminin özel API'leriyle cebelleşmesini önler.

GLFW türü kütüphaneler; OpenGL gibi API'lerin sunmadığı pencere yönetimi, kullanıcı girdi-çıktı işlemleri gibi olayları yönetmek için üretilirler. Etrafta bu işi yapan freeglut, SDL gibi daha pek çok kütüphane mevcuttur. freeglut, GLUT'un açık kaynak implementasyonudur. Ancak, freeglut'un yalnızca eski GLUT'a bire bir alternatif olması ve SDL'nin de çok büyük bir kütüphane olması yalnızca OpenGL'e odaklanmak isteyenler için yeni kütüphaneleri zorunlu kılmaktadır. İşte bu noktada hafifliği, modern tasarımı ve yalnızca OpenGL için araçlar sunması dolayısıyla GLFW öne çıkar.

GLFW,

  • bir kullanıcı arabirimi kütüphanesi sunmaz. Programcı, GLFW'yi kullanarak OpenGL kaynağıyla (context) ilintilendirilmiş bir üst seviye pencereyi kolayca yaratabilir. Ancak menu, düğme gibi GUI elemanları sağlamaz.
  • yalnızca Windows kütüphanesi değildir. Windows'a özgü karmaşık özellikler içermez.
  • threading (çoklu iş parçacığı) kütüphanesi değildir. Bunu gerçekleştirebilmek için piyasadaki üçüncü parti kütüphaneler kullanılabilir. Üstelik C++11 gibi C++ sürümleriyle bunlar dile de eklenecekler.
  • bir resim yükleme kütüphanesi değildir.
  • bir render kütüphanesi değildir. OpenGL kullanarak bunu yapmak, programcının sorumluluğundadır.
  • ses dosyaları çalamaz veya işleyemez.
  • GLUT veya SDL değildir.

Kullanılabileceği programlama dilleri

GLFW, C ile yazılmıştır ancak diğer dillerle de çalışabilecek bağlayıcılara sahiptir Ada, C Sharp, Common Lisp, D (programlama dili), Go (programlama dili), Haskell (programlama dili), Java (programlama dili), Python, Rebol, Red (programlama dili), Ruby (programlama dili) ve Rust (programlama dili).[1]

Bağlantılar

GLFW Anasayfa 13 Aralık 2014 tarihinde Wayback Machine sitesinde arşivlendi.

Kaynakça

  1. ^ "GLFW Programlama Dili Bağlayıcıları". 17 Haziran 2015 tarihinde kaynağından arşivlendi. Erişim tarihi: 4 Mart 2014. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C (programlama dili)</span> programlama dili

C, yapısal bir programlama dilidir. Bell Laboratuvarları'nda, Ken Thompson ve Dennis Ritchie tarafından UNIX işletim sistemini geliştirebilmek amacıyla B dilinden türetilmiştir. Geliştirilme tarihi 1972 olmasına rağmen yaygınlaşması Brian Kernighan ve Dennis M. Ritchie tarafından yayımlanan "C Programlama Dili" kitabından sonra hızlanmıştır. Günümüzde neredeyse tüm işletim sistemlerinin yapımında %95'lere varan oranda kullanılmış, hâlen daha sistem, sürücü yazılımı, işletim sistemi modülleri ve hız gereken her yerde kullanılan oldukça yaygın ve sınırları belirsiz oldukça keskin bir dildir. Keskinliği, programcıya sonsuz özgürlüğün yanında çok büyük hatalar yapabilme olanağı sağlamasıdır. Programlamanın gelişim süreciyle beraber programlamanın karmaşıklaşması, gereksinimlerin artması ile uygulama programlarında nesne yönelimliliğin ortaya çıkmasından sonra C programcıları büyük ölçüde nesne yönelimliliği destekleyen C++ diline geçmişlerdir.

<span class="mw-page-title-main">OpenGL</span> grafik uygulama geliştirme arabirimi

OpenGL, gelişmiş donanım desteğini kullanarak hem iki hem de üç boyutlu grafikleri ekrana çizmek için kullanılan ücretsiz bir grafik uygulama geliştirme arabirimidir. Windows, Linux, MacOS ve Solaris gibi birçok işletim sisteminde yaygın olarak ve Playstation 3 başta olmak üzere bazı oyun konsollarınca desteklenir. Donanım tarafında ise SGI, ATI, Nvidia veya Intel gibi büyük üreticiler her ekran kartında OpenGL desteği sunar.

GLSL, C tabanlı yüksek seviye bir programlama dilidir.OpenGL ARB tarafından,geliştiricilerin grafik işhattına assembly veya donanım-bağımlı bir dil bilmeden direkt erişim sağlaması için yaratılmıştır.

GTK grafik kullanıcı arabirimleri üretmek için bir kütüphanedir. LGPL lisanslıdır, yani GTK kullanarak hiç lisans ya da telif hakkı parası ödemeden açık kodlu yazılım, bedava yazılım veya ticari paralı yazılım yapabilirsiniz.

GLUT, OpenGL Programming for the X Window System and The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics'in yazarı ve Silicon Graphics çalışanı Mark J. Kilgard tarafından OpenGL programlarının geliştirilmesi amacıyla yazılmış bir kütüphanedir. Nate Robins tarafından Win32 platformuna da aktarılmıştır.

<span class="mw-page-title-main">Simple DirectMedia Layer</span> özgür ve açık kaynak kodlu yazılım çoklu ortam kütüphanesi

Simple DirectMedia Layer (SDL), ilk olarak 1998 yılında Sam Lantinga tarafından C programlama dili ile yazılmış, çapraz platform, özgür ve açık kaynak kodlu yazılım çoklu ortam kütüphanesi. Birçok platformda değişikliğe gerek duymadan grafik, ses, klavye, fare etkileşimi sunan bir arabirim niteliğindedir.

<span class="mw-page-title-main">FLTK</span>

FLTK, Bill Spitzak tarafından C++ ile geliştirilmiş çapraz platform GUI kütüphanesidir. GNU LGPL ile özgür olarak dağıtılıp kullanılabilir. OpenGL ile üç boyutlu programlama yeteneklerini kullanır. Fakat genel GUI programlamasına da uygun olarak geliştirilmiştir. C++ ile geliştirildiğinden birincil programlama tercihi de bu yöndedir. Fakat zaman içerisinde Lua, Python, Ruby gibi nesne yönelimli diller içinde uygun hale getirilmiştir.

freeglut, ilk olarak Pawel W. Olszta tarafından geliştirilmeye başlanan OpenGL Utility Toolkit (GLUT) in bütünüyle açık kaynak seçeneği bir kütüphanedir. Şu anda Steve Baker tarafından resmi olarak sahiplenilmiştir.

GLee, açık kaynak kodlu çapraz platform OpenGL uzantı (extension) yükleme kütüphanesi. GLee, OpenGL 3.0 ile birlikte gelen yeni fonksiyonların tamamına ve 399 uzantıya kusursuz destek sağlar. OpenGL Extension kütüphanelerine bağlantıyı, çekirdek fonksiyonları kullanmayı kolaylaştırmak amacıyla geliştirilmiştir.

<span class="mw-page-title-main">OpenSceneGraph</span>

OpenSceneGraph açık kaynaklı, geçişli platformlarda uçuş simülasyonu, oyun, sanal gerçeklikler ve bilimsel sanallaştırmalar gibi yüksek performansta grafik uygulamaları geliştirebilmek için kullanılan grafik araçlarıdır. SceneGraph kaynağının temelini, OpenGL’nin üzerinde bulunarak geliştiriciyi düşük seviyeli grafik çağırımlarını uygulama ve uyumlaştırma gibi işlemlerden kurtaran nesneye yönelik bir framework ile desteklemektedir. Ayrıca grafik uygulamasında hızlı geliştirme için birçok ek özellikleri (utilities) de desteklemektedir.

<span class="mw-page-title-main">Qt (çalışma alanı)</span>

Qt, birden çok platformu destekleyen bir grafiksel kullanıcı arayüzü geliştirme araç takımıdır. Genellikle GUI programları geliştirmek için kullanılsa da gelişmiş kütüphanesi GUI bileşenlerinin dışında birçok araç içermektedir. Qt, en çok KDE masaüstü ortamında, Opera ağ tarayıcısında ve Skype anlık mesajlaşma programlarında kullanılmasıyla bilinir.

SFML (Simple and Fast Multimedia Library), bilgisayar bileşenleri için basit arayüz sağlayan platform bağımsız yazılım geliştirme kütüphanesi. C++ ile nesne yönelimli olarak geliştirilmiştir ve C, D, Java, Python, Ruby, .NET, Go, Rust, OCaml, Euphoria ve Nimrod gibi programlama dilleri için de bağlayıcıları vardır. Android ve iOS için uygulama geliştirebilmeyi sağlayacak deneysel portu SFML'nin 2.2 sürümüyle birlikte gelmiştir.

<span class="mw-page-title-main">Metal API</span> IOS,macOS and tvOS grafik render uygulama programlama arayüzüdür

Metal API iOS 8-de tanıtılan düşük seviyeli, düşük-havai donanım hızlandırmalı grafik ve bilgisayar uygulama programlama arayüzüdür (API). Bu, bir API altında OpenGL ve OpenCLe benzer işlevselliğini birleştirir. Metal API IOS-a diğer platformlarda benzer API'lerin performans yararlarından bazılarını getirmek için tasarlanmıştır. Metal, 2 Haziran 2014 yılından beri Apple A7 ya da sonrasını kullanan iOS cihazlarında ve 8 Haziran 2015'ten beri OS X El Capitan çalıştıran Mac'lar üzerinde mevcuttur. Metal daha da işlem shaderi getirerek GPGPU programlama yeteneklerini geliştirdi. Metal C++11 dayalı yeni bir gölgeleme dili kullanır; Bu Clang ve LLVM kullanılarak uygulanır. OS X'da Metal desteği WWDC 2015'te açıklandı.

Vulkan düşük maliyetli ve Çapraz platform 3D grafik ve işlem API-sidir. İlk kez Khronos Group tarafından GDC 2015'te açıklandı. Vulkan API başlangıçta, Khronos tarafından yeni nesil "OpenGL girişimi" veya "OpenGL-in sonrakısı" olarak sevk edildi. Vulkan, AMD'nin Mantle API bileşenleri üzerine türetilmiş ve inşa edilmiştir. Khronos'a, bir vakıf niyetiyle AMD tarafından bağışlanmıştır. OpenGL gibi, Vulkan da yüksek performanslı video oyunu ve interaktif medya gibi, gerçek zamanlı 3D grafik uygulamalara hedeflenir ve Direct3D 12 ve Mantle gibi, daha yüksek performans ve daha düşük CPU kullanımı sunuyor. Vulkanın ayrıca 2D grafik uygulamaları işlemek için yeteneği vardır, ancak genellikle 3D için uygundur. Alt CPU kullanımı yanı sıra, Vulkan da daha Çok çekirdekli işlemciler arasında eser yapabiliyor.

<span class="mw-page-title-main">Metin tabanlı kullanıcı arayüzü</span> bir metin ekranına çıktı vermeye veya onu kontrol etmeye dayalı arabirim türü

Metin tabanlı kullanıcı arayüzü, metinsel kullanıcı arayüzü veya terminal kullanıcı arabirimi olarak da adlandırılır, grafik kullanıcı arayüzlerinin (GUI) icadından bir süre sonra ortaya çıkan ve onu grafik kullanıcı arayüzünden ayırt etmek için türetilen yeni bir terimdir. TUI'de bilgisayar grafikleri metin kipinde görüntülenir. Gelişmiş bir TUI, GUI'ler gibi tüm ekran alanını kullanabilir ve fare ve diğer girişleri kabul edebilir.

Cocoa, masaüstü işletim sistemi macOS için Apple'ın yerel nesne yönelimli programlama ve uygulama programlama arayüzüdür (API).

Carbon, Macintosh bilgisayarları çalıştıran işletim sistemi olan Mac OS X için Apple'ın C tabanlı uygulama programlama arayüzlerinden (API) biridir. Carbon, Mac OS 8 ve Mac OS 9 işletim sistemlerinde çalışan programlar için iyi bir geriye dönük uyumluluk sağlamıştır. Geliştiriciler, “klasik” Mac OS ve Macintosh işletim sistemleri yazılımlarını OS X platformuna taşımak için uygulamayı azami çaba harcayarak çok az bir çaba ile kullanabilirler. OpenStep'te ortaya çıkan tamamen farklı Cocoa API sistemidir.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.

3D grafikler, özellikle video oyunlarında o kadar popüler hale geldi ki, bilgisayar grafiği üretiminin tüm aşamalarında süreçleri kolaylaştırmak için özel API'ler oluşturuldu. Bu API'ler, programcıların donanıma soyut bir şekilde erişmeleri için bir yol sağlarken, herhangi bir belirli grafik kartının özel donanımından yararlanmaya devam ettikleri için bilgisayar grafik donanımı üreticileri için de hayati önemde olduklarını kanıtladılar. İlk 3D grafik çerçevesi, muhtemelen 1977'de ACM tarafından yayınlanan Core idi.

Standard kütüphane, bir programlama dilinin gerçeklenimiyle birlikte sunulan kütüphanedir. Standard kütüphanenin kuralları dili açıklayan belge ile belirtilir ancak dilin evriminin yönetim modeline göre, kütüphanenin bir kısmı veya tamamı dilin topluluğu tarafından da belirtilebilir.