问题标签 [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.

0 投票
8 回答
15424 浏览

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

是否可以删除控制台窗口?

0 投票
3 回答
2952 浏览

c++ - 如何配置 freeglut 以使用 Code::Blocks

我想知道如何配置 freeglut 以使用 Code::Blocks IDE 和 minGW 编译器。我对 Code::Blocks 没有太多经验,而且我已经尝试过 glut 和 freeglut 多年了。任何帮助将不胜感激,包括教程等。

0 投票
1 回答
6101 浏览

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 the

LD_RUN_PATH' environment variable during linking
- use the


有关更多信息,请参阅有关共享库的任何操作系统文档,例如 ld(1) 和 ld.so(8) 手册页。

0 投票
1 回答
873 浏览

windows - 如何在 Windows 上使用 freeglut 制作 Haskell GLUT?

如何使用 freeglut 而不是 windows 上的原始 GLUT 进行 Haskell GLUT 绑定?

0 投票
1 回答
1147 浏览

c++ - 试图将光标剪辑到我的窗口不起作用?

我试图让窗口光标停留在我的窗口内。我正在使用 freeglut 和 C++ 到目前为止,一切都运行良好,除了我尝试使用 ClipCursor 将光标锁定在我的窗口中的部分之外,它可以自由移动,就像甚至没有调用命令一样。它在我拥有的一个根本不使用过剩的项目中运行良好,但我想尝试过剩。

这是相关的代码:

我不明白为什么 ClipCursor 不起作用:/ 非常感谢任何帮助!

0 投票
1 回答
5028 浏览

c++ - glutBitmapString/glutStrokeString 似乎需要 const unsigned char* - 字符串不起作用

Ubuntu 11.04、G++、freeglut 和 GLUT。

我完全不明白这一点。这是我得到的错误:

如果我尝试 glutBitmapString:

这是相关的代码(我认为)。

这个答案告诉我它应该可以工作,但事实并非如此。

给不想跳的人的报价:

(另外,我尝试在其中留下一个直接字符串,如“要渲染的文本”。没有骰子。)

我很困惑。据我所知,这是我关于 SO 的第一个问题,如果没有很好地放在一起,请道歉。我会提供任何我能提供的额外信息。

0 投票
1 回答
2660 浏览

c++ - 接受 Glut 的键盘输入

我正在使用 Freeglut 设计一些基本游戏。但是,我在键盘输入方面遇到了一些问题。

在我之前制作的一些游戏中,我做过这样的事情:(伪代码)

当我想检查是否按下了某个键时,我检查了wkey.isPressed(). 但是,这引起了问题。例如,Esc 键应该暂停游戏,然后从暂停屏幕按 Esc 应该将用户带到主菜单。然而,按下 Esc 直接将用户带到主菜单,因为用户没有在主循环的那个刻度中释放退出键。

为避免此类问题,使用 Freeglut 采用(和使用)键盘输入的最佳方式是什么?

编辑:顺便说一下,这是 C++

0 投票
6 回答
8111 浏览

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

0 投票
3 回答
2977 浏览

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 上运行

0 投票
1 回答
401 浏览

visual-studio - VS 2010 不需要 opengl32.dll

代码如下:

我下载了 freeglutcopy all files in include/GL folder to C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\glcopy 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 opengl32glu32一起使程序运行。

问题是为什么在 VS 2010 中我只需要freeglut但在 eclipse 中我需要显式添加这三个库?

非常感谢!