使用SDL_ttf 2

时间:2016-12-19 12:52:59

标签: sdl-2 sdl-ttf

我想用SDL和SDL_ttf实现一个简单的输入框。就像浏览器中的地址栏一样。

我猜测用SDL_ttf检测鼠标选择的最简单,最有效的方法是什么。

假设框中显示的文字如下:

+--------+
| abcdef |
+--------+

用户点击' c'并且' d'然后它将鼠标向左拖动几个像素。现在我需要检测它已经选择了' c'字符。

SDL_ttf库有几个函数来确定文本的度量标准。您可以使用TTF_SizeUTF8计算整个文字大小,还可以使用TTF_GlyphMetrics确定单个字符的字形大小。

粗略的想法是创建一个特殊的数组,其中包含各自大小的各个字符,以确定它们在框中的位置。

您对如何轻松实施这一点有更好的想法吗?

1 个答案:

答案 0 :(得分:0)

即时渲染模式下的文本选择应从零开始进行,这是很多工作要做。许多即时gui库(例如imgui)都使用了传说中的stb_textedit,您可以在这里找到它 https://github.com/nothings/stb/blob/master/stb_textedit.h