生活随笔
收集整理的這篇文章主要介紹了
OpenGL样板程序,会转动的正方形
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一個OpenGL樣板程序,環境為VS2010
// Test_OpenGL.cpp : 定義控制臺應用程序的入口點。
///** 1、OpenGL工具函數庫(GLU),GLU函數實用glu前綴** 2、窗口系統,以支持OpenGL渲染,對于X窗口系統是GLX函數,以glX開頭,* 對于Windows而言是是WGL函數庫,使用wgl前綴* 對于Mac OS系統而言AGL(前綴agl)、CGL(前綴cgl)和Cocoa(NSOpenGL類)** 3、OpenGL實用工具庫(Open Utility Toolkit,GLUT),使用glut前綴**/#include "stdafx.h"
#include <Windows.h>
#include <GL/glut.h>static GLfloat spin = 0.0;
static GLfloat clr_array[]={1.0, 1.23, 0.20};void init()
{glClearColor(0.0, 0.0, 0.0, 0.0);glShadeModel(GL_FLAT);
}void display(void)
{glClear(GL_COLOR_BUFFER_BIT);glPushMatrix();glRotatef(spin,0.0, 0.0, 1.0);glColor3fv(clr_array);glRectf(-25.0f, -25.0f, 25.0f, 25.0f); //畫矩形glPopMatrix();glutSwapBuffers();}void spinDisplay()
{spin += 2.0;if(spin > 360.0f){spin = spin - 360.0f;}glutPostRedisplay();}void reshape(int w, int h)
{glViewport(0, 0, (GLsizei)w, (GLsizei)h);glMatrixMode(GL_PROJECTION);glLoadIdentity();glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);glMatrixMode(GL_MODELVIEW);
}void mouse(int button, int state, int x, int y)
{switch(button){case GLUT_LEFT_BUTTON:if (state == GLUT_DOWN){glutIdleFunc(spinDisplay);}break;case GLUT_RIGHT_BUTTON:if (state == GLUT_DOWN){glutIdleFunc(NULL);}break;default:break;}}
/***********************************************************************/
/* 第一個OpenGL程序, 動畫=重繪+交換 */
/***********************************************************************/
int main(int argc, char* argv[])
{/*初始化*/glutInit(&argc, argv);glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);glutInitWindowPosition(100, 100);glutInitWindowSize(250, 250);glutCreateWindow(argv[0]);init();/*畫圖*/glutDisplayFunc(display);glutReshapeFunc(reshape);glutMouseFunc(mouse);glutMainLoop();return 0;
}
總結
以上是生活随笔為你收集整理的OpenGL样板程序,会转动的正方形的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。