2012-02-02 28 views
6

Mevcut Xcode 4 sürümünü yeni kurdum ve iOS için OpenGL Şablonunda da kullanılan yeni "GLKit" API'sini gerçekleştirdim. Bu yüzden, iOS, Mac & Windows için bir çapraz-plattform oyun geliştirmek istiyorum. GLKit, taşınabilirlik açısından geriye doğru bir adım gibi görünüyor, ancak GLKit Özellikleri (özel olarak asenkron doku yüklemesi gibi) büyük avantajlar ...GLKit ile çapraz platform geliştirme?

GLKit ile çapraz platforform oyunu nasıl geliştirebilirim? Herhangi bir grapics kodunu iki kez yazmam gerekecek, değil mi? Veya pencereler için bir GLKit uygulaması gibi bir şey var mı?

Herhangi bir fikir, geçici çözüm, kod tasarım önerileri (GLKit Kodunun diğer bileşenlerden nasıl ayrılacağı?) Hoş geldiniz - teşekkürler!

cevap

5

GLKit'in GLKit olmayan kodla değiştirilemediği herhangi bir şey düşünemiyorum. Bazı OpenGL ES 2.0 görevlerini sizden uzaklaştırarak daha basit hale getirebilir, ancak benzersiz bir şey yapmaz. Başka bir yerde çoğalamayacağınız bir şeye (en çok uğraştığım şeyden) sahip olmanın en hızlısı, sağladığı hızlandırılmış matris ve vektör matematik işlevleridir, ancak bunlar bile küçük bir Accelerate veya NEON koduyla değiştirilebilir.

GLKit'i uygulamalarımda kullanmak isterim, ancak yine de iOS 4.2'yi GLKit mevcut olmayanlarla destekliyorum. Şu anda yapmaktan engellediğim hiçbir şey yok çünkü GLKit kullanamıyorum, sadece görünüm güncellemeleri, doku yüklemeleri, matris matematiği gibi şeyleri halletmek için biraz daha fazla kod yazmam gerekiyor. Orada çok fazla belge ve örnek var. Bu işlemler için, bunları uygulamak söz konusu olduğunda kendi başınıza olma konusunda endişelenmenize gerek yok.

Kodunuzu Mac ile ve özellikle Windows ile çapraz platform haline getirmeye çalışırken GLKit'ten çok daha büyük sorunlara sahip olacaksınız. Masaüstü OpenGL ve OpenGL ES'nin uygulamalarında bazı farklılıkları vardır ve bir işlevi veya bir diğeri için yerleşik değişkenin yerini alacak yerlerin farkında olmanız gerekir. Mac'te CAOpenGLLayer ve NSOpenGLView da iOS'ta CAEAGLLayer'den farklıdır ve AppKit genel olarak UIKit'ten farklı bir hayvandır.

Windows, Kakao çerçevelerinden herhangi birini kullanamayacağınız ve büyük olasılıkla hiç bir Objective-C kullanamayacağınız için, desteklenmesi daha da zor olacaktır. Bu, herhangi bir OpenGL/OpenGL ES farkından çok daha fazla zaman alacaktır.

İlgili konular