我的第一個OpenGL 程序


//

//  main.c

//  opengl

//

//  Created bych_soft on 12-1-11.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

#include<stdio.h>

#include<stdlib.h>

#include<GLUT/glut.h>

//#include "GL/glut.h"

// #include<GL/glut.h>


void display()

{

   glClear(GL_COLOR_BUFFER_BIT); // 清屏

    glColor4f(0.01.00.00.5);// 繪製矩形

    glRectf(0.10.10.60.6);

    glColor4f(1.01.00.00.7);// 繪製矩形

    glRectf(0.40.30.90.8);

   glFlush(); // 強制繪圖完成

}

void init()

{

    glEnable (GL_BLEND);    // 啓用融合

   glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);//產生融合因子

   glShadeModel (GL_FLAT);// 設置平面明暗處理 

    glClearColor (0.00.00.00.0);// 清屏

}


void reshape (int w,int h)

{

    glViewport (00, (GLsizei) w, (GLsizei) h);

   glMatrixMode (GL_PROJECTION);

   glLoadIdentity();

    if (w <= h)

        glOrtho (-1.51.5, -1.5*(GLfloat)h/(GLfloat)w,

                 1.5*(GLfloat)h/(GLfloat)w, -10.0,10.0);

    else

        glOrtho (-1.5*(GLfloat)w/(GLfloat)h,

                 1.5*(GLfloat)w/(GLfloat)h, -1.5,1.5, -10.0,10.0);

   glMatrixMode(GL_MODELVIEW);

   glLoadIdentity();

}


void keyboard(unsignedchar key, int x,int y)

{

    switch (key) {

        case 27:

            exit(0);

            break;

    }

}


int main(int argc,char** argv)

{

    glutInit(&argc, argv);

   glutInitDisplayMode (GLUT_SINGLE |GLUT_RGB | GLUT_DEPTH);

   glutInitWindowSize (500,500); 

   glutInitWindowPosition (100,100);

   glutCreateWindow (argv[0]);

    init ();

   glutDisplayFunc(display); 

   glutReshapeFunc(reshape);

   glutKeyboardFunc(keyboard);

   glutMainLoop();

    return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章