我想创建一个可以在简单的Linux发行版上运行的自己的用户界面。 GUI将使用Vulkan呈现,我的希望是在没有X11的情况下获得用户输入。在OS加载后,GUI将立即呈现并成为主要上下文。
问题:
答案 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做不做的所有事情以及重新实施该轮所需的年份。