问题标签 [sdl-ttf]

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 回答
1312 浏览

opengl - sdl ttf_rendertext_blended 随机失败

编辑:即使问题仍然存在,我也无法足够频繁地重现它以更仔细地检查它。在问题末尾查看更多信息。


我开始开发游戏,目前正在为它编写基本库。我在 Linux Mint 13 (Maya) 上使用 D 编程语言和 SDL-2 和 OpenGL 3(使用 Derelict3 绑定)。编译器是 DMD64 D Compiler v2.067.1,我每次都用“rdmd”重建二进制文件。

为了呈现(更改)文本,我按需创建字形。我用于此的一段代码是:

问题是这完全随机失败。有时它可以毫无问题地工作。当它无法渲染一个字形时,有趣的是它会一遍又一遍地渲染相同的字形。这是捕获我抛出的异常时的示例:

(我正在将乐谱打印到屏幕上,除了那几个数字外,其他数字都显示得很好)。TTF_RenderText_Blend 无法渲染的数字因运行而异,并且如前所述,它有时会渲染所有数字。

一个细节是我在进入游戏循环之前渲染的静态字符串还没有渲染失败,只是我用来更改文本的单个字母。

我几乎没有任何想法,并且通过搜索网络没有找到与此问题相关的任何内容。非常感谢任何寻找解决方案的想法。


当前情况:我将编译器更新为 DMD 2.067.1,但问题仍然存在(目前使用的编译器:2.066.1、2.067.1)。整体 - 假设项目系列目前在 github 中:

https://github.com/mkoskim/games

文本字形渲染函数位于此文件中:

https://github.com/mkoskim/games/blob/master/engine/ext/font.d

...从这里使用它:

https://github.com/mkoskim/games/blob/master/engine/ext/gui/label.d

该问题主要/最常出现在吃豆人游戏中(尽管现在很少发生):

https://github.com/mkoskim/games/tree/master/testbench/pacman

如果您想尝试一下,首先请阅读(希望足够完整)安装说明:

https://github.com/mkoskim/games/blob/master/INSTALL

该项目是为 64 位 Linux Mint Maya 制作的,从构建的角度来看,它目前不是那么用户友好和便携。Pacman 是唯一(希望)在没有游戏控制器的情况下工作的演示。成功安装所需的库和工具后,您可以使用命令构建它:

0 投票
1 回答
189 浏览

c++ - SDL_TTF 在错误的地方渲染

我已经使用 SDL 进行了一段时间的开发,但我认为我需要另一个挑战。所以我决定使用 SDL_TTF 在屏幕上绘制一些文本。

我尝试在 0,0 处渲染文本,但它略低于屏幕边框。所以这意味着它没有在 0,0 处完全渲染。

此代码仅用于测试目的。

这是我当时用于测试的代码:

这就是它在屏幕上的样子: 字体绘制位置

我该如何解决这个问题?

马可

0 投票
1 回答
116 浏览

sdl - SDL_ttf 和使用函数

在 C++ 中的 SDL 编程中(我在 Ubuntu Linux 中编写代码),为了在屏幕上绘制文本,我创建了一个函数,它的第二个参数获取文本。它的类型是 char*。在主函数中,我应该将什么发送到上述函数的第二个参数。例如在这段代码中,我在编译时出错:(我想使用函数在屏幕上绘制文本(Player1 必须播放...))

0 投票
0 回答
167 浏览

c++ - C++ SDL OpenGL 获取访问冲突

我正在尝试使用 SDL_ttf 在 OpenGL 上呈现文本,但每次我尝试从 SDL_Surface 获取像素时,都会引发以下错误:

我在发生错误的地方放置了一个断点,SDL_Surface 指针没有被视为 NULL,并且所有数据(如宽度和高度)都是正确的。

这是代码:

0 投票
1 回答
1062 浏览

render - ttf 文本不会出现在 SDL 中

无论我尝试什么,我都无法使用 SDL_ttf 将我的文本加载到 SDL 2.0 中的纹理中。

这是我的 textToTexture 代码

然后这是我加载纹理和文本

然后这是我用来渲染它的代码

有谁知道我做错了什么?在此先感谢贾斯汀韦克。

0 投票
1 回答
196 浏览

c++ - SDL_TTF 绘图 int 到字符串内存泄漏?

好的,所以我一直在尝试显示一个能够更新并反映在屏幕上的整数。(例如显示鼠标位置的 x 和 y 坐标),它按照我想要的方式运行,但后来我打开了好的 ol'task manager,看到运行 7 分钟后我已经达到了 600mb 左右。当我注释掉我在屏幕上呈现的整数时(这样它们就不会绘制或更新)。该程序在 7 分钟后徘徊在 20mb 左右。我一直没有找到问题,谁能帮我弄清楚我哪里出错了?谢谢。

//文本管理器.h

//TextManager.cpp的一部分

0 投票
1 回答
878 浏览

c++ - 找不到 SDL.h 时

我正在尝试将 TTF 用于我想要开发的游戏,我对此很陌生,所以如果你能为我回答一个问题,我会非常感谢你:

在我正确地按照安装说明(至少我希望我这样做了)之后,我尝试编译我的项目,包括 TTF,但我无法编译,一个错误显示告诉我编译器找不到“SDL.h”,什么我应该做吗?如果有帮助,我正在使用代码块,这是我的编译器行:

希望你能回答我的问题。

0 投票
0 回答
187 浏览

c++ - 使用 TTF_RenderText_Blended 时出现内存泄漏

我正在使用 SDL_TTF 绘制文本并有一个内存泄漏,我已将其范围缩小到上述函数,特别是这一行: text_surface = TTF_RenderText_Blended(temp_font, text.get_string().c_str(), text_colour);

在opengl中使用表面后,我在SDL_FreeSurface再次运行上述函数之前调用了它,但它仍然在泄漏。

0 投票
2 回答
5209 浏览

cmake - 如何检查 CMakeLists.txt 中的 SDL2_ttf?

我目前正在使用 SDL2-ttf 库编写一个 SDL2 程序,并想在 CMakeLists.txt 中添加一个检查。我怎么做?

我正在使用 CMake 3.1。

0 投票
2 回答
29275 浏览

fonts - 如何使用 SDL2 高效地渲染字体和文本?

在这里看到这篇关于使用 SDL_ttf 在游戏中渲染文本的帖子。然而,这种方法需要在每一帧调用 SDL_CreateTextureFromSurface() 以及 SDL_FreeSurface() 和 SDL_DestroyTexture()。

每帧创建纹理(可能随后必须将它们发送到 GPU)是否会对我的性能产生重大影响?

仅使用 SDL_ttf 用我的整个渲染字符集创建纹理然后我自己从那里逐个字符地进行 blit 会更明智吗?

编辑:我希望仅以美国英语(基本 ASCII)呈现简单的等宽字体。