【发布时间】:2018-06-24 09:17:00
【问题描述】:
我正在编写一个 x86 操作系统,一个问题突然出现在我的脑海中: 如果我想在我的操作系统中创建一个简单的 opengl 游戏,我是否能够在不重新发明 opengl 的情况下做到这一点? 所以我要问的是,opengl 是否包含在例如nvideo驱动程序,还是位于gpu固件中? 如果它在 gpu 中,我可以简单地移植/创建一个 opengl 包装器,对吗?
有人可以详细说明一下吗?
谢谢
【问题讨论】:
-
GPU、软件还是操作系统?全部同意。硬件加速 OpenGL 操作,可以通过硬件或软件来执行。 OS负责管理屏幕与OpenGL的关系(上下文);加载和管理 OpenGL 驱动程序。建议您阅读一些图形编程和开发的历史。
-
OpenGL 是类似于 C++ 的标准。它指定必须存在哪些功能以及它们如何工作才能被称为 OpenGL 兼容。如果您想实现 OpenGL,您需要查看标准并执行此操作。理想情况下,您可以通过告诉显卡来移植执行大多数实现的现有驱动程序。
-
那么,我在哪里可以找到 nvidea 或 amd 驱动程序?他们不是封闭源代码吗?因此,opengl 只是让 gpu 绘制 3d 世界的一种方式(就像 directx 一样),还是 opengl 是加载到 gpu 然后加载 3d 世界的程序?
-
经过大量努力,您也许能够移植其中一个开源驱动程序(例如 Nouveau)。通过更多的努力,您可能也可以获得一个闭源驱动程序。
标签: c++ opengl x86 operating-system wrapper