繁体   English   中英

OpenVR:虚拟API函数的实现(GetProjectionMatrix)

[英]OpenVR: Implementation of virtual API functions (GetProjectionMatrix)

我无法从openvr header 找到纯虚函数的实现(又名源代码)。

我主要对GetProjectionMatrix() function 感兴趣。

我在哪里搜索(没有结果):

  • 简单的谷歌搜索
  • 在 repo 中搜索 function 名称
  • 在提取的符号中,大多数包含的库(.dll 和.lib)的导入和导出表

到目前为止我发现了什么: https://github.com/ValveSoftware/openvr/issues/103 ,但这似乎处理不同编译器产生的问题。 该问题的错误产生于SteamVR提供的vrclient.dll。 他们两个似乎都没有公开来源。

知道这些虚函数是如何(/在哪里)实现的吗?

您不会喜欢这个答案,因为可悲的现实是它没有可供我们使用的开源资源。

OpenVR 是一个纯粹的虚拟界面库,是的,界面是开源的,但这些界面的实际实现不是。 libopenvr_api (看起来像)的情况下,它们作为二进制 blob 附加到接口构建中。

工作方式是通过在接口库中声明但在其他地方定义的工厂函数,那些外部定义的部分对我们来说就像一个黑盒子,除非 Valve 突然改变主意,否则它将保持这种状态。

这些工厂函数在openvr.hopenvr_driver.hOPENVR_INTERFACE_INTERNAL部分中声明和使用(在openvr.h的情况下,这些工厂函数也在openvr_capi.h中定义,但它们使用在共享库中定义的工厂函数只是在运行时加载,整个模式与openvr.h中的模式非常相似)。

编辑:

(同样在openvr.h的情况下,这些工厂函数在openvr_capi.h中定义,但它们使用在共享库中定义的工厂函数,该共享库仅在运行时加载,整个模式与openvr.h中的非常相似)

我的 memory 显然让我失望了,内部工厂函数是在openvr_api_public.cpp中定义的,它是libopenvr_api的源文件之一,而不是openvr_capi.h中(为了我的辩护,我有一段时间没有看libopenvr_api源) .

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM