【问题标题】:Set OpenGL window hints in Gloss在 Gloss 中设置 OpenGL 窗口提示
【发布时间】:2016-05-29 20:34:07
【问题描述】:

我正在研究gloss 库,作为任何理智的人,我对缺乏抗锯齿感到非常恼火。我知道一些有助于启用抗锯齿的 OpenGL 窗口提示,尤其是 GL.lineSmooth 提示。然而,通过 Gloss haddock 文档,似乎没有任何明显的方法来设置 OpenGL 提示。那么我将如何继续这样做呢?

【问题讨论】:

  • 您可以看看gl 库 - 据说它是一组完整 OpenGL 原始绑定。
  • 是的,我知道,但不知道如何更改 Gloss OpenGL 初始化代码。

标签: haskell opengl gloss


【解决方案1】:

这是我能想到的最好的……

gloss通过class Backend类型类抽象图形后端,定义了两个实例:

instance Backend GLFWState
instance Backend GLUTState

在编译时通过WITHGLUTWITHGLFW CPP 宏控制使用哪一个。

这解释了为什么 Gloss 不提供自定义 GL 设置的功能 - 就后端而言,它是抽象的。

GLUT后端的初始化代码在Graphics/Gloss/Internals/Interface/Backend/GLUT.hs的initializeGLUT函数中

也许您可以修改该例程以按照您希望获得自定义版本的光泽度的方式设置 GLUT。

【讨论】:

  • 嘿。这里我们有一个库,它抽象出另外两个库,其唯一目的是抽象出其他几个库。
  • 是的,最简单的选择似乎是修改initialize函数并手动编译gloss。我回家后试试看。