glfw - glfwGetWindowUserPointer 有什么作用?
问题描述
在查看 GLFW 参考资料时,我遇到了glfwGetWindowUserPointer
函数(和glfwSetWindowUserPointer
函数)。在参考文献中,它对用户指针进行了以下说明:
每个窗口都有一个用户指针,可以使用 glfwSetWindowUserPointer 设置并使用 glfwGetWindowUserPointer 获取。这可以用于您需要的任何目的,并且在窗口的整个生命周期内都不会被 GLFW 修改。
现在我想知道人们可以出于什么目的使用它?
解决方案
我不会把这个答案归功于这个答案,因为这不是我的答案,而是GLFW 论坛上其他人的答案。
UserData 字段是 C API 中相当常见的范例,它允许用户从回调中访问上下文数据,而无需使所有内容都全局化。本质上,它允许您将与您的程序相关的任意数据段与 glfw 窗口相关联。
例如,如果您尝试在遵循面向对象设计的程序中使用 glfw,您可以使用此指针来存储处理特定窗口的实例的地址,并转发回调(必须是静态函数,因为 API 的工作方式)到适当的成员函数。
推荐阅读
- elasticsearch - 无法使用 Kafka 连接将记录从 Kafka MSK 发送到弹性搜索
- android - 片段不调用 OnCreate 方法
- php - 可以用条件调用函数吗?
- r - R 数学运算 NA 值
- javascript - 使用 ajax javascript 显示数据库中的数据
- javascript - 使用 Chrome 扩展内容脚本注入 Angular 8 应用程序
- ios - Swift Combine - 按给定顺序执行任务
- ray - 发出本地集群错误 - 无法设置终端进程组
- ios - .obj 模型的大小可以调整(scenekit)
- java - 检查来自另一个类 java 的登录系统的列表元素