Dev C++环境中使用OpenGL

引入

dev-c++实际上已经包含了开发opengl程序基本的功能可以简单的选择:新建-multimedia-opengl,建立一个opengl程序。

这个程序包含了基本的opengl程序的结构,包括生成窗口,消息驱动机制,还有基本的opengl程序。直接点击运行可以看到一个不断旋转的彩色三角形。

在该工程的 Project Option -> Parameters -> Link 中发现已经连接了库 libglu32.a, libopengl32.a

-lopengl32

在工程根目录的 Makefile.win 中也能看到

LIBS     = -L"E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lopengl32 -g3 

所以要想建立自己的 OpenGL 工程必须在建立win32工程的Link中加入下面参数

-lglu32
-lopengl32

现在根据《OpenGL 编程指南》中的例程简单实现:在黑色背景中渲染一个白色的矩形

#include<windows.h>
//#include<GL/gl.h>//glut.h中已经包含 
//#include<GL/glu.h>
#include<GL/glut.h>

//绘制程序 
void display()
{
     glClear(GL_COLOR_BUFFER_BIT);//将屏幕设置为黑色
     glColor3f(10.,1.0,1.0);//设置当前颜色状态为白色
     glBegin(GL_POLYGON);//绘制多边形
         glVertex3f(0.25, 0.25,0.0);
         glVertex3f(0.75,0.25,0.0);
         glVertex3f(0.75,0.75,0.0);
         glVertex3f(0.25,0.75,0.0);
     glEnd();

     glFlush();//发送缓冲区
}

//初始化绘制 
void init()
{
     glClearColor(0.0,0.0,0.0,0.0);//清除颜色设置
     glMatrixMode(GL_PROJECTION);//设置投影方式
     glLoadIdentity();
     glOrtho(0.0, 1.0, 0.0, 1.0,-1.0,1.0);设置投影空间
}

int main(int argc, char** argv)
{
    glutInit(&argc, argv);//初始化glut
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//设置显示模式为单缓冲,RGB模式
    glutInitWindowSize(250,250);//设置窗口大小
    glutInitWindowPosition(100,100);//设置窗口位置
    glutCreateWindow("Hello");//设置窗口标题
    init();
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;

}

认识

首先得弄明白一点 glut 全名为 OpenGL utility tool, 系统不自带。

通过查看 Makefile.win 的前十几行可以发现上面的设置只是简单的在变量 LIBS 后面加入了 -mwindows -lglut32 -lglu32 -lopengl32

# Project: Project1
# Makefile created by Dev-C++ 5.2.0.3

CPP      = g++.exe
CC       = gcc.exe
WINDRES  = windres.exe
OBJ      = main.o $(RES)
LINKOBJ  = main.o $(RES)
LIBS     = -L"E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lglut32 -lglu32 -lopengl32 -lwinmm -lgdi32  
INCS     = -I"E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" 
CXXINCS  = -I"E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" 
BIN      = lson6.exe
CXXFLAGS = $(CXXINCS)  
CFLAGS   = $(INCS)  
RM       = rm -f

也就是说系统搜索 OpenGL 库的默认路径是x86_64-w64-mingw32/lib目录, 然而该目录下根本没有 libglut32.a 文件

在 Parameters -> link 中添加:

-L"E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32"  -lglut32

会出现如下错误

skipping incompatible E:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib32/libglut32.a when searching for -lglut32 

配置

有了上面的感性认识,接下来就可以进一步理解在 DEV C++ 中配置 OpenGL 的原理了

在使用 glut 时需要自己下载配置,于是必须明确如下几点

  • WINDOWS配置:

    确保你的WINDOWS/SYSTEM32文件下有如下文件:

    glu32.dll, glut32.dll, glut.dll, opengl32.dll

  • DEV C++库的配置:

    确保DEV C++安装目录下的Lib文件中有如下文件:

    libglu32.a, libglut32.a, libglut.a, libopengl.a

    其次确保inlude\GL文件中又如下头文件:

    gl.h, glu.h, glut.h,

  • DEV C++文件工程的属性设置:

    右键单击工程,弹出菜单,点击工程属性,然后再弹出的表格中选择参数项,右边的连接器中输入:

    -lglut32
    -lglu32
    -lopengl32
    -lwinmm
    -lgdi32
    

你可能感兴趣的:(OpenGL,dev)