《图形编程技术学习》(十)OpenGL相关的库

本文介绍了OpenGL的相关库,包括OpenGL Library的核心库,提供了115个函数,如glColor3f(),glTranslate3f()。OpenGL的跨平台性使其能在多种图形硬件系统上运行。OpenGL utility library提供了43个函数,如gluPerspective()。文章还提到了辅助OpenGL编程的工具库freeglut,以及窗口接口库的平台相关性。最后,概述了C/C++编程使用OpenGL的基本流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.相关的库

  .OpenGL Library(核心库)

     (1)包括115个函数,前缀:"gl"

       (2)  例如:glColor3f(),glTranslate3f()

       (3) gl.h,openGL32.lib,openGL32.dll

这些函数有三个文件和它们相关

    gl.h放这些函数的声明,然后这些函数的真正实现在哪儿,一般来说在OpenGL32.dll动态链接库实现

    OpenGL32.lib静态链接库或者用来实现,或者和dll配合来实现链接

拓展:

(1)Lib 和 dll 两种库:

一种是Lib包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。

一种是Lib包含了函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library.

共有两种链接方式:

动态链接使用动态链接库,允许可执行模块(.dll文件或 .exe文件)仅包含在运行时定位DLL函数的可执行代码所需的信息。

静态链接使用静态链接库,链接器从静态链接库LIB获取所有被引用函数u,并将库同代码一起放到可执行文件中。

     关于lib和dll的区别如下:

      a,lib是编译时用到的,dll是运行时用到的。如果要完成源代码的编译,只需要lib;如果使用动态链接运行起来,只需要dll。

     b.如果有dll文件,那么lib一般是一些索引信息,记录了dll中函数的入口和位置,dll中是函数的具体内容;如果只有lib文件,那么这个lib文件是静态编译哦出来的,索引和实现都在其中。使用静态编译的lib文件,在运行程序时不需要再挂动态库,缺点是导致应用程序比较大,而失去了动态库的灵活性,发布新版本时要发布新的应用程序才行。

     c.动态链接的情况下,有两个文件:一个是Lib文件,一个是DLL文件。Lib包含被DLL导出的函数名称和位置,DLL包含实际的函数和数据,应用程序使用Lib文件链接到DLL文件。在应用程序的可执行文件中个,存放的不是被调用的函数代码,而是DLL中相应函数代码的地址,从而节省了内存资源。DLL和LIB文件必须随应用程序一起发行,否则应用程序会产生错误。如果不想用lib文件或者没有lib文件,可以用WIN32API函数LoadLibrary、GetProcAddress装载。

(2)如何理解OpenGL的跨平台性?

     OpenGL和DX相比有一个很大的特点就是跨平台的特性。换句话说,它是不依赖硬件的接口,可以运行在各种不同类型的图形硬件系统上,甚至完全是一个软件(而没有图形硬件)。

.OpenGL utility library(实用程序库)

  (1)包括43个函数,前缀:”glu"

  (2)gluPerspective()

  (3)glu.h,glu.lib,glu.dll

跨平台性:OpenGL的核心库和实用库接口可以在任何OpenGL的实现平台上使用,如MS windows ,Unix,Linux,IOS...

但,只有核心库和实用程序库是不行的!

二.只有核心库和实用程序库是不行的!

.辅助OpenGL编程的工具库

   (1)如freeglut (free OpenGL Utility Toolkit)

     (2) 需要glut.h,freeglut.h,freeglut32.lib,freeglut32.dll

.freeglut功能

  (1)执行与窗口相关的功能

    (2)  鼠标、键盘交互功能

    (3)右键菜单功能

  (4)高层的建模命令(如glutSolidSphere(1.0))

 三.有时还会见到窗口接口库

Window interface library 

   (1)前缀:"wgl",”glx","pgl",Agl...

   (2)wglCreateContext(m_hDC)

  窗口界面库是与平台相关的

Related Library

   (1)在微软操作系统中的相关文件

 四.C\C++编程的基本流程

    

 拓展链接:

http://www.cppblog.com/amazon/archive/2009/09/04/95318.html

https://wenku.baidu.com/view/ec643d4fa66e58fafab069dc5022aaea998f41bc.html

https://blog.csdn.net/u012662731/article/details/78520349

https://www.cnblogs.com/mickole/articles/3659112.html

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值