// opengltest.cpp : 定义控制台应用程序的入口点。
// NOTES:
// 1. RGBA 和 索引图 ;选择颜色: glIndexi(GLint c);
//
#include "stdafx.h"
#include <GL/glut.h>
#include <iostream>
//void myDisplay(void)
//{
// //剔除正面示例
// glClearColor(1.0f, 0.0f, 0.0f, 0.0f); // 设置“空”是什么颜色
// glClear(GL_COLOR_BUFFER_BIT); // 清空屏幕
//
// glBegin(GL_POLYGON);
// glVertex2f(0,0);
// glVertex2f(-0.5,0);
// glVertex2f(-0.5,-0.5);
// glVertex2f(0,-0.5);
// glEnd();
//
// glFlush();
//}
#include <math.h>
const GLdouble Pi = 3.1415926536;
void myDisplay(void)
{
int i;
// glShadeModel(GL_FLAT); // 单一色模式
glShadeModel(GL_SMOOTH); // 平滑色模式(default)
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_TRIANGLE_FAN);
glColor3f(1.0f, 1.0f, 1.0f);
glVertex2f(0.0f, 0.0f);
for(i=0; i<=8; ++i)
{
glColor3f(i&0x04, i&0x02, i&0x01);
glVertex2f(cos(i*Pi/4), sin(i*Pi/4));
}
glEnd();
glFlush();
}
int main(int argc, char* argv[])
{
glutInit(&argc, argv); // glutInit,对GLUT进行初始化,这个函数必须在其它的GLUT使用之前调用一次。其格式比较死板,一般照抄这句glutInit(&argc, argv)就可以了。
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); // glutInitDisplayMode,设置显示方式,其中GLUT_RGB表示使用RGB颜色,与之对应的还有GLUT_INDEX(表示使用索引颜色)。
// GLUT_SINGLE表示使用单缓冲,与之对应的还有GLUT_DOUBLE(使用双缓冲)
glutInitWindowPosition(100, 100); // 设置窗口在屏幕中的位置。
glutInitWindowSize(400, 400); // 设置窗口的大小
glutCreateWindow("第一个OpenGL程序");
glutDisplayFunc(&myDisplay); //
glutMainLoop(); // 进行一个消息循环。(这个可能初学者也不太明白,现在只需要知道这个函数可以显示窗口,并且等待窗口关闭后才会返回,这就足够了。)
std::cout<<"END!"<<std::endl;
return 0;
}