在没有X11的情况下使用Vulkan创建功能Linux GUI

时间:2017-08-03 00:19:10

标签: linux user-interface x11 vulkan

我想创建一个可以在简单的Linux发行版上运行的自己的用户界面。 GUI将使用Vulkan呈现,我的希望是在没有X11的情况下获得用户输入。在OS加载后,GUI将立即呈现并成为主要上下文。

问题

  • 这样做有什么意义?
  • 我如何获得用户输入?
  • 如何配置我的GUI应用程序以正确加载?
  • Vulkan不适合这种情况吗?

2 个答案:

答案 0 :(得分:0)

你不能,因为那不是Vulkan的工作方式。

在Linux上,Vulkan是OpenGL的替代品,而不是X11的替代品。 (同样,在Windows上,它替代了DirectX或OpenGL,而不是Desktop Window Manager。)

答案 1 :(得分:0)

  

这样做有什么意义?

Vulkan设计无头。您至少可以在其中呈现内容,然后将其复制到原始字节(即使用vkMapMemory)。在VK_KHR_external_*扩展的帮助下,您甚至可以更有效地执行此类操作(以0复制方式)。

Vulkan只是一个渲染API。 窗口系统是X11(或Wayland,或Mir,或Whatever)的竞争对手。做这样的事情意味着使用像Wayland这样的替代方案(如果你的牛肉专门用于X11)或实施自己的。

  

我如何获得用户输入?

也超出了Vulkan的范围。同样,可能意味着重新实现像X11这样的东西。

  

如何配置我的GUI应用程序以正确加载?

如果您的意思是现有的应用程序,则必须修改现有的基础架构,以便在无处不在的X11旁边接受和使用新的窗口管理器。

如果您指的是新应用,那么这是您打算创建的窗口管理器API特有的,不是吗?

  

Vulkan不适合这种情况吗?

这种情况可能很好(可能比OpenGL更多)。但它也可能是这个想法中最简单的方面。困难的部分是Vulkan做做的所有事情以及重新实施该轮所需的年份。