无论平台如何,OpenGL类型是否相同?

无论平台如何,OpenGL类型是否相同?,opengl,cross-platform,theory,Opengl,Cross Platform,Theory,我对学习OpenGL感兴趣,我知道它被定义为跨平台。这是否意味着我会像在Windows、Mac或Linux上一样键入代码 //example pseudocode to make a circle with a radius of 500 pixels and 5 pixels wide createCircle(500,5); 如果输入的是相同的,这是否意味着OpenGL为Windows和Mac存储了API集,并且基于平台执行程序,调用相应的API集?如果不是,这里的过程是什么?OpenG

我对学习OpenGL感兴趣,我知道它被定义为跨平台。这是否意味着我会像在Windows、Mac或Linux上一样键入代码

//example pseudocode to make a circle with a radius of 500 pixels and 5 pixels wide 
createCircle(500,5);

如果输入的是相同的,这是否意味着OpenGL为Windows和Mac存储了API集,并且基于平台执行程序,调用相应的API集?如果不是,这里的过程是什么?

OpenGL将以完全相同的方式跨平台显示。每个平台的类型也相同。编译时,API将为要插入最终可执行文件的正确平台选择正确的平台相关代码。

OpenGL将以完全相同的方式跨平台显示。每个平台的类型也相同。编译时,API将为要插入最终可执行文件的正确平台选择正确的平台相关代码。

来自官方文档:

是的,似乎是这样。在大多数情况下,它对大多数语言的API绑定似乎是相同的。但是,某些语言的行为可能仍然不同。你必须查阅参考手册


对于Java、Python等单一语言,它们使用JVM等解释器。任何系统都应如此,因为这是设计决策的一部分。

来自官方文件:

是的,似乎是这样。在大多数情况下,它对大多数语言的API绑定似乎是相同的。但是,某些语言的行为可能仍然不同。你必须查阅参考手册


对于Java、Python等单一语言,它们使用JVM等解释器。这对于任何系统都应该是一样的,因为这是设计决策的一部分。

对于3D绘图方面,是的。但实际上,除非使用中间件,否则完整OpenGL应用程序所需的API/用法会有所不同。具体在三个方面,

1) 操作系统依赖性-图形在屏幕上呈现的方式取决于显示驱动程序,这使得图形也依赖于操作系统。因此,您将使用不同的API来创建与显示适配器的连接

2) 窗口系统依赖项-同样依赖于操作系统。例如,在Linux上,您可以使用Xorg、Wayland或普通帧缓冲区等。根据这些,您创建图形更改曲面的方式也会有所不同


3) 特定于平台的扩展—一些高性能扩展依赖于特定的操作系统行为,并且不是跨平台的。它们采用GL_ARB、GL_OES等形式。

对于3D绘图方面,是的。但实际上,除非使用中间件,否则完整OpenGL应用程序所需的API/用法会有所不同。具体在三个方面,

1) 操作系统依赖性-图形在屏幕上呈现的方式取决于显示驱动程序,这使得图形也依赖于操作系统。因此,您将使用不同的API来创建与显示适配器的连接

2) 窗口系统依赖项-同样依赖于操作系统。例如,在Linux上,您可以使用Xorg、Wayland或普通帧缓冲区等。根据这些,您创建图形更改曲面的方式也会有所不同


3) 特定于平台的扩展—一些高性能扩展依赖于特定的操作系统行为,并且不是跨平台的。它们以GL_ARB、GL_OES等形式出现。

OpenGL不是一个库,而是一个规范。API在所有平台上都是相同的,但它遵循主机操作系统的调用约定和基本类型


因此函数
void glPixelStorei(GLenum,GLint)
在所有平台上的名称都是相同的,但是
GLenum
GLint
确切的类型可能取决于目标平台。

OpenGL不是一个库,它是一个规范。API在所有平台上都是相同的,但它遵循主机操作系统的调用约定和基本类型


因此函数
void glPixelStorei(GLenum,GLint)
在所有平台上的名称都是相同的,但是
GLenum
GLint
确切的类型可能取决于目标平台。

OpenGL不是一个库,它是一个规范。API在所有平台上都是相同的,但它遵循主机操作系统的调用约定和基本类型。OpenGL不是库,而是规范。API在所有平台上都是一样的,但它遵循主机操作系统的调用约定和基本类型。您可能会键入类似于#include thisAPI或#include thatAPI的内容,然后您键入的代码将使用该“头”(因为缺少更好的单词和知识)来使用适当的API?这让我有点困惑。您可能会键入类似于#include thisAPI或#include thatAPI的内容,然后您键入的代码将使用该“头”(因为缺少更好的单词和知识)来使用适当的API?