FLTK,NUKE 的窗口工具包

D2 高级软件开发工程师 Bill Spitzak (FLTK 的创建者,并获得授权将其开源) 表示:“FLTK 是为 NUKE 创建的”。FLTK (Fast Light Toolkit,读作 “fulltick”) 是一种 C++ 图形用户界面工具包,适用于 X11、Windows 或 Mac OS X 上的 OpenGL。FLUID (Fast Light User Interface Designer) 是一款 FLTK 工具,用于以图形方式设计界面。“FLTK 1.1 版是官方版本,但不是由我维护”,Spitzak 指出。他继续说:“由 Michael Sweet 负责维护,他为 Easy Software Products 工作,这家公司生产 CUPS。Matthias Melcher,一位前员工,离开 D2 后完成了 FLTK 的 Windows 移植,同样的人也做了 Mac OS X 的移植。 ILM 和索尼大量使用 FLTK。”

NUKE 的第一个版本使用 Forms on GL 作为其 GUI,但 D2 希望更新 NUKE 以支持 OpenGL。Forms 不支持 OpenGL,并且 D2 无法访问其源代码。使用 OpenGL 编写所有控件太慢,因此 FLTK 也使用了 X。D2 的 FLTK 最初只支持 IRIX 机器,但大约在那个时候 Linux 出现了,并且很快添加了对 Linux 的支持。 这有助于将 NUKE 带到 Linux 上。

Spitzak 创建了一个新的 FLTK 2.0 版本,该版本在内部使用,但他没有时间完成它。它仅可从 SourceForge CVS 获得。 改进包括:1) 完全改变了菜单和浏览器,其中所有项目都是控件。 2) 样式——全局外观更改和用于加载 KDE 主题的插件。他还想添加 Gnome 主题。 3) 没有解释器。 Motif 变得如此庞大的主要原因是解析文本文件,使其成为解释器。 4) 重绘以避免在调整大小时闪烁。 5) 剪贴板与选择分离。 6) 使用 X 协议进行拖放。 7) XFT 反锯齿字体。 在 2.0 中,样式结构和菜单是重大更改。 Spitzak 指出,许多 2.0 的改进都已引入到 1.1 版中。 他尚未创建的功能是指向打印或 OpenGL 中绘制的间接指针。

“字体太糟糕了”,Spitzak 指出

我们为什么要考虑使用哪种字体? 为什么不一直使用 UTF-8? 而且,如果字体选择中没有某个字符,为什么系统不会自动找到另一种包含该字符的字体? 另一个问题是,在 Microsoft Windows 中,用户可能不希望窗口在单击时弹出,但 Windows 不允许你这样做。 尝试使用子窗口是一种变通方法,因为作为独立的窗口它们会闪烁。 如果提升子窗口没有提升父窗口,这可能会起作用。 子窗口问题使重叠窗口毫无用处。

“我想用一些更简单的方法来绘制图形来替换 X”,Spitzak 说。“OpenGL 不能只是绘制一些东西。 要绘制一次东西,需要设置大量的纹理。 而且,OpenGL 不注意 X 窗口的裁剪。 UI 一致性被过分宣传了。 工具包使程序看起来太相似,没有品牌标识。”

© . All rights reserved.