我刚读完LFS这本书,我的Linux系统现在正在工作。我想使用OpenGL在屏幕上显示图形,而现在唯一安装的软件包是http://www.linuxfromscratch.org/lfs/view/stable/chapter03/packages.html上描述的那些。
我不想安装Gnome、KDE或X.org之类的东西。相反,我想直接从我的软件中使用OpenGL。这可能吗?我该如何做?或者它就像写一个全屏运行的OpenGL应用程序一样容易(我不这么认为:'p')?
我刚读完LFS这本书,我的Linux系统现在正在工作。我想使用OpenGL在屏幕上显示图形,而现在唯一安装的软件包是http://www.linuxfromscratch.org/lfs/view/stable/chapter03/packages.html上描述的那些。
我不想安装Gnome、KDE或X.org之类的东西。相反,我想直接从我的软件中使用OpenGL。这可能吗?我该如何做?或者它就像写一个全屏运行的OpenGL应用程序一样容易(我不这么认为:'p')?
4条答案
按热度按时间gc0ot86w1#
你不需要安装Gnome或KDE。这些用于管理窗口,您可以启动图形应用程序,而无需窗口管理器。
因此,您必须安装X服务器。X服务器负责在屏幕上绘制内容。没有X服务器,你就不能启动图形应用程序。
安装X之后,启动它,导出你的
DISPLAY
环境变量,剩下的就像写一个全屏运行的OpenGL应用程序一样:-)2skhul332#
你也可以使用Pygame来创建自定义的启动UI。也可以尝试看看Wayland合成器,因为它已经取代了Fedora和Ubuntu等版本中的XServer。
h9a6wy2h3#
kmscube
DRM示例https://github.com/robclark/kmscube
这可能是最流行的演示,它使用OpenGL和EGL。
不幸的是,Ubuntu 18.04包与NVIDIA专有驱动程序它不为我工作后进入Ctrl + Alt + F3:
错误报告:https://github.com/robclark/kmscube/issues/12
但我在模拟器上运行了。
它占据了整个显示器,并显示了一个彩色旋转立方体。
l7wslrjt4#
您可以使用**SRM library (Simple Rendering Manager)**,这是一个C库,专为在KMS/DRM上下文中使用OpenGL ES 2.0进行渲染而设计。它的一个显著优点是它为您简化了所有DRM/KMS配置。此外,它还有助于从单个分配在多GPU设置中的GPU之间共享OpenGL纹理。
这里有一个基本的例子来说明如何使用它:
1.首先创建**SRMCore示例。
1.然后,通过每个SRMDevice(GPU)进行计算。每个GPU都有一个SRMConnectors**(显示器)列表。
1.使用srmConnectorInitialize()初始化所需的连接器。
1.该库为每个连接器创建一个渲染线程,并调用典型的OpenGL事件,如 initializeGL()、paintGL()、resizeGL() 等。
1.要在连接器中计划新的重绘,请使用srmConnectorRepaint()。
1.如果您需要创建OpenGL纹理,请参考SRMBuffer documentation。
我希望您发现这个库对您的特定用例有用。