我找不到实现(又名。源)来自openvr报头的纯虚拟函数。
我主要对GetProjectionMatrix()函数感兴趣。
我在那里搜索(没有结果):
到目前为止,我发现的是:https://github.com/ValveSoftware/openvr/issues/103,但这似乎解决了不同编译器产生的问题。此问题的错误是在vrclient.dll中由SteamVR提供的。两人似乎都没有公开的消息来源。
知道吗,这些虚拟函数是如何(/where)实现的?
发布于 2022-03-16 13:53:42
你不会喜欢答案的,因为可悲的事实是,它没有开放的资源可供我们使用。
OpenVR是一个纯粹的虚拟接口库,是的接口是开源的,但这些接口的实际实现却不是。在libopenvr_api的情况下(看起来是),这些blob作为二进制blob附加到接口构建中。
工作方式是通过在接口库中声明但在其他地方定义的工厂函数,这些外部定义的部件对我们来说就像一个黑匣子,除非阀门突然改变主意,否则它将保持这种状态。
这些工厂函数是在openvr.h和openvr_driver.h的openvr_driver.h部分中声明和使用的(对于openvr.h,这些工厂函数也是在openvr_capi.h中定义的,但它们使用的是共享库中定义的工厂函数,该库只是在运行时加载,整个模式非常类似于openvr.h中的模式)。
编辑:
(对于
openvr.h,这些工厂函数也是在openvr_capi.h中定义的,但是它们使用的是在共享库中定义的工厂函数,共享库是在运行时加载的,整个模式与openvr.h中的模式非常相似)
我的内存显然让我失望了,内部工厂函数是在openvr_api_public.cpp中定义的,这是libopenvr_api构建的源文件之一,而不是openvr_capi.h中的(为了我的辩护,我有一段时间没有看libopenvr_api源代码)。
https://stackoverflow.com/questions/71363164
复制相似问题