27 Nisan 2009 Pazartesi

WGL Temelleri

Eğer daha önce windows üzerinde opengl ile ilgili bir uygulama geliştirdiyseniz, opengl ile ilgili kod yazmadan önce bir pencere yaratmışsınızdır.

Örnek ya da deneme uygulamaları için glut yeterli olsa da daha ileri projeleriniz için win32 api'sini kullanmanız gerekebilir (nehe'in opengl tutorial'larında bulabilirsiniz.). Eğer tutoriallarda pencere oluşturan kodlarda dikkat ederseniz WGL kullanıldığını görürsünüz. Peki nedir bu WGL?

WGL, windows'ta openGL kullanmak için yararlandığımız api'lere denir. Okunuşu "wiggle" olarak yapılır.

WGL, rendering context oluşturmak, seçmek, openGL uygulamalarında windows font desteğini kullanmak ve openGL extension'larını yüklemek için kullanılır.

Rendering context, openGL'in istediğimiz pencerede çalışması için gerekli tüm bilgiyi içerir. Aynı zamanda çalışan birden fazla openGL uygulamasının birbirini etkilemesiniz önler.

Birden fazla pencere yada viewport barındıran uygulamalarda için birden fazla rendering context oluşturulabilir.

WGL kullanmak için gereken fonksiyonlar;
- HGLRC wglCreateContext(HDC hDC) -> bir rendering context oluşturmanızı sağlar.
- BOOL wglDeleteContext(HGLRC hRC) -> oluşturduğunuz rendering context'i kaldırır.
- BOOL wglMakeCurrent(HDC hDC, HGLRC hRC) -> eğer programda current rendering context belirtilmezse, çağırılan openGL fonksiyonları hiçbir işlem yapmaz. Çünkü rendering context, openGL'in çalışması için gerekli tüm bilgileri içermektedir. wglMakeCurrent(hDC, NULL) fonksiyonunu çağırırsak, current rendering context'imizi null'a eşitleyip,kullanılan rendering context'imizi serbest bırakmış oluruz.

Hiç yorum yok:

Yorum Gönder