Windows7+VS2010 configure OpenGL
1、OpenGL
OpenGL (Open Graphics Library) refers to a professional graphics program interface that defines a cross-programming language, cross-platform programming interface specification. It is used for three-dimensional images (two-dimensional is also possible), is a powerful, easy-to-call underlying graphics library. OpenGL is the most widely accepted 2D/3D graphics API in the industry.
2. Download GLUT
Download URL: https://www.opengl.org/resources/
https://www.opengl.org/resources/libraries/
The source code of GLUT3.7 can be downloaded here.
Website: http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip
Here is the link library
3. File configuration
(1) glut.h
copies the glut.h header file to the C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\gl directory.
(2) glut.dll, glut32.dll
will glut.dll, glut32.dll two dll copied to the C: \ Windows \ System32 directory
(3) glut.lib, glut32.lib the glut.lib and two glut32.lib The library is copied to the VS2010 installation directory. My VS2010 installation directory is: D:\Program File\VS2010\VC\lib. Copy these two libraries to this directory. 4. Configuration in VS2010
(1) Create a new VC empty project, and then add a CPP source file.
(2) Configure through the property manager.
(3) Include catalog and library catalog
The directory here is the file directory of the previous file copy.
At this point, the configuration has been completed.
5. Example test
Add the following code to the previous cpp file:
#include<windows.h> #include<glut.h> #include<GLU.h> #include<GL.h> // Initial square position and size GLfloat x = 0.0f; GLfloat y = 0.0f; GLfloat rsize = 25; // Step size in x and y directions // (number of pixels to move each time) GLfloat xstep = 1.0f; GLfloat ystep = 1.0f; // Keep track of windows changing width and height GLfloat windowWidth; GLfloat windowHeight; /// // Called to draw scene void RenderScene(void) { // Clear the window with current clearing color glClear(GL_COLOR_BUFFER_BIT); // Set current drawing color to red // R G B glColor3f(1.0f, 0.0f, 0.0f); // Draw a filled rectangle with current color glRectf(x, y, x + rsize, y - rsize); // Flush drawing commands and swap glutSwapBuffers(); } /// // Called by GLUT library when idle (window not being // resized or moved) void TimerFunction(int value) { // Reverse direction when you reach left or right edge if(x > windowWidth-rsize || x < -windowWidth) xstep = -xstep; // Reverse direction when you reach top or bottom edge if(y > windowHeight || y < -windowHeight + rsize) ystep = -ystep; // Actually move the square x += xstep; y += ystep; // Check bounds. This is in case the window is made // smaller while the rectangle is bouncing and the // rectangle suddenly finds itself outside the new // clipping volume if(x > (windowWidth-rsize + xstep)) x = windowWidth-rsize-1; else if(x < -(windowWidth + xstep)) x = -windowWidth -1; if(y > (windowHeight + ystep)) y = windowHeight-1; else if(y < -(windowHeight - rsize + ystep)) y = -windowHeight + rsize - 1; // Redraw the scene with new coordinates glutPostRedisplay(); glutTimerFunc(33,TimerFunction, 1); } /// // Setup the rendering state void SetupRC(void) { // Set clear color to blue glClearColor(0.0f, 0.0f, 1.0f, 1.0f); } /// // Called by GLUT library when the window has chanaged size void ChangeSize(int w, int h) { GLfloat aspectRatio; // Prevent a divide by zero if(h == 0) h = 1; // Set Viewport to window dimensions glViewport(0, 0, w, h); // Reset coordinate system glMatrixMode(GL_PROJECTION); glLoadIdentity(); // Establish clipping volume (left, right, bottom, top, near, far) aspectRatio = (GLfloat)w / (GLfloat)h; if (w <= h) { windowWidth = 100; windowHeight = 100 / aspectRatio; glOrtho (-100.0, 100.0, -windowHeight, windowHeight, 1.0, -1.0); } else { windowWidth = 100 * aspectRatio; windowHeight = 100; glOrtho (-windowWidth, windowWidth, -100.0, 100.0, 1.0, -1.0); } glMatrixMode(GL_MODELVIEW); glLoadIdentity(); } /// // Main program entry point int main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(800,600); glutCreateWindow("Bounce"); glutDisplayFunc(RenderScene); glutReshapeFunc(ChangeSize); glutTimerFunc(33, TimerFunction, 1); SetupRC(); glutMainLoop(); return 0; }
运行结果
参考博客:http://www.cnblogs.com/Linkliu/articles/leanC.html