GNOME жана KDEди виртуалдык реалдуулук гарнитураларында колдонуу үчүн xrdesktop долбоору

Collaboraдан иштеп чыгуучулар берилген долбоору xrdesktop, анда Valve колдоосу менен 3D көз айнеги жана виртуалдык реалдуулук каскалары менен түзүлгөн үч өлчөмдүү чөйрөнүн ичиндеги салттуу иш такталары менен иштешүү үчүн элементтери бар китепкана иштелип жатат. Китепкана коду С жана жазылган жайылуу MIT лицензиясы боюнча. Даяр чогулуштар даяр үчүн Arch Linux и Ubuntu 19.04 / 18.04.

Учурда Linuxтун виртуалдык реалдуулук гарнитураларына түз чыгаруу үчүн куралдары бар (X11 үчүн VK_EXT_acquire_xlib_display Vulkan кеңейтүүлөрү жана Wayland үчүн VK_EXT_acquire_wl_display), бирок 3D мейкиндигинде терезелерди туура көрсөтүү жана экранды жаңыртуу ылдамдыгын синхрондоштуруу деңгээлинде колдоо жок. Xrdesktop долбоорунун максаты - виртуалдык чөйрөлөрдө XNUMXD экран чыгарууга жана клавиатура менен чычканды башкарууга багытталган классикалык интерфейстерди колдонууга мүмкүндүк берүүчү ыкмаларды иштеп чыгуу.

GNOME жана KDEди виртуалдык реалдуулук гарнитураларында колдонуу үчүн xrdesktop долбоору

xrdesktop компоненттери 3D виртуалдык чөйрөлөрүндө терезелерди жана иш такталарын көрсөтүү үчүн виртуалдык реалдуулуктун иштөө убактысы системаларын колдонуу үчүн учурдагы терезе жана курама менеджерлерди кеңейтет. xrdesktop өзүнчө адистештирилген композиттик башкаруучуну иштетүүнүн зарылдыгы жок жана учурдагы ыңгайлаштырылган конфигурацияларды XNUMXD шлемдер менен колдонууга кадимки монитор менен колдонууга уруксат бербестен, учурдагы рабочий чөйрөлөргө интеграциялоо идеясын жайылтат.

Долбоордун архитектурасы каалаган иш столу менен интеграциялоо мүмкүнчүлүгүн билдирет, бирок өнүгүүнүн азыркы этабында KDE жана GNOME үчүн виртуалдык реалдуулук гарнитураларын колдоо компоненттери ишке ашырылууда. KDE үчүн 3D каскаларды колдоо Compiz сыяктуу плагин аркылуу, ал эми GNOME үчүн GNOME Shell үчүн патчтар топтому аркылуу ишке ашырылат. Бул компоненттер учурдагы терезелерди 3D каскалардын виртуалдык чөйрөсүнө өзүнчө көрүнүш түрүндө же үстүнкү режимде чагылдырат, мында иш столунун терезелерин башка иштеп жаткан виртуалдык реалдуулук тиркемелерине коюуга болот.

Рендеринг кыймылдаткычтарынан тышкары, xrdesktop Valve Index жана VIVE Wand сыяктуу адистештирилген мейкиндик контроллерлорунун жардамы менен навигацияны жана киргизүүнү камсыз кылуу үчүн компоненттерди камсыз кылат. Xrdesktop клавиатураны жана чычканды колдонууну окшоштуруп, VR контроллерлорунун маалыматынын негизинде үзгүлтүксүз киргизүү окуяларын жаратат.

xrdesktop OpenVR аркылуу VR иштөө убактысы үчүн терезе текстураларын жараткан бир нече китепканаларды, ошондой эле 3D чөйрөсүндө толук иш тактасын көрсөтүү үчүн API негизиндеги системаны камтыйт. xrdesktop өзүнүн терезе менеджерин камсыз кылбагандыктан, учурдагы терезе менеджерлери менен интеграциялык иш талап кылынат (xrdesktop каалаган X11 же Wayland терезе менеджерине көчүрүлүшү мүмкүн). Графикалык драйвер тарабынан иштөө үчүн Vulkan API жана VK_KHR_external_memory кеңейтүүсүн колдогон драйвер керек.

GNOME жана KDEди виртуалдык реалдуулук гарнитураларында колдонуу үчүн xrdesktop долбоору

xrdesktop негизги компоненттери:

  • гулкан - Vulkan үчүн glib байланыштыруу, иштетүүчү түзүлүштөр үчүн класстарды, шейдерлерди жана эстутумдан же DMA буферинен текстураларды инициализациялоо;
  • gxr — виртуалдык реалдуулук тиркемелерин иштеп чыгуу үчүн программалык интерфейстерди абстракциялоо үчүн API. Учурда OpenVR гана колдоого алынат, бирок OpenXR стандартына колдоо жакынкы келечекте кошулат;
  • libinputsynth — xdo, xi2 жана Clutter үчүн бэкенддер түрүндө ишке ашырылган чычкандын кыймылы, чыкылдатуулар жана баскычтарды басуу сыяктуу киргизүү окуяларын синтездөө үчүн китепкана;
  • xrdesktop — 3D чөйрөсүндө терезелерди башкаруу үчүн китепкана, сахнаны көрсөтүү үчүн коштомо виджеттердин жана бэкенддердин топтому;
  • kwin-effect-xrdesktop и kdeplasma-applets-xrdesktop — KDE менен интеграциялоо үчүн KWin үчүн плагин жана 3D туулгасында KWinди чыгаруу режимине которуу үчүн Plasma апплети;
  • gnome-shell патчсети и gnome-shell-extension-xrdesktop — xrdesktop колдоосун жана GNOME Shellдеги 3D туулгага чыгарууну которуу үчүн кошумчаны бириктирүү үчүн GNOME Shell үчүн патчтардын топтому.

Долбоор виртуалдык чөйрөдө иш столу жана терезелер менен өз ара аракеттенүүнү уюштуруунун бир нече ыкмаларын колдойт, алар терезелерди тартуу, масштабдоо, жылдыруу, айлантуу, сферада катмарлоо, терезелерди бекитүү жана жашыруу, башкаруу менюсун колдонуу жана бир эле учурда башкаруу бир нече контроллерду колдонуу менен эки кол.

Source: opennet.ru

Комментарий кошуу