问题标签 [freeglut]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 删除 Glut/FreeGlut/GLFW 的控制台窗口?
在 Visual C++ 下,我玩过 Glut/FreeGlut/GLFW。似乎这些项目中的每个人都默认添加了一个 CMD 窗口。我尝试将其删除:
属性->C/C++->预处理器->预处理器定义
从这里,我删除 _CONSOLE 并将其替换为 _WINDOWS
然后我去了:
属性->链接器->系统->子系统
我将选项设置为 Windows (/SUBSYSTEM:WINDOWS)
然后,当我尝试在 GLFW 下编译时,出现以下构建错误:
错误 1 错误 LNK2001:无法解析的外部符号 _WinMain@16 MSVCRT.lib
错误 2 致命错误 LNK1120: 1 unresolved externals glfwWindow.exe
是否可以删除控制台窗口?
c++ - 如何配置 freeglut 以使用 Code::Blocks
我想知道如何配置 freeglut 以使用 Code::Blocks IDE 和 minGW 编译器。我对 Code::Blocks 没有太多经验,而且我已经尝试过 glut 和 freeglut 多年了。任何帮助将不胜感激,包括教程等。
opengl - Freeglut程序编译但运行时显示错误:libglut.so.3:无法打开共享对象文件
这是我的程序:
编译:
g++ -lglut -L/usr/local/lib/ -o start start.cpp;./start
显示错误:
./start:加载共享库时出错:libglut.so.3:无法打开共享对象文件:没有这样的文件或目录
该文件存在。
bashprompt> 定位 libglut.so.3
/usr/local/lib/libglut.so.3
/usr/local/lib/libglut.so.3.9.0
也试过:
LD_RUN_PATH="/usr/local/lib/"
g++ -lglut -LLIBDIR -o start start.cpp;./start 没有运气。
这些是安装时显示的消息(如果有帮助的话):
root@Nav:/home/Nav/freeglut-2.6.0# make install make install in src
make[1]: 进入目录 /home/Nav/freeglut-2.6.0/src' test -z "/usr/local/库" || /bin/mkdir -p "/usr/local/lib" /bin/sh ../libtool --mode=install /usr/bin/install -c 'libglut.la' '/usr/local/lib/libglut. la' /usr/bin/install -c .libs/libglut.so.3.9.0 /usr/local/lib/libglut.so.3.9.0 (cd /usr/local/lib && { ln -s -f libglut .so.3.9.0 libglut.so.3 || { rm -f libglut.so.3 && ln -s libglut.so.3.9.0 libglut.so.3; }; }) (cd /usr/local/ lib && { ln -s -f libglut.so.3.9.0 libglut.so || { rm -f libglut.so && ln -s libglut.so.3.9.0 libglut.so; }; }) /usr/bin /install -c .libs/libglut.lai /usr/local/lib/libglut.la/home/Nav/freeglut-2.6.0/src'
make[2]: Entering directory
/usr/bin/install -c .libs/libglut.a /usr/local/lib/libglut.a chmod 644 /usr/local/lib/libglut.a ranlib /usr/local/lib/libglut.a
PATH=" $PATH:/sbin" ldconfig -n /usr/local/lib
---------------------------------- ----------------------------------- 库已安装在:
/usr/local/lib 如果你曾经碰巧想要链接给定目录 LIBDIR 中的已安装库,您必须使用 libtool,并指定库的完整路径名,或者在执行期间使用 LD_LIBRARY_PATH' 环境变量 - 将 LIBDIR 添加到-Wl,--rpath -Wl,LIBDIR' 链接器标志 - 让您的系统管理员将 LIBDIR 添加到 `/etc/ld.so.conf'-LLIBDIR' flag during linking and do at least one of the following:
- add LIBDIR to theLD_RUN_PATH' environment variable during linking
- use the
有关更多信息,请参阅有关共享库的任何操作系统文档,例如 ld(1) 和 ld.so(8) 手册页。
windows - 如何在 Windows 上使用 freeglut 制作 Haskell GLUT?
如何使用 freeglut 而不是 windows 上的原始 GLUT 进行 Haskell GLUT 绑定?
c++ - 试图将光标剪辑到我的窗口不起作用?
我试图让窗口光标停留在我的窗口内。我正在使用 freeglut 和 C++ 到目前为止,一切都运行良好,除了我尝试使用 ClipCursor 将光标锁定在我的窗口中的部分之外,它可以自由移动,就像甚至没有调用命令一样。它在我拥有的一个根本不使用过剩的项目中运行良好,但我想尝试过剩。
这是相关的代码:
我不明白为什么 ClipCursor 不起作用:/ 非常感谢任何帮助!
c++ - glutBitmapString/glutStrokeString 似乎需要 const unsigned char* - 字符串不起作用
Ubuntu 11.04、G++、freeglut 和 GLUT。
我完全不明白这一点。这是我得到的错误:
如果我尝试 glutBitmapString:
这是相关的代码(我认为)。
这个答案告诉我它应该可以工作,但事实并非如此。
给不想跳的人的报价:
(另外,我尝试在其中留下一个直接字符串,如“要渲染的文本”。没有骰子。)
我很困惑。据我所知,这是我关于 SO 的第一个问题,如果没有很好地放在一起,请道歉。我会提供任何我能提供的额外信息。
c++ - 接受 Glut 的键盘输入
我正在使用 Freeglut 设计一些基本游戏。但是,我在键盘输入方面遇到了一些问题。
在我之前制作的一些游戏中,我做过这样的事情:(伪代码)
当我想检查是否按下了某个键时,我检查了wkey.isPressed()
. 但是,这引起了问题。例如,Esc 键应该暂停游戏,然后从暂停屏幕按 Esc 应该将用户带到主菜单。然而,按下 Esc 直接将用户带到主菜单,因为用户没有在主循环的那个刻度中释放退出键。
为避免此类问题,使用 Freeglut 采用(和使用)键盘输入的最佳方式是什么?
编辑:顺便说一下,这是 C++
c++ - 如何在我的 OpenGL 应用程序中实现准确(但可变)的 FPS 限制/上限?
我目前正在开发一个 OpenGL 应用程序,以向用户显示一些 3D 球体,他们可以旋转、移动等。话虽如此,这里的复杂性并不多,因此应用程序的运行速度相当高帧率(〜500 FPS)。
显然,这太过分了——即使 120 也足够了,但我的问题是,以全状态运行应用程序会消耗我的 CPU,导致过热、功耗等。我想要做的是能够让用户设置了 FPS 上限,以便在不需要时不会过度使用 CPU。
我正在使用 freeglut 和 C++,并且已经设置了动画/事件处理以使用计时器(使用glutTimerFunc
)。但是glutTimerFunc
,只允许设置整数毫秒数 - 所以如果我想要 120 FPS,我能得到的最接近的是(int)1000/120 = 8 ms
分辨率,相当于 125 FPS(我知道这是一个可以忽略不计的数量,但我仍然只想放如果我知道系统可以更快地渲染,则在 FPS 限制中准确地获得该 FPS)。
此外,使用glutTimerFunc
来限制 FPS 永远不会始终如一地工作。假设我将我的应用程序限制为 100 FPS,它通常永远不会高于 90-95 FPS。同样,我试图计算出渲染/计算之间的时间差,但它总是超出限制 5-10 FPS(可能是计时器分辨率)。
我想这里最好的比较将是一个游戏(例如半条命2) - 你设置你的FPS上限,它总是达到那个确切的数量。我知道我可以在渲染每一帧之前和之后测量时间增量,然后循环直到我需要绘制下一帧,但这并不能解决我的 100% CPU 使用率问题,也不能解决时间分辨率问题。
有什么方法可以在我的应用程序中实现有效的、跨平台的、可变帧速率限制器/上限?或者,以另一种方式,是否有任何跨平台(和开源)库可以实现高分辨率计时器和睡眠功能?
编辑:我希望找到一个不依赖最终用户启用 VSync 的解决方案,因为我将让他们指定 FPS 上限。
编辑#2:对于所有推荐 SDL的人(我最终将我的应用程序移植到 SDLglutTimerFunc
),使用该函数触发抽奖或SDL_Delay
在抽奖之间等待有什么区别?每个文档都提到了相同的警告,但我不确定一个是否比另一个效率更高或更低。
编辑#3:基本上,我试图弄清楚是否有(简单的方法)在我的应用程序中实现准确的 FPS 限制器(再次,如半条命 2)。如果这不可能,我很可能会切换到 SDL(对我来说,使用延迟函数而不是每毫秒glutTimerFunc
回调渲染函数更有意义)。x
opengl - Fedora 15 上的 OpenGL
我正在尝试在 OpenGL 中编程。
于是写了一个测试程序调用t_gl1.cpp
我成功地构建了它
$ g++ t_gl1.cpp -lglut -lGL -lGLU -o t_gl1
没有任何错误。
但是,如果我尝试运行它,我得到了
freeglut (./t_gl1): ERROR: Internal error in function fgOpenWindow X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 4 (X_DestroyWindow) Resource id in failed request: 0x0 Serial number of failed request: 26输出流中的当前序列号:29
有谁知道发生了什么?
这是代码,在 Windows 和 Mac 上测试过,没问题。但无法让它在 Fedora 或 Ubuntu 上运行
visual-studio - VS 2010 不需要 opengl32.dll
代码如下:
我下载了 freeglutcopy all files in include/GL folder to C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl
和copy all files in lib folder to C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib
. 和copy freeglut.dll to C:\windows\system32
然后在 VS 2010 中,我将 freeglut.lib 添加到 VS 2010(附加依赖库)。它运作良好。
我打算在window 7中使用Eclipse构建项目并根据这个设置eclipse配置Eclipse
但是,如果我只是添加链接库freeglut
,它就不起作用。我必须添加freeglut
opengl32
和glu32
一起使程序运行。
问题是为什么在 VS 2010 中我只需要freeglut
但在 eclipse 中我需要显式添加这三个库?
非常感谢!