- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <gl/freeglut.h>
void Keyboard(int value){
glutTimerFunc(33,Keyboard,0);
}
int main(int argc, char **argv){
glutTimerFunc(33,Keyboard);
}
有没有办法不用全局变量就可以将数据从主函数传递到键盘函数?似乎函数 glutTimerFunc 只允许带有签名(int 值)的函数,这似乎非常严格。
最佳答案
so is there another way to get the data into another funcion without having them to be global?
就像其他人已经建议的那样:不要使用 GLUT。 GLUT 从来就不是真正应用的基础。这是一个用于小型 OpenGL 技术演示的小型框架。您遇到的问题是 C 和 C++ 缺少称为“闭包”或有时也称为“委托(delegate)”的概念。其他语言有它们,事实上,当您在这些语言中使用 GLUT 绑定(bind)时,您不会遇到问题。
由于 C/C++ 缺少闭包这一点非常突出,因此已经编写了一个小型库(在内部做一些疯狂但天才的事情),允许它在 C 中创建闭包。它被称为 ffcall,不幸的是似乎没有维护,但被项目用作 GNU Common Lisp 和 Scheme 编译器。
我已经在 StackOverflow 答案中写过关于使用 ffcall 的文章 https://stackoverflow.com/a/8375672/524368和 https://stackoverflow.com/a/10207698/524368
关于c++ - 如何将数据传递给 glutTimerFunc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662482/
如果我运行以下循环作为我的 OpenGL 程序的一部分: void Loop(int state) { glutPostRedisplay(); glutTimerFunc(1, Lo
我正在使用定时器函数来制作动画,但是当我将它放在 Renderer 类中时我遇到了问题。 void Renderer::animate(int value) { glutTimerFunc(TIME
#include void Keyboard(int value){ glutTimerFunc(33,Keyboard,0); } int main(int argc, char **ar
glutTimerFunc 不会延迟它只是永远循环。像fxp。 while(1) 。我做错了什么吗?还是兼容性问题?我正在使用带有 gcc 的 arch linux x64。我一直在混合使用 32 位
我正在使用 GLUT 计时器功能 的场景比教程和常见问题解答中介绍的场景稍微复杂一些。简化摘要如下: 如果满足条件,屏幕必须以短间隔及时重绘。如果不满足条件,则意味着重新显示是由其他机制控制的,因此定
我知道 glutMainLoop() 用于一遍又一遍地调用显示,保持恒定的帧速率。同时,如果我也有 glutTimerFunc(),它在最后调用 glutPostRedisplay(),那么它可以保持
在运行来自互联网的示例代码时,我陷入了“glutTimerfunc”。我无法弄清楚这个错误是什么。 最佳答案 glutTimerFunc 接受一个指向函数的指针,该函数的签名必须为 void (*fu
我正在使用 UDP 套接字将数据发送到我的 openGL 应用程序。 openGL 应用程序应该在 glutTimerFunc 回调中监听 UDP 套接字,并根据接收到的数据更新 View 。 我的主
我正在尝试做一个小游戏,在我的游戏中我有一些方 block ,当用户点击这些方 block 时,它们会突出显示。为实现此效果,我将 glutMouseFunc 与 glutTimerFunc 结合使用
我是一名优秀的程序员,十分优秀!