openGL实现操作系统是否具体?

Kaw*_*iKx 1 opengl api

我已经理解API是两个代码之间的粘合剂.它们以库的函数的形式实现,最终在运行时期间在计算机上编译和需要.

那么这不是说它们的实现是特定于操作系统的吗?

我特别想知道opengl的实现是否特定于操作系统?我正在使用fedora 19并安装了Mesa库.

Col*_*art 6

一般来说

某些API可能以特定于操作系统的方式实现,而其他API则不是.

这取决于是否需要低级功能来实现它们,或者API运行的环境是否提供或不提供实现它们的必要构建块.

例如,JDBC type-4驱动程序以独立于操作系统的方式实现JDBC API.

其他API(如POSIX)可能必须以特定于操作系统的方式实现,而其中某些部分可能可以独立于操作系统的方式实现.

另一个例子是APR,Apache Portable Runtime,它以特定于操作系统的方式实现.另一个API,Serf建立在APR之上,因此它的实现实际上与操作系统无关.

总之,作为一般规则,低级API倾向于以特定于操作系统的方式实现,而高级API将以其他低级API实现,因此更有可能在独立于操作系统的环境中实现方式.

梅萨/ OpenGL的

这个答案的第一部分是在问题是一般API问题时编写的.后来问题被改为专门针对OpenGL.

我不太熟悉OpenGL的Mesa实现; 我认为出于可维护性原因,其中很大一部分是以独立于操作系统的方式实现的,但是由于A)需要与硬件接口 - 这往往在不同的操作系统上以不同的方式完成 - 和B )实现良好性能的需要还将有一个不显着数量的特定于操作系统的代码.

要记住的另一件事是POSIX API有灰色区域(特别是在处理线程的部分),因此对于更高级别的API,例如Mesa,可能需要特定于操作系统的代码来解决不同实现中的差异平台.