如何通过DRM创建OpenGL上下文(Linux)
我想在没有X的情况下使用OpenGL渲染,而在Google上我找到了它:http :
//dvdhrm.wordpress.com/2012/08/11/kmscon-linux-kmsdrm-based-virtual-
console/那里说有可能。我应该使用DRM和EGL。EGL可以创建opengl上下文,但需要一个NativeWindow。DRM可能会为我提供NativeWindow,不是吗?我应该使用KMS吗?我知道我必须拥有开源视频驱动程序。我需要完全的OpenGL上下文,但不需要OpenGL
ES(Linux)。也许有人知道教程或示例代码?
回答:
是的,您需要kms堆栈(示例)。这是Linux下的一个简单示例,它使用OpenGL
es,但是使其与OpenGL api兼容的步骤很简单。
在egl属性中设置EGL_RENRERABLE_TYPE
为EGL_OPENGL_BIT
并告诉egl绑定到哪个api:
eglBindAPI(EGL_OPENGL_API);
一定要有最新的内核驱动程序和mesa-dev
,libdrm-dev
,libgbm-
dev。这段代码可在android上移植,将默认的android图形堆栈静默起来并不是那么容易。
注意:我在使用32位版本时遇到了麻烦,但仍然不知道为什么。 这些库是积极开发的,因此不确定这不是错误。
note2:取决于您的GLSL版本,是否支持浮点精度。
precision mediump float;
note3:如果您的渗透失败/dev/dri/card0
,请授予:
sudo chmod 666 /dev/dri/card0
或当前用户添加到video
组
sudo adduser $user video
您也可以为可执行文件设置setguid,并将组设置为video。(也许是最好的选择)
以上是 如何通过DRM创建OpenGL上下文(Linux) 的全部内容, 来源链接: utcz.com/qa/433981.html