问题标签 [glfw]
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.
windows-7 - 无法在 Windows 7 上使用 Code::Blocks 启动 GLFW
相信我,我已经寻找答案,但我似乎无法解决这个问题:
当我尝试使用CodeBlocks 10.05启动GLFW 2.7项目时,指向安装它的目录时总是出错: (C:\glfw-2.7)
此目录似乎有效,但此向导无法找到以下 GLFW 库文件:glfw 在其中。(还尝试在 lin 前面加上 .a 和 .lib)
我尝试将 gl.h 从 ./include/GL 文件夹复制到“include”和“glfw-2.7”根文件夹中。我还尝试将文件从 lib/win32 复制到父“lib”文件夹中。不管怎样,这个所谓的“向导”都找不到它需要的文件。
有谁知道我还能尝试什么?谢谢!
opengl - 使用 glew 和 glfw 的 opengl 的 cmake 标志
我有这个简单的代码:
在我的 CmakeLists.txt 中:
运行“cmake”。不会产生任何错误,但运行 make 会说:
在跑步的时候:
成功编译代码没有错误。如何使 cmake 使用我的代码运行?
另外,如果我将这些行添加到主函数:
即使使用相同的标志运行 gcc 也会产生错误:
我正在运行基于 kubuntu 10.04、cmake v2.8、libglfw-dev、libglfw2、libglew1.5、libglew1.5-dev、glew-utils 的 linux mint。
我是 cmake、glew 和 glfw 的新手。谢谢你们的帮助!
干杯!
磷
c++ - 检查蛇是否在游戏中撞到自己
我正在使用 OpenGL 和 GLFW 用 C++ 编写 Snake。我正在尝试实现一个游戏退出的功能,当蛇头撞到它的身体时。这是我编写的 Snake 类的 move() 和 CrashCheck() 函数。x_pos 是一个浮点数组,存储了蛇身的一段 x_coordinate。y_pos 与 y_coordinate 相同。length 是蛇的身体节段数,当蛇吃东西时会增加(尚未实现)。x_speed 和 y_speed 存储沿轴的段的速度。蛇永远不能同时沿着两个轴移动;还,float MAX_S = 0.00075;
. 我也包含了我的 draw() 函数。而Fix_Snake_x 和Fix_Snake_y 是重新对齐蛇的片段的函数(因为它们不断分离并对游戏造成严重破坏)。我知道这是纠正问题的愚蠢方法,因此如果您可以在 move() 函数中提出修复建议,那将很有帮助。
编辑:新的移动功能
造成一些问题。蛇打破它有太多的同时转弯。只有前两个块保持运动
linux - 在 Linux 上静态构建 glew 和 glfw
在我的项目目录中,我有:
- ./external/glew,已从源代码编译 glew(运行 make)
- ./external/glfw,其中 glfw 也是从源代码编译的(运行 make x11)
在我的 .c 源代码中:
我尝试使用 GCC 进行编译:
./external/glew/lib 是 libGLEW.a 所在的位置, ./external/glfw/lib/x11 是 libglfw.a 所在的位置。
它编译没有错误。但后来我尝试运行 ./test1 它给了我:
我如何静态编译 glew 和 glfw?
编辑 1感谢您的帮助。在 stackoverflow 和老 nabble 的一些人的帮助下,我设法写下静态链接 GLFW 和 GLEW 需要做的事情,并将其放在http://www.phacks.net/static-compile-glfw-and-glew /
linux - 静态编译glfw
我正在尝试使用 GCC 4.4.3 在 Linux Mint(基于 Ubuntu 10.04)上将 glfw 编译为静态链接。
在我的项目目录中,我得到了包含 glfw 2.7.1 源代码的“external/glfw”。我通过运行“make x11-install”编译它,它给出:
- /usr/local/include/GL/glfw.h
- /usr/local/lib/libglfw.a
- /usr/local/lib/pkgconfig/libglfw.pc
我还在 test.c 中得到了这个简单的代码:
我正在尝试将glfw编译为静态链接并使用带有标志的gcc编译代码:
它不会给我任何错误。但是当我尝试执行二进制文件时,它显示我未能调用 glfwOpenWindow。
有人能帮帮我吗?谢谢你们的时间!
干杯!
磷
编辑1:我认为问题在于链接过程而不是代码。因为如果我安装了 libglfw2 和 libglfw-dev(ubuntu 包),那么可执行文件运行得很好。我在这里想要的是静态链接glfw,而不是依赖发行包共享库来运行二进制文件。
根据 datenwolf 的建议编辑 2 ,我尝试使用 gdb 进行调试。我以前从未使用过 gdb,但我经常使用 perl 调试器。不知何故,他们有很多相似之处。我用-ggdb重新编译glfw和我的test.c。
与gdb一起流动表明我的代码进入了glfwOpenWindow(),它位于glfw源代码的“window.c”中。因为我是 gdb 的新手,所以我不知道如何评估表达式或获取变量的值。基于谷歌上的快速搜索,我只知道“whatis”来查看日期类型。但我认为我的代码在“window.c”中到达第 484 行时停止
现在我不确定为什么使用静态链接 glfw 认为我不在 OpenGL 3.2 及更高版本上,而安装了 libglfw2 它工作得很好?
谢谢你们的帮助!特别是约会狼!
编辑 3感谢您的帮助。在 stackoverflow 和老 nabble 的一些人的帮助下,我设法写下静态链接 GLFW 和 GLEW 需要做的事情,并将其放在http://www.phacks.net/static-compile-glfw-and-glew /
c++ - 使用 GLFW 渲染和 WinAPI 处理消息
我想使用 OpenGL 库 GLFW 来渲染窗口,但也想使用 WinAPi 创建控件和处理事件。有没有办法做到这一点?我尝试搜索(谷歌搜索)“使用 glfw 和 winapi”,但没有产生任何结果。我发现唯一符合我要求的页面就是这个,但该页面似乎已经过时,因为 GLFW_WINPAR 不存在。有什么方法可以做我想做的事,还是我必须使用“Vanilla”OpenGL。
opengl - Haskell OpenGL 无法在 Ubuntu 中打开
这个有点奇怪,但我还是从头说起:
据我所知,有 3 种方法可以在 Haskell 中打开 OpenGL 窗口:GLUT、GLFW 和 SDL。我根本不想使用 GLUT,因为它迫使你使用IORef
s 并且基本上只在IO
monad 中工作。所以我尝试了 GLFW 并在我的笔记本电脑上做了一个小东西,它使用 Xubuntu 和 XFCE 桌面系统。
现在我很高兴并将它复制到我的桌面,一个相当新安装的标准 Ubuntu 和 Unity,并且惊讶地什么也没看到。在笔记本电脑上运行良好的 GLFW 代码在打开窗口之前陷入了无限循环。
就在那时,我将其全部移植到了 SDL。相同的代码、相同的窗口和 SDL 崩溃
我已经检查了SDLgears,使用相同的方法打开一个窗口,它工作正常。与其他一些 3D 应用程序相同,并且可以正常启用 OpenGL。
让我感到困惑的是,它在 XUbuntu 下工作,但在 Ubuntu 上却不行。我在这里错过了什么吗?哦,如果有帮助,开窗功能:
c++ - 指向作为类成员的函数 - GLFW setKeycallback
我正在编写一个 GLFW 应用程序,其中我将函数调用包装到一个简单的类中。我在设置键回调时遇到问题。我的班级定义为:
执行函数为:
在 Visual Studio 2010 上编译以下代码会出现错误:
error C3867: 'GAME::events': function call missing argument list; use '&GAME::events' to create a pointer to member
使用&GAME::events
给出:
error C2664: 'glfwSetKeyCallback' : cannot convert parameter 1 from 'void (__thiscall GAME::* )(int,int)' to 'GLFWkeyfun' 1> There is no context in which this conversion is possible
c++ - OpenGL / GLFW 显得透明
使用 opengl 和 glfw 绘制一个简单的立方体时,立方体的面看起来是透明的。这是代码。使用箭头键旋转。我刚刚在我的程序中封装了一个类。使用 Visual C++ Ultimate 2010。