example.cpp
来自「vc150例源码」· C++ 代码 · 共 90 行
CPP
90 行
#include "windows.h"
#include "gl/gl.h"
#include "gl/glu.h"
#include "gl/glaux.h"
#include "conio.h"
void myinit(void);
void CALLBACK display(void);
void CALLBACK reshape(GLsizei w,GLsizei h);
static double zAngle=0.0;
void CALLBACK stepDisplay(void)
{
//系统闲时的调用过程
zAngle=zAngle+1;
if(zAngle>360.0)
zAngle=0.0;
display();
}
void CALLBACK mousedown(AUX_EVENTREC * m)
{
auxIdleFunc(stepDisplay);
}
void CALLBACK mouseup(AUX_EVENTREC * m)
{
auxIdleFunc(0);
}
void myinit(void)
{
auxInitDisplayMode(AUX_SINGLE|AUX_RGBA);
auxInitPosition(0,0,200,200);
auxInitWindow("Example");
}
void CALLBACK reshape(GLsizei w,GLsizei h)
{
if (w>h)
glViewport(0,0,h,h);
else
glViewport(0,0,w,w);
}
void draw()
{
glBegin(GL_TRIANGLE_STRIP);
//画连续填充的多个三角
glColor3f(1.0,0.0,0.0);
glVertex3f(0.8,-0.5,0.0);
glColor3f(0.0,1.0,0.0);
glVertex3f(-0.8,-0.5,0.0);
glColor3f(0.0,0.0,1.0);
glVertex3f(0.0,0.8,0.8);
//第一个三角
glColor3f(0.0,1.0,1.0);
glVertex3f(0.6,0.8,-0.8);
//第二个三角
glColor3f(1.0,1.0,0.0);
glVertex3f(0.8,-0.5,0.0);
//第三个三角
glEnd();
glFlush();
}
void CALLBACK display(void)
{
glClearColor(255.0,255.0,255.0,0.0);
glClear(GL_COLOR_BUFFER_BIT);
glLoadIdentity();
glRotatef(zAngle,0.0,0.0,1.0);
draw();
}
void main(void)
{
myinit();
auxMouseFunc(AUX_LEFTBUTTON,AUX_MOUSEDOWN,mousedown);
auxMouseFunc(AUX_LEFTBUTTON,AUX_MOUSEUP,mouseup);
auxReshapeFunc(reshape);
auxMainLoop(display);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?