kus*_*usw 3 opengl macos deprecated
我发现 Apple 从 MacOS Mojave 开始就弃用了 OpenGL。
然而,根据我对图形API的理解,我知道特定操作系统的图形驱动程序(支持特定图形API)是由图形卡供应商提供的(以可执行文件的形式),而不是预先构建在操作系统中。
操作系统制造商Apple不支持OpenGL库意味着什么?
像AMD这样的显卡厂商难道就不能为MacOS制作自己的显卡驱动程序来支持更高版本的OpenGL吗?
像AMD这样的显卡厂商难道就不能为MacOS制作自己的显卡驱动程序来支持更高版本的OpenGL吗?
不。
“驱动程序”是操作系统用来与某些硬件进行通信的一段代码。操作系统定义了与某些类型的驱动程序交互的方法,而这些类型的硬件制造商提供了操作系统定义的驱动程序 API 的实现。
当涉及到与硬件交互时,用户态代码可以与驱动程序精确交互,并且仅在操作系统允许的范围内。
当您在 MacOS 上与 OpenGL 交谈时,首先也是最重要的,您是在与MacOS交谈。您的 OpenGL 函数调用将进入操作系统。然后,操作系统将 GL 函数调用转换为图形驱动程序制造商实现的内部 API,然后操作系统调用该 API。所有结果都会从这些内部驱动程序 API 进行转换并转发回给您。
您永远不会直接与图形驱动程序对话;MacOS 始终充当你们之间的中介。MacOS 上的图形驱动程序不包含 OpenGL 实现;MacOS本身有一个实现,但其中一部分是由图形驱动程序提供的。
这就是为什么在 MacOS 上,实现支持的扩展列表缺少很多特定于供应商的扩展。如果您查看 Windows 或 Linux OpenGL 实现,就会发现 AMD 和 NVIDIA 有大量支持的扩展。这些在 MacOS 上不存在,因为 MacOS控制哪些扩展可用。
它不必这样做;它不必这样做。它可以允许驱动程序公开任何他想要的内容,这是在其他平台上完成的。但这些都是这些平台做出的具体选择;他们不必这样做,苹果也没有这样做。
因此,如果 MacOS 不再包含 OpenGL 实现...那么它就不再具有 OpenGL 实现。而且您无法与内部驱动程序 API 对话,因为它属于操作系统,并且不允许您访问它。
而且显卡制造商无法添加后门或其他东西来允许您访问驱动程序,因为操作系统始终处于控制之中。操作系统拥有与硬件的接口。如果供应商试图创建一些以某种方式绕过操作系统的钩子,我很确定苹果会对这些驱动程序有一些非常不愉快的说法。
| 归档时间: |
|
| 查看次数: |
2142 次 |
| 最近记录: |