Ubuntu, Anjuta ve OpenGL

Daha önce Windows ortamında OpenGL kullanımını anlatmıştım. Fakat yaklaşık bir yıldır tamamen Linux kullandığım için OpenGL kullanma ihtiyacı doğduğunda aynı şekilde tercih ettiğim Linux C geliştirme ortamı olan Anjuta için de ayarlama yapmam gerekti.

Aşağıdaki aşamaları izleyerek OpenGL örnek kodumu çalıştırmayı başardım:

  1. İlk olarak OpenGL geliştirmesi yapabilmek için gereken paketi (freeglut3-dev) Synaptic paket yöneticisinden (veya sudo apt-get install freeglut3-dev komutuyla) kurmak gerekiyor. OpenGL geliştirmemiz için gereken başlık ve kütüphane dosyalarını bu paket kuruyor.
  2. Daha sonra Anjuta'yı açıp örnek bir kod yazıyoruz (Yazının sonunda bu kodu bulabilirsiniz)
  3. Anjuta'da derleme işini yapıyoruz (F9 tuşu veya menüden Build->Compile) ve derlemenin başarıyla tamamlandığını görüyoruz.)
  4. Çalıştırabilmek için önce Build komutunu (F11 veya menüden Build->Build) kullanmalıyız. Büyük ihtimalle hata verecektir. Çünkü uygun kütüphane ayarlarını yapmamız gerekiyor.Menüden Settings->Compiler and linker options açarak Libraries kısmına sırasıyla glut, GL ve GLU kütüphaneleri yukarıdaki metin kutusuna yazarak ve Add düğmesine basarak ekliyoruz. Şimdi Build dediğimizde hatasız çalışacaktır.
  5. Çalıştır dediğimizde (F3 veya Build->Execute) mavi üçgen içeren ufak bir pencere görmelisiniz (Bakınız aşağıdaki resimdeki ufak pencere).
Anjuta kullanmayarak komut satırından dosyanızın bulunduğu klasörde aşağıdaki resimdeki aşamaları izleyerek derleme ve çalıştırma işlemlerini yapabilirsiniz.(Kaynak kodu masaüstünde deneme klasörü altında Main.c dosyası içerisine yazdığınızı farz ediyorum)
Yukarıdaki penceredeki üçgeni görüyorsanız tebrikler, Linux içerisinde OpenGL kullanmaya başlayabilirsiniz.

Kaynak Kod:

#include <GL/gl.h>
#include <GL/glut.h>
void init(void);
void display(void);

int main(int argc, char *argv[])
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,200);
glutCreateWindow("Ýlk OpenGL/GLUT Programým");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}

void init(void)
{
glClearColor(0.0f ,0.0f ,0.0f ,0.0f);
glColor3f(0.0f,0.0f,1.0f);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f,(GLfloat)250/(GLfloat)250,0.1f,100.0f);
}

void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLES);
glVertex3f( 0.0f, 1.0f, -10.0f);
glVertex3f(-1.0f,-1.0f, -10.0f);
glVertex3f( 1.0f,-1.0f, -10.0f);
glEnd();
glutSwapBuffers();
}


Bağlantılar: http://www.cs.mcgill.ca/~msuder/557/tutorial/tutorial.html

Hiç yorum yok: