Вверх ↑
Ответов: 964
Рейтинг: 12
#1: 2019-10-09 11:07:23 ЛС | профиль | цитата
ИМХО теперь наступает время попробовать подключать к ХайАсм библиотеку OpenVr.
1 openVR_header.pas Хедер библиотеки openvr_api.dll для паскаля ...
2 Где-то в дебрях интернета есть проект "PasOpenVR - Virtual Reality with Object Pascal"

ЗЫ
Мои личные успехи пока невелики ...
Пока получилось только "тупо запустить" оболочку SteamVR


Вот код этого безобразия .
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
openVR_header ;
Const overlayHandle :longint = 0;
E:PEVRInitError=nil;
Var HOverlay:Pointer;
P2: UInt32;
// CVROverlay overlay = OpenVR.Overlay;
begin

Writeln('Test!');
{ Код на Си....
long overlayHandle = 0;
EVRInitError eError = EVRInitError.None;

OpenVRInterop.GetGenericInterface(OpenVR.IVROverlay_Version, ref eError);
CVRSystem system = OpenVR.Init(ref eError, EVRApplicationType.VRApplication_Overlay);

CVROverlay overlay = OpenVR.Overlay;
overlay.CreateOverlay("textureOverlay", "Picture Overlay", ref overlayHandle);
overlay.SetOverlayFromFile(overlayHandle, OverlayPath);
overlay.ShowOverlay(overlayHandle);
}
//Код на Паскале....
New(E);

E^:=TEVRInitError.EVRInitError_VRInitError_None;
HOverlay:=VR_GetGenericInterface(IVROverlay_Version,E);
P2:=VR_InitInternal(E,TEVRApplicationType.EVRApplicationType_VRApplication_Overlay);
Writeln('OpenVR RUN !!');
ReadLn;
VR_ShutdownInternal;
end.

Думал хотя бы картинку в пространстве повесить ..
Но Си-шный код

CVROverlay overlay = OpenVR.Overlay;
overlay.CreateOverlay("textureOverlay", "Picture Overlay", ref overlayHandle);
overlay.SetOverlayFromFile(overlayHandle, OverlayPath);
overlay.ShowOverlay(overlayHandle);

Использует классы OpenVR и overlay а как их через паскалевский хедер вытащить пока непонятно .
карма: 0

0
Редактировалось 3 раз(а), последний 2019-10-09 13:04:32