OpenVR:虚拟 API 函数的实现 (GetProjectionMatrix)
OpenVR: Implementation of virtual API functions (GetProjectionMatrix)
我无法从 openvr header.
中找到纯虚函数的实现(也就是源代码)
我主要对GetProjectionMatrix()
函数感兴趣。
我搜索的地方(没有结果):
- 简单的谷歌搜索
- 在 repo 中搜索函数名称
- 在提取的符号中,大多数包含的库(.dll 和 .lib)的导入和导出表
到目前为止我发现了什么:https://github.com/ValveSoftware/openvr/issues/103 ,但这似乎处理了不同编译器产生的问题。这个问题的错误是在SteamVR提供的vrclient.dll中产生的。两者似乎都没有 public 来源。
知道这些虚函数是如何(/在哪里)实现的吗?
你不会喜欢这个答案,因为可悲的现实是它没有可供我们使用的开源。
OpenVR是一个纯粹的虚拟界面库,是的界面是开源的,但这些界面的实际实现不是。在 libopenvr_api
(看起来像)的情况下,它们将作为二进制 blob 附加到接口构建中。
工作方式是通过在接口库中声明但在其他地方定义的工厂函数,那些外部定义的部分对我们来说就像一个黑盒子,除非 Valve 突然改变主意,否则它将保持不变方式。
这些工厂函数在 openvr.h
和 openvr_driver.h
的 OPENVR_INTERFACE_INTERNAL
部分中声明和使用(同样在 openvr.h
的情况下,这些工厂函数在 openvr_capi.h
,但它们使用在运行时加载的共享库中定义的工厂函数,整个模式与 openvr.h
) 中的非常相似。
编辑:
(also in case of openvr.h
those factory functions are defined in openvr_capi.h
, but they use factory functions that are defined in a shared library which is just loaded at runtime and the entire pattern is very similar to the one in openvr.h
)
我的记忆显然让我失望了,内部工厂函数在 openvr_api_public.cpp
中定义,它是源文件之一 libopenvr_api
是从 构建的不是 在 openvr_capi.h
中(为我辩护,我有一段时间没有看 libopenvr_api
来源)。
我无法从 openvr header.
中找到纯虚函数的实现(也就是源代码)我主要对GetProjectionMatrix()
函数感兴趣。
我搜索的地方(没有结果):
- 简单的谷歌搜索
- 在 repo 中搜索函数名称
- 在提取的符号中,大多数包含的库(.dll 和 .lib)的导入和导出表
到目前为止我发现了什么:https://github.com/ValveSoftware/openvr/issues/103 ,但这似乎处理了不同编译器产生的问题。这个问题的错误是在SteamVR提供的vrclient.dll中产生的。两者似乎都没有 public 来源。
知道这些虚函数是如何(/在哪里)实现的吗?
你不会喜欢这个答案,因为可悲的现实是它没有可供我们使用的开源。
OpenVR是一个纯粹的虚拟界面库,是的界面是开源的,但这些界面的实际实现不是。在 libopenvr_api
(看起来像)的情况下,它们将作为二进制 blob 附加到接口构建中。
工作方式是通过在接口库中声明但在其他地方定义的工厂函数,那些外部定义的部分对我们来说就像一个黑盒子,除非 Valve 突然改变主意,否则它将保持不变方式。
这些工厂函数在 openvr.h
和 openvr_driver.h
的 OPENVR_INTERFACE_INTERNAL
部分中声明和使用(同样在 openvr.h
的情况下,这些工厂函数在 openvr_capi.h
,但它们使用在运行时加载的共享库中定义的工厂函数,整个模式与 openvr.h
) 中的非常相似。
编辑:
(also in case of
openvr.h
those factory functions are defined inopenvr_capi.h
, but they use factory functions that are defined in a shared library which is just loaded at runtime and the entire pattern is very similar to the one inopenvr.h
)
我的记忆显然让我失望了,内部工厂函数在 openvr_api_public.cpp
中定义,它是源文件之一 libopenvr_api
是从 构建的不是 在 openvr_capi.h
中(为我辩护,我有一段时间没有看 libopenvr_api
来源)。