[英]OpenVR: Implementation of virtual API functions (GetProjectionMatrix)
我无法从openvr header 找到纯虚函数的实现(又名源代码)。
我主要对GetProjectionMatrix()
function 感兴趣。
我在哪里搜索(没有结果):
到目前为止我发现了什么: https://github.com/ValveSoftware/openvr/issues/103 ,但这似乎处理不同编译器产生的问题。 该问题的错误产生于SteamVR提供的vrclient.dll。 他们两个似乎都没有公开来源。
知道这些虚函数是如何(/在哪里)实现的吗?
您不会喜欢这个答案,因为可悲的现实是它没有可供我们使用的开源资源。
OpenVR 是一个纯粹的虚拟界面库,是的,界面是开源的,但这些界面的实际实现不是。 在libopenvr_api
(看起来像)的情况下,它们作为二进制 blob 附加到接口构建中。
工作方式是通过在接口库中声明但在其他地方定义的工厂函数,那些外部定义的部分对我们来说就像一个黑盒子,除非 Valve 突然改变主意,否则它将保持这种状态。
这些工厂函数在openvr.h
和openvr_driver.h
的OPENVR_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.