gpt4 book ai didi

macos - Haskell 中 OpenGL+GLUT 的 Hello World 不适用于 OSX Lion

转载 作者:行者123 更新时间:2023-12-04 04:42:29 24 4
gpt4 key购买 nike

以下程序:

import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT
main = do
(progname, _) <- getArgsAndInitialize
createWindow "Hello World"
mainLoop

用命令编译:
ghc -package GLUT HelloWorld.hs -o HelloWorld

this 所述教程无法在 OSX Lion 上执行,显示以下错误消息:
2013-09-07 20:31:20.372 aff[8561:60b] GLUT Warning: The following is a new check for GLUT 3.0; update your code.
2013-09-07 20:31:20.373 aff[8561:60b] GLUT Fatal Error: redisplay needed for window 1, but no display callback.

最佳答案

首先,我不是在 OS X 上,无法重现错误(也没有关于此事的警告)。此外,我可能正在使用所有库的不同版本。请注意,操作系统之间的这些差异(不幸的是)并不少见。运行程序时,我得到了它下面像素的副本,就像教程作者似乎期望的那样。

错误消息指出

redisplay needed for window 1, but no display callback

因此我的猜测是您需要注册 displayCallback .因此,根据教程的下一部分,我添加了
displayCallback $= clear [ ColorBuffer ]

在主循环之前。然而它并没有修复像素携带行为。为了解决这个问题,我将其更改为
displayCallback $= (clear [ColorBuffer] >> swapBuffers)

这也会更新屏幕上的缓冲区。

附言请注意,该教程是 2006 年的,它可能有点腐烂了。此外,OpenGL 2.1 是当时最新版本的 OpenGL。

关于macos - Haskell 中 OpenGL+GLUT 的 Hello World 不适用于 OSX Lion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18678944/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com