首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenVR:虚拟API函数(GetProjectionMatrix)的实现

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

Stack Overflow用户
提问于 2022-03-05 14:46:45
回答 1查看 103关注 0票数 2

我找不到实现(又名。源)来自openvr报头的纯虚拟函数。

我主要对GetProjectionMatrix()函数感兴趣。

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

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

到目前为止,我发现的是:https://github.com/ValveSoftware/openvr/issues/103,但这似乎解决了不同编译器产生的问题。此问题的错误是在vrclient.dll中由SteamVR提供的。两人似乎都没有公开的消息来源。

知道吗,这些虚拟函数是如何(/where)实现的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-16 13:53:42

你不会喜欢答案的,因为可悲的事实是,它没有开放的资源可供我们使用。

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

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

这些工厂函数是在openvr.hopenvr_driver.hopenvr_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源代码)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71363164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档