小编Bri*_*xon的帖子

防止TrueType字体的抗锯齿(或子像素渲染)

这是.ttf字体的呈现方式:

如何呈现字体

我使用FontForge创建了这个仅向量的TrueType字体.我想在需要基于矢量的字形的应用程序上使用此字体,并且不支持加载.ttf嵌入式位图(似乎没有此问题).

在某些颜色方案中,Windows执行此子像素渲染会使字体完全无法读取.大多数ttf字体都会出现这种效果,但对于像我这样的像素完美边缘的字体来说效果要强得多.

有没有人知道任何可编程的提示技巧或字体设置,允许字体呈现像素完美而不是这个红色/蓝色光环?我希望字体在没有操作系统修改的情况下正常工作以禁用ClearType或类似功能.

为了澄清,这是一个关于利用TrueType指令集,或者更改我可能忽略设置的TrueType字体设置(不是系统/应用程序设置)的问题,以使字体呈现清晰(如果可能).

truetype cleartype fontforge

11
推荐指数
1
解决办法
1256
查看次数

匿名结构中的Brace-or-equal-initializers在VS2013上不起作用

结构中的匿名结构中的Brace-or-equal-initializers不会对VS2013生成的输出执行任何操作.有代码:

#include <iostream>
#include <cstdint>


struct S
{
    struct
    {
        uint64_t val = 0;
    }anon;
};

int main()
{
    S s;
    S *a = new S;

    std::cout << s.anon.val << std::endl;
    std::cout << a->anon.val << std::endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在Linux上使用此命令编译:

g++ -std=c++11 def-init-anon-atruct.cpp -o def-init-anon-atruct
Run Code Online (Sandbox Code Playgroud)

(添加优化标志不会影响结果)

预期结果:

0
0
Run Code Online (Sandbox Code Playgroud)

奇怪的.使用VS2013运行它会产生垃圾值.在实施C++ 11标准方面,谁在这方面是正确的?我非常怀疑这是海湾合作委员会的错.

是否与一些无用的VS编译器选项有关?Windows扩展?由于MS制造的错误,我必须为结构制作默认构造函数?这很荒谬.

member-initialization c++11 anonymous-struct visual-c++-2013

9
推荐指数
2
解决办法
272
查看次数