環境的搭建不說了,網上很多。我本人是用GCC,沒有用VC完全是因為不熟悉微軟的東西,以及不想太過依賴微軟(就算依賴至少也得知道到底依賴了他哪些東西)。
其中看到的OpenGL的函數,
以gl開頭的函數都是OpenGL的標準函數;
以glu開頭的函數都是GLU實用庫所提供的函數;
以glut開頭的函數都是GLUT工具包所提供的函數;
函數庫的內容詳見
OpenGL開發庫的詳細介紹。
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>

void
myDisplay(void)


{
// 清除, GL_COLOR_BUFFER_BIT表示清除顏色
glClear(GL_COLOR_BUFFER_BIT);

// 畫一個矩形, 四個參數分別為左上角點的x, y坐標, 右下角點的x, y坐標
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);

// 保證前面的OpenGL命令立即執行(而不是讓它們在緩沖區中等待), 其作用跟fflush(stdout)類似
glFlush();
}

// 程序入口
int
main(int argc, char *argv[])


{
// 對GLUT進行初始化
glutInit(&argc, argv);

// 設置顯示方式
// GLUT_RGB表示使用RGB顏色, GLUT_INDEX表示使用索引顏色
// GLUT_SINGLE表示使用單緩沖, GLUT_DOUBLE表示使用雙緩沖
glutInitDisplayMode( GLUT_RGB | GLUT_SINGLE );

// 設置窗口在屏幕中的位置
glutInitWindowPosition(100, 100);

// 設置窗口的大小
glutInitWindowSize(400, 400);

// 根據前面設置的信息創建窗口, 參數將被作為窗口的標題
// 此時并不馬上顯示到屏幕上, 等到調用glutMainLoop后才能看到窗口
glutCreateWindow("My first OpenGL Program, not \"Hello World\", - -");

// 設置一個函數, 需要進行畫圖時, 這個函數就會被調用
glutDisplayFunc(&myDisplay);

// 進行一個消息循環
glutMainLoop();

return 0;
}


posted on 2010-03-29 22:05
RayRiver 閱讀(400)
評論(0) 編輯 收藏 引用 所屬分類:
OpenGL