即:
fedora core
mandrake
suse
redhat
magic linux
这一类发型版 目前粗体早就搞定
斜体有问题
if (val->key.flags & PRIVATE_FLAG_OBLIQUE &&
(face->style_flags & FT_STYLE_FLAG_ITALIC) == 0) {
FT_GlyphSlot_Oblique (glyphslot);
}
...
FcBool embolden=FcFalse;
int w=-1;
/*if (FcPatternGetBool (pattern,
FC_EMBOLDEN, 0, &embolden) != FcResultMatch)
embolden = FcFalse;*/
if (FcPatternGetInteger (pattern,FC_WEIGHT, 0, &w) != FcResultMatch) embolden = FcFalse;
if(w==FC_WEIGHT_BOLD) embolden=FcTrue;
if (embolden)
load_flags |= PRIVATE_FLAG_EMBOLDEN;
}
看上去ok吧
但是在freetype中
FT_EXPORT_DEF( void )
FT_GlyphSlot_Oblique( FT_GlyphSlotslot )
{
FT_Matrix transform;
FT_Outline*outline = &slot->outline;
/* only oblique outline glyphs */
if ( slot->format != FT_GLYPH_FORMAT_OUTLINE )
return;
/* we don't touch the advance width */
/* For italic, simply apply a shear transform, with an angle */
/* of about 12 degrees. */
transform.xx = 0x10000L;
transform.yx = 0x00000L;
transform.xy = 0x06000L;
transform.yy = 0x10000L;
FT_Outline_Transform( outline, &transform );
}
所以必须对FT_GLYPH_FORMAT_BITMAP进行斜体算法
我目前没有什么办法,也许请教以下firefly。他patch过freetype 小字号的斜体,根本就看不清楚。 果真如此。。。
大概是 transform的值的问题 果真如此。。。
大概是 transform的值的问题
是不是把你的标题改改 :!: 对!谢谢提醒,跑了 首先,可以肯定我的系统里粗斜体都没有问题,粗体是 sunmoon 提交的补丁后才有的,斜体则是打我的补丁后出来的,我的补丁在
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=128453&start=30
http://www.linuxfans.org/nuke/modules/Forums/files/cairo-ft-oblique-fix.diff
并不是只有楼主贴的那几行。
现在 cvs 里的 cairo 似乎还没收这个补丁。 拜托,您老人家得自己去跟cairo的人说要收入这个补丁。cairo的人不会自发的满世界搜索补丁 :D
另外,好像你的补丁会使得cairo在build的时候依赖autoconf和automake。不过确实如Mikeandmore所说,虽然小字号的斜体根本就看不清楚,但可能应该还是有这个功能比较好。 这是我的方案对 fontconfig 和 cairo 同时动了一下手术:D
cairo-1.0 的的要相应的改一下:D
ps. fontconfig 部分实际是 frefly 写的。
fontconfig-2.3.2-prefer-localized-family-name.patch与斜体并不相关, 是让 fontconfig 显示本地化字体名的, 一起送上了,呵呵:P 问yaugh:
你的补丁中FC_OBLIQUE的定义是什么???
在哪里有它的定义?
文鼎pl的字体我都试过有斜体!!!
simsun没有!
sunmoon1997的补丁也许是对的。 我的思路是再patch一下freetype
页:
1
[2]