- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个允许用户输入文本的编辑框。我已经为此工作了一段时间,并且抛出了不同的想法。最终,我认为可以提供最佳性能的方法是将 .ttf 中的所有字符(我使用 SDL 来管理 openGL 的事件、窗口、文本和图像)加载到它们自己的表面上,然后渲染它们表面到纹理上一次。然后每一帧,我可以在适当的位置绑定(bind)适当的纹理。
但是,现在我正在考虑如何访问这些字形。我有限的 bkg 会说这样的话:
struct CharTextures {
char glpyh;
GLuint TextureID;
int Width;
int Height;
CharTextures* Next;
}
//Code
CharTexture* FindGlyph(char Foo) {
CharTextures* Poo = _FirstOne;
while( Poo != NULL ) {
if( Foo == Poo->glyph ) {
return Poo;
}
Poo = Poo->Next;
}
return NULL;
}
我知道这会奏效。但是,每次都遍历整个列表,看起来很浪费。我的脚本经验教会了我一些 lua,他们在 lua 中有表,允许各种类型的无序索引。我如何在 C++ 中模仿它,而不是这次迭代,我可以做类似的事情:
CharTexture* FindGlyph(char Foo) {
return PooPointers[Foo]; //somehow use the character as a key to get pointer to glyph without iteration
}
我想我可以尝试转换为数值,但我不知道如何将 char 转换为 UTF8 值以及是否可以将它们用作键。我可以转换为 ascii,但是这样可以处理我希望能够输入的所有字符吗?我试图让这个应用程序在 mac 和 windows 上运行,但我不确定机器的细节。我已经阅读了不同格式的差异(ascii v unicode v utf8 v utf16 等)......我知道它与位宽和字节顺序有关,但我对平台之间的接口(interface)差异和所述含义的了解相对较少我的代码的字节顺序。
谢谢
最佳答案
你可能想要的是
std::map<char,CharTexture*> PooPointers;
使用数组访问运算符也会在后台使用 map 中的一些搜索,但会进行优化。
关于c++ - 用于通过 char 快速访问 glpyh 纹理的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17514159/
我正在尝试创建一个允许用户输入文本的编辑框。我已经为此工作了一段时间,并且抛出了不同的想法。最终,我认为可以提供最佳性能的方法是将 .ttf 中的所有字符(我使用 SDL 来管理 openGL 的事件
我在尝试使用 Bokeh 绘制不同的 excel 和 csv 数据时遇到错误。 教程中的示例有效,但当我在 pandas 中使用 read_csv 或 read_excel 制作自己的数据框时,则无效
我是一名优秀的程序员,十分优秀!