OpenGL 編程(1)

OpenGL 編程一

GLUT工具庫使用

GLUT 經過下面幾個函數執行初始化一個窗口,並渲染。編程

  • GLUT 初始化函數,並處理全部命令行參數, 應該在其餘函數調用以前調用。
gluInit (int *argc, char **argv)
  • 設置模式:RGBA模式, 顏色索引模式, 同時也能夠設置單雙緩衝,如設置一個所緩衝:glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH)
glutInitDisplayMode(usigned int mode)
  • 設置屏幕大小和位置
glutInitWindowSize(int width, int size)
glutInitWindowPosition(int x, int y)
  • 聲明使用OpenGL的版本
glutInitContextVersion(int mojorVersion, int minorVersion)
  • 聲明使用OpenGL渲染環境的類型
glutInitContextFlags(int flags)
  • 建立窗口
glutCreateWindow(char *string)
  • 顯示回調函數,每當GLUT肯定一個窗口的內容須要從新顯示時,經過glutDisplayFunc註冊那個回調函數會被執行。
glutDisplayFunc(void (*func)(void))

實例:

#include <GL/freeglut.h>
#include <GL/gl.h>
void renderFunction()
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0);
    glBegin(GL_POLYGON);
        glVertex3f(0.25, 0.25, 0.0);
        glVertex3f(0.75, 0.25, 0.0);
        glVertex3f(0.75, 0.75, 0.0);
        glVertex3f(0.25, 0.75, 0.0);
    glEnd();
    glFlush();
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutInitWindowSize(500,500);
    glutInitWindowPosition(100,100);
    glutCreateWindow("OpenGL - First window demo");
    glutDisplayFunc(renderFunction);
    glutMainLoop();    
    return 0;
}
//編譯命令:
// gcc gl_test_0.c -o gl_test_0 -lGL -lGLU -lglut
相關文章
相關標籤/搜索