28 Nisan 2009 Salı

OpenGL'de Hataları Bulmak


OpenGL ile yazdığınız bir programı çalıştırıken beklenmedik sonuçlar alıyorsanız, büyük ihtimalle kodunuzda hata vardır.

Yanlış zamanda ya da yanlış sırada çağırılan openGL fonksiyonları derleme zamanında herhangi bir hata vermediği gibi çalışma anında da herhangi bir mesaj vermez, siz istemedikçe.

Peki bu hataları nasıl görüntüleyebiliriz ? Bunun için openGL'in içinde glGetError() isimli bir fonksiyon bulunmakta.

- GLenum glGetError();

Bu fonksiyonu ilk çağırdığınızda, programın başlangıcından itibaren oluşan ilk hatayı döndürür. Daha sonraki çağırışlarınızda ise bir önceki çağrılmadan sonraki hatayı döndürür.
  • GL_NO_ERROR -> Herhangi bir hata yok ise döndürülecek olan değerdir.
  • GL_INVALID_ENUM -> Eğer bir fonksiyonun kabul edemeyeceği bir enum değeri parametre olarak verildiyse, bu hata mesajı oluşturulur.
  • GL_INVALID_VALUE -> Belirtilen aralık dışındaki sayısal bir değer parametre olarak verilirse, bu hata mesajı oluşturulur.
  • GL_INVALID_OPERATION -> Fonksiyonlara verilen parametreler beraber çalışamıyorsa, bu hata mesajı oluşturulur.
  • GL_STACK_OVERFLOW -> OpenGL'deki stacklerin(yığın) alabileceğinden daha fazla değer verilirse, bu hata mesajı oluşturulur.
  • GL_STACK_UNDERFLOW -> Genel olarak glPopMatrix fonksiyonunun glPushMatrix den fazla çağırılmasıyla oluşur. Yani matris yığınlarından, yığında olduğundan fazla matris çıkarılmaya çalışılırsa, bu hata mesajı oluşur.
  • GL_OUT_OF_MEMORY -> Yapılan işlem sistemin hafızasının bitmesine neden oluyorsa, bu hata mesajı oluşturulur.

Hiç yorum yok:

Yorum Gönder