Windows7+VS2010 configure OpenGL

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

Guess you like

Origin blog.csdn.net/liyuqian199695/article/details/67640967