问题标签 [ftgl]

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.

0 投票
2 回答
2545 浏览

opengl - 在 OpenGL + FTGL 中绘制带阴影的文本

我正在使用 FTGL 库在 OpenGL 中绘制文本,一切正常,但是我想为文本添加阴影。我尝试的是用黑色绘制相同的文本,然后在上面用正常颜色绘制文本(伪代码):

但是我必须将文本绘制 5 次,它仍然看起来不太好。

我想在屏幕截图上得到类似的东西

带阴影的文字

0 投票
2 回答
1565 浏览

opengl - OpenGL: using FTGL and textures

When using FTGL texture fonts, everything works perfectly until I use another texture somewhere else in my program. Then the original texture of the font seems to be lost, and as a consequence, the characters are drawn as black dots. After playing with the various parameters of glTexEnvf, I think the problem is simply that the font doesn't load its default texture back when writing.

Is there a way to access this default texture and bind it before writing?

0 投票
2 回答
1503 浏览

c++ - 寻找例如使用 FTGL 和 Qt (OpenGL)

我需要做一个简单的应用程序来渲染 3d 字体到图像。推荐的库是 FTGL,我如何将它与 3dQt 结合使用?

0 投票
1 回答
3808 浏览

mingw - 无法使用 MinGW 链接 FreeType 2 库;ld.exe:找不到 -lfreetype

我在 Windows 7 中使用 MinGW 进行编译,使用 Code::Blocks 作为 IDE。一切都应该是最新的。我注意到有许多类似的问题,但那些似乎是关于链接动态库,而不是编译静态库。

我正在尝试使用 FTGL 来在 OpenGL 中使用文本。FTGL 需要安装 FreeType 2。我下载了 FreeType 源代码,并按照 INSTALL.GNU 说明使用 mingw32-make.exe 从 CMD.EXE 构建静态库。

如说明所示,我从 FreeType 安装的基本目录运行 mingw32-make。控制台输出符合预期:

看到平台和编译器都正确,我再次运行 make 命令:

这在目录 D:\freetype-2.4.4\objs 中生成了文件 freetype.a。

然后我按照 Code::Blocks 中的步骤将库链接到项目,添加了一段代码示例来测试 FTGL,并尝试构建它。

我有两个错误,这取决于我如何尝试做事。

如果我为链接器提供正确的目录 (-LD:\freetype-2.4.4\objs),并使用 -lfreetype 进行链接,那么一切都很好,直到 ld.exe 退出并显示标题中的错误,找不到 -lfreetype。

如果我没有提供正确的目录,我会得到同样的错误。找不到图书馆。

如果我将文件名 freetype.a 更改为 libfreetype.a,并提供正确的目录,则会得到几个未定义的引用。

如果我提供了错误的目录,我会再次收到上一个错误,即找不到库。

我觉得奇怪的是,当按照安装文件中的说明进行操作时,make 会生成一个名称不以 lib 开头的库。我检查了所有其他 .a 文件都以 lib- 开头。似乎链接器正在寻找文件 libfreetype.a。那么为什么 make 会创建 freetype.a 呢?这是对我用来编译程序的库使用相同的编译器。

无论如何,不​​知道从这里去哪里。我曾想过使用作为 MinGW 包一部分的 MSys shell,但我对它没有太多经验,并且 INSTALL.UNIX 中的说明假设您知道更明显的命令。他们提到使用 ./configure [options],但没有提及哪些选项可能是可取的。对于对系统有更多了解的人来说可能很明显,但 MSys 是我第一次使用 sh。

对于此事,我将不胜感激。

0 投票
1 回答
4528 浏览

c++ - 如何在 Windows 上安装 FTGL 库?

我想使用需要 FTGL 库的 haskell FTGL 绑定。Windows 似乎没有二进制文件,我找不到任何关于如何编译它的有用信息。让它工作的最简单方法是什么?

0 投票
1 回答
4773 浏览

opengl - 如何渲染 GL_ALPHA 纹理?

我正在尝试使用 FTGL 字体库来创建纹理映射字体并将其渲染到屏幕上。该库以GL_ALPHA格式创建一个纹理来保存字体字形,然后当您告诉它渲染一个字符串时,它会glBegin(GL_QUADS)按照您的期望进行并渲染每个字形。

唯一的问题是,我没有收到任何文本。在一种情况下,我得到纯黑框而不是文本,在另一种情况下,我什么也得不到。我已经在 gDEBugger 下运行了代码,以确保纹理被正确上传和设置,并且一切看起来都正确,但我仍然没有看到任何输出。

我已经尝试了明显的东西。事先调用glColor以尝试设置文本颜色没有任何作用。也没有尝试确保 alpha 混合能够正常工作,如下所示:

有谁知道我缺少什么,以便GL_ALPHA正确显示从纹理到屏幕的渲染?

0 投票
1 回答
5041 浏览

c++ - FTGL 未定义的引用无处不在?

到目前为止,我一直在尝试使用这个库在 OpenGL 应用程序上输出文本,我得到了一个预编译的库,所以我更容易上手,所以代码如下:

所以如果我用这个链接器编译它:
-lmingw32 -lSDLmain -lSDL -lopengl32 -lglu32 -lSDL_image -lm -lgdi32 -lsdl_mixer -lSDL_ttf

我得到这个错误:

现在这应该是因为如果我包含剩下的 2 个链接器,我忘了把链接器放在正确的 IDK 上:

-lfreetype2 -lftgl

我得到了 50 个错误我不会把它们放在这里我不想弄坏你们的眼睛。

那么我能做些什么来解决这个问题呢?

IDE:代码块操作系统:Windows

编辑:

所以在更改订单后我仍然会收到错误

错误:

编辑:

在做了casualcoder所说的错误之后,现在似乎它不会为你的答案工作

最后更新

正确的顺序是:

-lmingw32 -lSDLmain -lSDL -lSDL_image -lm -lgdi32 -lsdl_mixer -lSDL_ttf -lftgl -lfreetype2 -lopengl32 -lglu32

0 投票
3 回答
3344 浏览

c++ - 使用 MinGW 编译并安装 FTGL 库以在 OpenGL 中渲染文本

语境

我正在使用 SDL 和 OpenGL 制作游戏引擎。我正在尝试找到使用精美的真字体将文本输出到屏幕的最佳方式,但我遇到了 FTGL。(如果您有更好/更简单的解决方案,请随时分享。)

编译 FTGL

它需要 FreeType2 才能工作,所以我得到了它,编译它(使用 Code::Block),然后我也使用 Code::Block 编译了 FTGL 库。

我正在使用带有 CDT 插件的 Eclipse Indigo。我不确定要采用哪个库,因为有一个.lib和一个.dll文件。我都试过了,但这似乎根本没有改变我的问题,目前就在这条线上:

错误是:

如果我使用另一个 FTfont 子类,例如 FTPixmapFont 构造函数,它不会改变。

这是我尝试过的链接器标志:

我正在使用 Eclipse 和 MinGW。

我已经复制粘贴了

  • src/FTGL文件夹和
  • Includefreetype 库文件夹的内容

includeMinGW 目录的文件夹。

freetype2(有freetype.lib,freetype248_D.libfreetype-bcc.lib, 不确定在项目属性中链接)和 ftgl ( ftgl.dll, ftgl_D.lib, ftgl_static_D.lib) lib 文件到 MinGW 目录的相应 lib 文件夹中。

如果我单击有错误的行并使用 Open Declaration 选项,eclipse 会将我带到FTTextureFontFTTextureFont(char const*)定义的头文件和定义的MakeGlyph函数。

如果您想查看更多内容或作为参考,您可以在GetRandomGame 项目页面上找到完整代码。

这是编译器版本


编辑

类似的问题:FTGL undefined references everywere?,但是那个问题的答案并没有解决我的问题,我仍然得到这两个错误。


编辑 2

当我第一次尝试使用 FTGL 并出现两个错误时,我正在使用 MSVC 进行编译。

我最终使用 code::block 来导入两个库提供的 MSVC 项目。两个错误之一得到了解决!但是,我还是得到了这个:


编辑 3

我尝试用 freetype 2.3.4 编译 FTGL 2.1.2,但这并没有解决我的问题。我已经尝试过使用 freetype 2.3.4 的 FTGL 2.1.3 rc5,同样的事情。可以肯定的是,我也尝试过 freetype 2.3.5 和 2.4.8(第一次已经是 2.4.8)。

我已经尝试将MakeGlyph代码移动到头文件中,但这并没有解决问题。

这是我找到的一些有用的链接,但它们还没有解决问题。


编辑 4

当我删除ftgl链接器标志时,编译器会抱怨这个:

而且我仍然得到纯虚拟方法MakeGlyph错误。

使用ftgl链接器标志,我得到的唯一错误是“必须实现继承的纯虚拟方法 MakeGlyph”。编译器可以很好地构建项目(但在启动时崩溃):

所以我认为 FTGL 库没有正确编译,因为它应该FTPixmapFont.cpp定义纯虚拟方法MakeGlyph。我对 C++ 中的所有这些 lib 东西有点陌生,我可能在构建 lib 时做错了什么。


编辑 5

我已经阅读并在一个示例中看到我需要一个config.h文件,因此我添加了一个正确配置的config.h文件,该文件随 FTGL 一起提供。

然后我在目录中提供的示例中找到了以下代码,ftgl并将其添加到我的Font课程中。

即使我MakeGlyph在那里定义,Eclipse 也会抱怨未实现的纯虚拟方法FTFont::MakeGlyph


编辑 6

我尝试使用 gdb 从命令行进行调试,它告诉我找不到 freetype6.dll。我现在正在努力寻找解决方案。

0 投票
1 回答
788 浏览

opengl - 为什么设置 glRasterPos 会使我的 ftgl 文本消失?

我正在为 opengl 中的字体使用 FTGL 库而苦苦挣扎。例如,我还没有弄清楚如何将文本放在屏幕左下角以外的某个位置。我目前正在使用像素图字体,并开始尝试使用glRasterPos.

以下代码“有效”,因为它将左下角的文本显示为白色:

在以下示例中,文本根本不显示:

我很困惑!应该没有什么不同,那为什么字体不渲染呢?

0 投票
2 回答
1311 浏览

c++ - 使用 new 运算符创建对象导致未解决的外部符号错误 C++ FTGL

我在我的 Microsoft Visual Studio 2012 C++ 项目中使用 FTGL 库。我终于设法将它正确链接到我的项目,因为我可以使用以下方法正确渲染字体:

在我尝试使用运算符创建对象之前,一切似乎都很好new

上面的代码会产生这个错误:

我完全不知道这可能是什么原因。我真的很感激任何答案。

谢谢!