配置OpenGL(Windows)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34347375/article/details/83211114

OpenGL(全写Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。这里将介绍如何在windows平台下,配置并开始第一个OpenGL程序。

目录

下载

使用OpenGL,我们需要下载它库文件,包括GLUT,freeGLUT,GLEW,GLTools。

注:freeGLUT其实在慢慢取代GLUT的地位;GLTools库是基于GLEW库的。

我这里提供所有的库文件,并且已经整理到了一起,大家可以直接下载。
下载地址:https://download.csdn.net/download/qq_34347375/10732637

配置

VS2015中配置OpenGL

我的VS2015安装到了I盘

1.将压缩包解压,你可以看到三个文件夹,dll,include, lib;

image_1cq5rac1isnu1oni1jst1a2ifm79.png-38.1kB

2.将include 文件夹中的所有文件复制到I:\Microsoft Visual Studio 14.0\VC\include中;

image_1cq5rfar812c1ltt1a6hccl10752m.png-57.6kB
image_1cq5rdhku1cr0p9s6911rg7vip29.png-66.8kB

扫描二维码关注公众号,回复: 3894645 查看本文章

3.将dll文件夹中的所有文件复制到I:\Microsoft Visual Studio 14.0\VC\binC:\Windows\SysWOW64C:\Windows\System32中;

image_1cq5rgacn12a56ftvjp1esi19s643.png-45.5kB
image_1cq5riaekvl1r6u1gn7s6qjqb4g.png-67.7kB

4.将lib文件夹中的所有文件复制到I:\Microsoft Visual Studio 14.0\VC\lib中;

image_1cq5riqbo6tkb1m1imi1p6if3m4t.png-42kB
image_1cq5rjh3f16qg1dpdhp1p0h1d1o5a.png-65.2kB

5.在OpenGL项目中添加附加依赖项;
在项目的附加依赖项中添加 gltools.lib opengl32.lib glew32s.lib

image_1cq5s20lslod12j19cs655a749.png-125.4kB

现在用程序测试一下:
源码如下:

#include <GLTools.h>
#include <GLShaderManager.h>
#include <GL/glut.h>
GLBatch triangleBatch;
GLShaderManager shaderManager;

void ChangeSize(int w, int h)
{
	glViewport(0, 0, w, h);
}

void SetupRC()
{
	glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
	shaderManager.InitializeStockShaders();
	GLfloat vVerts[] = {
		-0.5f,0.0f,0.0f,
		0.5f,0.0f,0.0f,
		0.0f,0.5f,0.0f };
	triangleBatch.Begin(GL_TRIANGLES, 3);
	triangleBatch.CopyVertexData3f(vVerts);
	triangleBatch.End();
}

void RenderScne(void)
{
	glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
	GLfloat VRed[] = { 1.0f,0.0f,0.0f,1.0f };
	shaderManager.UseStockShader(GLT_SHADER_IDENTITY, VRed);
	triangleBatch.Draw();
	glutSwapBuffers();
}

int main(int argc, char *argv[])
{
	gltSetWorkingDirectory(argv[0]);
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH | GLUT_STENCIL);
	glutInitWindowSize(800, 600);
	glutCreateWindow("Triangle");
	glutReshapeFunc(ChangeSize);
	glutDisplayFunc(RenderScne);

	GLenum err = glewInit();
	if (GLEW_OK != err) {
		fprintf(stderr, "GLEW Error:%s\n", glewGetErrorString(err));
		return 1;
	}
	SetupRC();

	glutMainLoop();
	return 0;
}

效果如下:

image_1cq5s5g73snm1kft122mklpho016.png-80.5kB

猜你喜欢

转载自blog.csdn.net/qq_34347375/article/details/83211114
今日推荐