C programlama dili ile OpenGL programlama öğrenmek isteyen arkadaşlara kısıtlıda olsa burada bazı fonksiyonların ne işe yaradığını açıklayacağım.Benden okadar büyük bir randıman beklemeyin çünkü ben de deneme yanılma yöntemi ile ve çok az da anlasam ingilizce kaynaklardan öğrendim.Bu yüzden sadece kendi bildiklerimi anlatacağım.Fazla zamanım olmadığı için fonksiyon fonksiyon işleyeceğiz.
Eveeeet..
Gel gelelim OpenGL nedir?Ne işe yarar?Kim çıkarmış?Niye çıkarmış?
Bu soruları google'dan aratın,yormayın beni.
Önce bir başlangıç yapmak lazım.
Her okuduğum yazıda ilk iş boş bir pencere oluşturuyolardı.Biz de böyle yapacağız.
Gördüğünüz gibi boş bir pencere oluşturduk.
Şimdi bu pencereyi daha düşük seviyeli de hazırlayabilirdik.Lakin Win32 programlamış olsaydık.glut.h kütüphanesi bizim için alışılmış kalıp işleri yapıyor.Bu da daha anlaşılır ve küçük kodlar yazarak büyük işler yapmamızı sağlıyor.Bu yüzden glut.h kütüphanesini indirin ve kurun.(Eğer devc++ kullanıyorsanız buradan indirebilirsiniz).
Fonksiyonları açıklayalım.
int main(int argc, char *argv[]);
Bu bir kalıptır.Değiştiremessiniz.Programın başladığı yeri bu şekilde gösterirsiniz.İnt argc ve,char pointer argv bizim uşağımız.Veriler bu argümanlarla gönderilip,alınıyor.
glutInit(&argc, argv);
glut kütüphanesinde işlenmesi için bu şekilde gönderilir.
glutInitWindowSize(400,400);
Kullanım bu şekildedir.Argümanları int cinsinden,geri dönüş değeri ise yoktur(void).
void glutInitWindowSize(int x,int y);
glutCreateWindow("Boş Pencere");
int glutCreateWindow("string");
String cinsinden argüman alır ve int cinsinden pencere numarası ile döner.
Bu fonksiyon ile penceremize isim veririz ve verdiğimiz isimli bir pencere oluştururuz.
glutDisplayFunc(ciz);
void glutDisplayFunc(void fonksiyonunadı(void));
Argümanı fonksiyonun adıdır.Argüman olarak atanacak fonksiyonun kullanım şekli ise void fonksiyonunadı(void) şeklindedir.
Bütün cizim işleri burada yapılır ve ekrana basılmak üzere,ilgili fonksiyonla gönderilir.
glutMainLoop();
İşte asıl ekrana basma işi bu fonksiyon sayesinde gerçekleşir.
*Gelecek yazıda 2 boyutlu ve dop dolu bir pencere yapacağız
Eveeeet..
Gel gelelim OpenGL nedir?Ne işe yarar?Kim çıkarmış?Niye çıkarmış?
Bu soruları google'dan aratın,yormayın beni.
Önce bir başlangıç yapmak lazım.
Her okuduğum yazıda ilk iş boş bir pencere oluşturuyolardı.Biz de böyle yapacağız.
PHP:
#include <GL/glut.h>// bu kütüphaneye alışın;)
void ciz(void)//meşhur "ciz" fonksiyonumuz
{
glClear(GL_COLOR_BUFFER_BIT);//renk tamponu aktif
}
int main(int argc, char *argv[])//main fonksiyonun sabit parametreleri ve programın başı
{
glutInit(&argc, argv);//glut'a initalize edilecek değerler
glutInitWindowSize(400,400);//pencere boyutları
glutCreateWindow("Boş Pencere");//oluşturulan pencere,string cinsinden pencerenin adı
glutDisplayFunc(ciz);//çizimin yapılacağı ön tampon("ciz" isimli fonksiyonda gerçekleşecek)
glutMainLoop();//işte ekrana basım yapan fonksiyonumuz
return 0;//program güven ile bitti(hayırlı olsun;))
}
Gördüğünüz gibi boş bir pencere oluşturduk.
Şimdi bu pencereyi daha düşük seviyeli de hazırlayabilirdik.Lakin Win32 programlamış olsaydık.glut.h kütüphanesi bizim için alışılmış kalıp işleri yapıyor.Bu da daha anlaşılır ve küçük kodlar yazarak büyük işler yapmamızı sağlıyor.Bu yüzden glut.h kütüphanesini indirin ve kurun.(Eğer devc++ kullanıyorsanız buradan indirebilirsiniz).
Fonksiyonları açıklayalım.
int main(int argc, char *argv[]);
Bu bir kalıptır.Değiştiremessiniz.Programın başladığı yeri bu şekilde gösterirsiniz.İnt argc ve,char pointer argv bizim uşağımız.Veriler bu argümanlarla gönderilip,alınıyor.
glutInit(&argc, argv);
glut kütüphanesinde işlenmesi için bu şekilde gönderilir.
glutInitWindowSize(400,400);
Kullanım bu şekildedir.Argümanları int cinsinden,geri dönüş değeri ise yoktur(void).
void glutInitWindowSize(int x,int y);
glutCreateWindow("Boş Pencere");
int glutCreateWindow("string");
String cinsinden argüman alır ve int cinsinden pencere numarası ile döner.
Bu fonksiyon ile penceremize isim veririz ve verdiğimiz isimli bir pencere oluştururuz.
glutDisplayFunc(ciz);
void glutDisplayFunc(void fonksiyonunadı(void));
Argümanı fonksiyonun adıdır.Argüman olarak atanacak fonksiyonun kullanım şekli ise void fonksiyonunadı(void) şeklindedir.
Bütün cizim işleri burada yapılır ve ekrana basılmak üzere,ilgili fonksiyonla gönderilir.
glutMainLoop();
İşte asıl ekrana basma işi bu fonksiyon sayesinde gerçekleşir.
*Gelecek yazıda 2 boyutlu ve dop dolu bir pencere yapacağız