准备尝试学一下OpenGL,以前浅尝则止的学过Gtk,感觉到了相似,但同事觉得OpenGL好像强大一些。学习是一件很有乐趣的东西,就所学所敲的代码做了一个笔记。
这篇博客很不错,我是照着这篇学习的。分享给一起学习的小伙伴:
#include "stdafx.h"
void myDisplay(void)
{
//glClear()表示清除 GL_COLOR_BUFFER_BIT表示清除颜色 -----还可以清除其他东西-----
glClear(GL_COLOR_BUFFER_BIT);
//画一个矩形 四个参数代表了对角线上的两个点的横、纵坐标
glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
//保证前面的OpenGL命令立即执行(而不是让他们在缓冲区中等待) 与fflush(stdout)作用类似
glFlush();
}
void myDisplay1(void)
{
//glBegin(GL_POINTS);
//glBegin(GL_LINES);
//glBegin(GL_LINE_STRIP);
//glBegin(GL_LINE_LOOP);
//glBegin(GL_TRIANGLES);
//glBegin(GL_TRIANGLE_STRIP);
glBegin(GL_TRIANGLE_FAN);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.5f, 0.0f);
glEnd();
}
int main(int argc, char *argv[])
{
//每次都照抄就好
glutInit(&argc, argv);
//设置显示方式 GLUT_RGB 用rgb的方式显示
//与GLUT_RGB对应的还有GLUT_INDEX---->索引颜色
//GLUT_SINGLE--->单缓冲 GLUT_DOUBLE多缓冲
glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
//位置
glutInitWindowPosition(100, 100);
//大小
glutInitWindowSize(400, 400);
//标题 -----窗口创建之后不立刻显示到屏幕上面,调用glutMainLoop()才能看到窗口-----
glutCreateWindow("第一个OpenGL程序");
//需要进行画图时,这个函数就会被调用
glutDisplayFunc(&myDisplay);
//进入一个消息循环
glutMainLoop();
return 0;
}
/*
函数释意:(功能相同 参数不同)
glVertex2d
glVertex2f
glVertex3f
glVertex3fv
数字代表参数的个数
字母表示参数的类型-------
s 16位整数
i 32
f 32浮点数
d 64
v 用指针的方式传递参数
-------
*/