java - 如何减少从 Uniscribe ScriptItemize 返回的运行次数

标签 java c windows unicode swt

我正在使用 Java SWT StyledText 控件在 Windows 上显示一些文本。然而,性能很糟糕,因为我显示的文本有很多逗号。这是我尝试显示的一行文本的示例:

1,2,3,4,5,1,

Java SWT 代码调用标准 Windows Uniscribe ScriptItemize function将此文本拆分为多个运行并返回 12 个运行!每个角色都有自己的特色!这会降低 SWT 绘图代码的性能,使其必须逐一绘制字符。

我已经筹集了Eclipse bug 352927来涵盖这个问题。有没有人有使用 Uniscribe 的经验,可以评论一下如何避免这些字符运行?

ScriptItemize 方法的设置来自 SCRIPT_CONTROL 结构。但是,那 SWT 使用的此结构的 defn 缺少 fMergeNeutralItems 字段。这 对我来说听起来很有希望,但我还没有在网上找到任何明确的东西 关于此字段是否会将我的逗号返回的运行合并在一起 沉重的文字。

最佳答案

在 SCRIPT_CONTROL 结构中设置 fMergeNeutralItems 可以修复此问题。有关更多详细信息,请参阅 SWT bugzilla 错误。

关于java - 如何减少从 Uniscribe ScriptItemize 返回的运行次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6822170/

相关文章:

java - Jersey 2 多部分 pojo 始终为空

java - 查找表快速 Sigmoidal 函数

Java - 在字符串中查找并从右侧开始

java - 如何将顶级类导出到Jar中?

python - 为什么我不能导入 nltk?

linux - 使用 Jenkins 部署到 Linux 服务器,然后从 Windows 服务器运行 selenium 测试

c - 在客户端使用 select(..)

c - __insn_seqb() 和 __insn_ctz 是什么意思?

c - 循环打印数组内容时程序挂起

python - 从子目录导入模块的案例 - 为什么它有效?