16 Nisan 2014 Çarşamba

Öznitelikler(glPushAttrib, glPopAttrib)

Öznitelikler(glPushAttrib, glPopAttrib)


#include<GL/glut.h>

void pencere(void)

{



glClearColor(1.0,1.0,1.0,1.0);

glClear(GL_COLOR_BUFFER_BIT);

glLineWidth(1);//çizgi kalınlıgı

glPushAttrib (GL_LINE_BIT);

/*glPushAttrib fonsiyonundaki parametrede yıgımlarda

saklanacak tipi belirlemektedir şuan LINE glLineWidth parametresinde

belilenen degerden başba bir deger almamıştır,alınan degerler yıgında saklanacaktır

*/

glLineWidth (5);// glLineWidth degeri degiştiriliyor

glLineStipple (3, 0xff);// çizgi kesik kesik hale getiriliyor

glEnable(GL_LINE_STIPPLE);//glLineStipple aktif

glBegin (GL_LINES);//çizgi çiziliyor

glColor3f(1.0,0.0,0.0);// iki çizim arasındaki fark anlaşılsın diye ilk renk kırmızı

glVertex2f (0.4,0.4);

glVertex2f (-0.4,0.4);

glVertex2f (-0.6,-0.1);

glVertex2f (-0.2,-0.4);

glEnd ();

glPopAttrib ();

/*glPushAttrib teki degerler geri cagrılıyor ,glPopAttrib ten

sonraki kodlara yukarıdaki degerler artık etki etmeyecektir çünki,

glPushAttrib ve glPopAttrib arasında belirlenen tipe göre bilgiler

yıgınlarda saklanır ve glPopAttrib ten sonra serbest bırakılır*/

glColor3f(0.0,0.0,1.0);//ikinci çizim belirginligi için mavi renk tanımlanıyor

// glPushAttrib e kadar belirlenen özellikler etkindir.

glBegin (GL_LINES);

glVertex2f (0.3,0.3);

glVertex2f (-0.3,0.3);

glVertex2f (-0.5,-0.2);

glVertex2f (-0.1,-0.3);

glEnd ();

glFlush();

}





int main(int argcp,char **argcv)

{

glutInit(&argcp,argcv);

glutInitDisplayMode(GLUT_SINGLE);

glutInitWindowPosition(100, 200);

glutInitWindowSize(300,200);

glutCreateWindow("OpenGLTurk");

glutDisplayFunc(pencere);

glutMainLoop();

return 0;

}









Hiç yorum yok:

Yorum Gönder