Her yerde çalışan, ancak kendimi çok fazla kısıtlamayan bazı opengl kodları yazmaya çalışıyorum.
Opengles2'yi sadece onu destekleyen aygıtlarda ve desteklenen yerlerde opengl core kullanmak istedim.OpenGL OpenGLES2 ile uyumluluk
Ayrıca, çalışma zamanında (kullanılabiliyorsa tabii ki) hangisini kullanacağımı seçmek istedim.
Sorularım şunlardır: Sonra OpenGL kütüphanesi ile sunulur sunulmaz her zaman kodumu bağlamak ve eğer
ya bir GLES2 veya GL çekirdek bağlamı oluşturmak, GLES2 bağlam GLESv2 kütüphanesinde tam olarak aynı davranacaktır? Bunun yansımaları ne olacak? Örneğin, GLESv2 BGRA doku formatlarını tanımlamıyor, bu yüzden hepsini RGBA'ya dönüştürmem gerekiyor. Bu bir zorluk değil, ama alternatifleri bilmekle ilgileniyorum.
Kitaplığı dinamik olarak yüklemeyi ve kullanılan tüm işlevler işaretleyicilerini yüklemeyi düşündüm, ancak bu daha kolay bir cevaba sahip olabilecek bir şey için çok büyük bir iş. Bu durumda, glext.h dosyasını dahil eder ve kullanılan işlevler için tüm işlev işaretleyicilerini bildirir ve bunları doldururdum. Burada sorun, glext'in herhangi bir veri türü tanımlamamasıdır (glenum, vb), bu yüzden her zaman gl.h. Her ikisini de dahil ederek, gl.h işlev bildirimini VE işlev işaretçisi bildirimi alıyorum, bu nedenle işlev işaretçileri için genel ad alanını kullanamadım ... Ve hatta bazı işlevler (glGetError gibi) görünmüyor onların işlev işaretçisi için ilişkili bir typedef sahip olmak.
GLEW hakkında biliyorum, ancak maalesef, çoğu linux dağıtımı hala GLES2 uyumlu olmayan bir GLEW sürümünü dağıtır (debian, sana bakıyorum). Sadece segfaultlar.
Bunu nasıl yaparsınız? Opengl işlevi bağlantı için başka herhangi bir yaklaşım?