windows配置opengles3开发环境https://dn-maxiang.qbox.me/res-min/themes/marxico.css’ rel=’stylesheet’>
使用VS配置opengl比较简单,VS自带VC环境,所以只需要下载opengl库和arm模拟器即可。同时下载了《opengles3.0编程指南》中的实例源码,作为运行样例。具体步骤如下:
libEGL.lib
和libGLESv2.lib
这两个lib文件,拷贝到VC的lib/x86文件夹下libEGL.dll
和libGLESv2.dll
俩个dll文件,拷贝到VC目录bin/Hostx86/x86文件夹下Brower Source
选择源码工程路径,Brower Build
选择编译的输出目录Configure
选择合适的VS版本Generate
会报错,原因是没有正确的指定EGL
和OPENGLES3
库路径,因此需要指定正确的EGL
和OPENGLES3
库路径EGL_LIBRARY
为VC目录中libEGL.lib
的位置OPENGLES3_LIBRARY
为VC目录下libGLESv2.lib
文件路径Generate
就能够在输出位置中获取到对应的VS工程Open Porject
,打开VS工程,将需要执行的工程设置为启动项,运行程序,即可看到窗口以及绘制的图形Common
目录下生成了Debug文件夹,拷贝Debug文件夹下的Common.lib文件到VC的lib/x86文件夹(和上文中libEDG.lib
两个库文件相同目录)下libEGL.lib;libGLESv2.lib;Common.lib;
上文介绍了使用VS配置Opengles环境的方式,虽然VS配置环境比较简单,但使用VS进行opengles开发有两个缺点:臃肿和智能提示不智能。同时本着一直以来对JetBrains的喜爱,决定使用CLion进行opengles开发。开发所使用的工具又可以分为两种:使用freeglut
和使用上文中的模拟器。以下两种方法都将进行配置
使用freeglut的配置方式,主要参考了该博文:https://blog.csdn.net/m0_37748310/article/details/80391026 特此感谢
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")
一定需要加上,虽然暂时不清楚作用
cmake_minimum_required(VERSION
3.9)
project(OpenGL_3)
set(CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -std=c++11 -D FREEGLUT_STATIC")
add_executable(OpenGL_3 glut.cpp )
target_link_libraries(OpenGL_3 freeglut_static opengl32 winmm gdi32 glu32.lib)
#include
#include
void ChangeSize(GLsizei w,GLsizei h){
if(w<
1) w=
1;
if(h<
1) h=
1;
printf(
"%d %d\n",w,h);
glViewport(
0,
0,w,h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
if(w<=h)
glOrtho(
-30.0,
30.0,
-30.0*(GLfloat)h/(GLfloat)w,
30.0*(GLfloat)h/(GLfloat)w,
-50.0,
50.0);
else
glOrtho(
-30.0*(GLfloat)w/(GLfloat)h,
30.0*(GLfloat)w/(GLfloat)h,
-30.0,
30.0,
-50.0,
50.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}
void DrawMyObjects() {
//画四边形
glBegin(GL_QUADS);
glColor3f(
0.7,
0.5,
0.2);
glVertex2f(
-7,
-3);
glVertex2f(
-5.5,
-1);
glVertex2f(
-1,
-0.5);
glVertex2f(
-1,
-4);
glColor3f(
0.5,
0.7,
0.2);
glVertex2f(
2,
-6.25);
glVertex2f(
2.5,
-1);
glVertex2f(
6.5,
1);
glVertex2f(
4.5,
-6.25);
glEnd();
}
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(
1.0,
1.0,
0.0);
DrawMyObjects();
glFlush();
}
int main(int argc, char *argv[]){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(
600,
600);
glutCreateWindow(
"My first");
glClearColor(
0.51,
0.51,
0.51,
0.5);
glutReshapeFunc(ChangeSize);
glutDisplayFunc(RenderScene);
glutMainLoop();
return
0;
}
该方法使用的方式基本与上文中使用VS配置opengles思路类似:
libEGL.lib
和libGLESv2.lib
这两个lib文件,用来提供EGL和opengles功能)libEGL.lib
和libGLESv2.lib
拷贝到minGW/lib目录下libEGL.dll
和libGLESv2.dll
拷贝到minGW/bin目录下Common.lib
文件,如果不想使用CMake和VS工具生成,还可以使用CLion运行一次源码后,在工程cmake-build-debug/Common
中找到libCommon.a
文件 Common.lib
或libCommon.a
文件拷贝至minGW/lib文件夹下参考链接:
https://blog.csdn.net/AvatarForTest/article/details/79199807
https://blog.csdn.net/dcrmg/article/details/53049070
https://blog.csdn.net/dardgen2015/article/details/51563914