问题标签 [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++ - 使用 MinGW、freeglut 和 glew 编译简单的静态 OpenGL 4.0 程序
问题出在标题中,我将尝试在下面列出我已经尝试过的内容,依此类推。
首先,据我了解,为了在 Windows 上使用 OpenGL 4.0,您必须扩展或绕过默认的 Windows 库,因为它仅提供 OpenGL 1.1。
所以我们在C:/MinGW/
. 接下来我通过从项目站点下载tarball来设置 FreeGLUT 。通过根据指令运行生成文件并在命令中添加少量内容来提取和编译。--prefix
./configure
现在我有 freeglut in /c/Users/Owner/root/lib/
,/c/Users/Owner/root/include/
等等。接下来是 GLEW,据我所知,我的问题孩子。
从项目站点下载源存档(直接 1.7.0.zip 链接)。编译有点复杂,我目前的配方来自堆栈溢出问题“使用 mingw 在 Windows 上构建 glew ”。下面列出了一个缩写形式:
并且应该从/path/to/glew-1.7.0/
.
现在通过“完成”库的设置(假设没有错误......)编译我的简单程序是用这一行完成的。
现在稍微分解一下,并解释为什么我有各种“额外”的论点,并向您展示我已经遇到并解决了哪些错误和问题。
-DFREEGLUT_STATIC
并-lfreeglut_static
使用而不是正常使用,-lfreeglut
因为我们想要在这里进行静态构建。不这样做会导致与 freeglut 相关的链接器错误。-DGLEW_STATIC
出于同样的原因添加。-lwinmm
添加以修复链接器错误:freeglut_init.c:(.text+0x5d9): undefined reference to '_timeBeginPeriod@4'
.-lgdi32
添加以修复链接器错误:c:/Users/Owner/root//lib\libfreeglut_static.a(freeglut_init.o):freeglut_init.c:(.text+0x58c): undefined reference to '_GetDeviceCaps@8'
现在我被以下链接器错误难住了:
产生此错误 ( ) 的最小测试用例main.cpp
是。
想法?
c - 未定义对“GlewInit”的引用 - OpenGL
尝试制作可执行文件时出现此错误,代码编译正确,但是当我点击 make 命令时,我收到以下错误消息:
我正在运行Linux Mint 13,我认为这与我的makefile有关,我对它们了解不多,所以我一起破解了一个并在网上找到了一些代码:
我的代码:
c++ - 如何在 Windows 机器上构建或安装 freeglut
我下载了 freeglut。我正在阅读安装说明。我提取了所有文件。我看到一个名为 configure(和 configure.ac)的文件。我打开了 Visual Studio 命令提示符并将目录更改为
C:\DevStuff\OpenGL\freeglut-2.8.0
下一步是配置包
./configure
这看起来像一个 Linux 命令。我应该如何在 Windows 7 机器上完成这种构建?我有视觉工作室 2010 终极版。
更新
我找到了 VS2010 目录并成功执行了构建。我需要freeglut_static.lib
,这不是从这个版本中出来的。输出目录
..\..\lib\x86\Debug
仅包含一个 lib 文件 freeglut.lib。
我怀疑我需要makefile,但我真的不知道。OpenGL Superbible示例项目需要此库。在示例项目中,当我尝试运行它时出现编译错误:
linux - 在 Linux 上安装 Freeglut
我正在尝试在运行 Linux Mint 的计算机上安装 freeglut。我按照这个网站上的步骤操作:http: //freeglut.sourceforge.net/docs/install.php。当我make all
在 src 目录中执行此操作时,会出现以下错误:
fatal error: GL/gl.h
此错误由 ../include/GL/freeglut_std.h 给出。经检查,include/GL 目录确实没有任何 gl.h 文件。它也缺少 glu.h,freeglut_std.h 也尝试这样做#include
。我该怎么办?为什么 gl.h 和 glu.h 不见了?
c++ - OpenGL着色器拒绝链接
问题:
一直在努力让我的代码加载外部着色器,但它不起作用。无论我如何重写代码并再次尝试,我每次都会遇到相同的错误。
着色器编译但不会链接,我在这个函数中有什么做错了吗?顺便说一句,错误捕获块工作得很好。
我正在使用 freeglut、x64 windows 7 和 mingw(而且我没有使用 IDE)
用法:
在我的主循环中GLuint programId = loadShader("vertex.shader", "frag.shader");
,我启用了它glUseProgram();
[顶点着色器]
片段着色器
c++ - exit() 函数无法退出进程
我正在使用 FreeGLUT 在 Linux 中开发多线程 C++ 应用程序。奇怪的是,在我的一个线程中调用 exit() 会导致调用并完成 onexit() 回调,但无法退出我的程序。相反,根据 GDB,它挂在 GLUT 库中的 select() 调用中。
当我按下“q”时,我还有一个键盘回调退出。如果我在程序挂起时按“q”,GLUT 退出正常。
似乎没有人遇到类似的问题。文档说 exit() 应该关闭整个进程,而不仅仅是一个线程,所以不是这样。我难住了。你有什么想法?
编辑:我发现了问题。我错了退出处理程序已经完成。一个库函数调用正在等待一个在调用 exit() 时已经锁定的互斥锁。GLUT 只是利用了空闲时间。谢谢大家的回复。
c++ - 无法从 freeGlut 项目中获取标准输出
我有免费的 glut 项目,其中包含计算 voronoy 网格、初始化 freeglut 然后绘制网格的代码。
所以程序在控制台模式下工作,然后创建 freeglut 窗口。而且我还有一个单独的程序,它从连接到这个的标准输出管道中读取。我用这个参数创建过程
而且我还尝试了 MSDN 中的标准管道示例。
问题是程序没有从管道接收数据。我也试过 voronoy.exe > test.txt 在 cmd.exe 和 test.txt 仍然是空的。但是如果我在没有管道的情况下运行它 - 它工作正常,我可以在控制台中看到输出。
c++ - 在没有父窗口的情况下显示 Gtk::FileChooserDialog
我正在编写一个带有 OpenGL GUI 的应用程序。在 Windows 上,我GetOpenFilename
用来允许用户选择一个文件。
Gtk::FileChooserDialog
我尝试使用(遵循本教程)在 Linux for Gtk 上实现类似的功能。我试图保持 Windows 和 Linux 的函数签名相同,所以我将示例修改为如下所示:
主要区别在于我消除了该set_transient_for
位,因为我的主窗口不是由 Gtk 管理的(它是由 freeglut 创建的)。
问题:在我选择一个文件后,对话框就冻结了。我的应用程序继续运行,我可以处理选定的文件,只是冻结的对话框。
选择文件后如何关闭对话框?我试过dialog.hide()
了,但它似乎没有任何效果。我也试图在这个函数中包含 Gtk 特定的代码,而不是特定于int main()
平台的代码。
c++ - 带有 GLUT 的 OpenGL。不会画画?
理论上,这段代码应该绘制一个白色矩形。但我看到的只是一个黑色的空屏幕。怎么了?
glut - FreeGlut“glutMotionFunc”操作
我是过剩编程的新手。我只想创建一个窗口并显示鼠标的坐标(在窗口内)。当我按下鼠标按钮(在窗口内)并且光标在窗口外时,glutMotionFunc处于活动状态是正常的吗?如果不是我错在哪里?我在这里发布代码: