Blurry/flickering Electron 中的文本渲染

Blurry/flickering text rendering in Electron

在这一点上,我只能推测是 Electron(或其某些组件)造成了在 Atom 中柔和闪烁的模糊文本。通过鼠标单击将焦点置于编辑器中的代码会使文本瞬间锐化,但在大约 1-2 秒的时间内逐渐变得模糊。

以下代码段中的各种值组合(在 Atom 中可以使用 styles.less)无效:

atom-text-editor,
atom-text-editor.editor,
html {
    -webkit-font-smoothing: subpixel-antialiased;
    text-rendering        : optimizeLegibility;
}
  1. Visual Studio 代码 1.10.2 (Shell 1.4.6):

    process.versions 输出:

    • 战神:“1.10.1-DEV”
    • atom-shell: "1.4.6"
    • chrome: "53.0.2785.143"
    • 电子:“1.4.6”
    • http_parser: "2.7.0"
    • 模块:“50”
    • 节点:“6.5.0”
    • openssl:“1.0.2h”
    • uv: "1.9.1"
    • v8:“5.3.332.47”
    • zlib: "1.2.8"
  2. 原子 1.15.0 x64:

    process.versions 输出:

    • 战神:“1.10.1-DEV”
    • atom-shell: "1.3.13"
    • chrome:"52.0.2743.82"
    • 电子:“1.3.13”
    • http_parser: "2.7.0"
    • 模块:“49”
    • 节点:“6.5.0” openssl:“1.0.2h”
    • uv: "1.9.1"
    • v8:“5.2.361.43”
    • zlib: "1.2.8"

Windows 10 Home 64 位(最新),1080p 60Hz 显示屏,Nvidia GTX 980M(驱动最新),无自定义显示缩放。

关于从哪里开始解决这个问题的线索?

Windows和Electron一起在字体渲染方面属于"explosion mixture"。 Windows 目前在硬件加速方面存在一些问题,不仅针对字体,还针对其他非 Microsoft 技术,例如OpenGL.

如 GitHub 上的 this 问题所述,Electron 和 Chrome (Google) 的开发人员都知道这个问题,必须由微软

我的项目也有这个问题,我的 AMD 和 nVIDIA 显卡在 Linux 上正确渲染,在 Windows 上渲染不正确。

正如@Slaiyer 提到的,"major" Electron 应用程序有一个解决方法,即 VS Code 或 Atom,Code.exe --disable-gpu 分别为 atom.exe --disable-gpu

我有一个intel HD内置显卡,终于弄明白是什么问题了。

内部图形用户

  1. 打开英特尔高清控制面板
  2. 转到 3D 设置
  3. 关闭保守形态anti-aliasing
  4. 重新启动应用程序并修改

其他

  1. 检查anti-aliasing设置
  2. 中的设置
  3. 如果启用则禁用
  4. 重新启动应用程序并修改。

OMFG,谢谢你们,这个问题困扰了我很多年,为什么他们不解决这个问题?!?!

Discord、Franz、Dezzer,基本上任何使用 electron 的东西都会导致字体在失去焦点后立即开始逐渐模糊,直到现在我才明白它是什么,这很有意义。

如果您不想弄乱您的视频设置,请按照我的操作进行操作(与上面的海报基本相同)

查找导致问题的应用程序图标,Franz.exe、Discord.exe、Deezer.exe,现在编辑它并在命令行末尾添加 --disable-gpu快捷方式,完成!

我的头终于不会再因为模糊而痛了,我终于可以证实我不会失明了。

FFS Electron 认真修复了这个问题。

非常感谢大家在话题中的帮助