Welcome! Anonymous

New Release! 2011-11-20

A place to ask questions, or discuss anything related to infinality.net stuff.

New Release! 2011-11-20

Postby infinality » Sat Nov 19, 2011 4:25 pm

It's finally here! 8-)
http://www.infinality.net/blog/infinali ... e-patches/

Also did a style update on the main site, to make it have a more similar look to this forum. Please create a new post if you run into a problem for which another post doesn't already exist.

:ugeek:

Here is the Changelog, which is also at the top of the patch.

Changes for 2011-11-17:

Features:
  • Added a post-render, pre-lcd-filter filter that attempts to duplicate windows
    sharpness / graininess. Controlled by
    INFINALITY_FT_WINDOWS_STYLE_SHARPENING_STRENGTH.
  • Added a fringe filter, intended mostly for autohint (but still effective
    for certain cases of TT hinting). This attempts to remove gray fringes that
    sometimes occur on horizontal stems and angled serifs and doodads
    (Times, Segoe '1', etc.)
  • Added a grayscale filter.
  • Added brightness/contrast filter.
  • Substantial improvements in the stem alignment algorithm! Wow!
  • Stem alignment now also happens on grayscale antialiased fonts (rgba=none).


Fixes / Tweaks:
  • Changes inside of local.conf, which are documented there.
  • Removed an artificial shift of 1/8 pixel to the right on stem aligned glyphs
    which should result in sharper looking alignment.
  • Added XFT_SETTINGS into infinality-settings.sh. This means it will require
    less configuration on the end-user side.
  • Fixed code to not touch bold, thin, narrow or italic faces for scale or
    alignment (until they can be properly accounted for).
  • Added -lm dependency to the code again. (It seems to sneak off now and then)
  • Changed autohinter horizontal stem stem snapping from on/off to use a value
    between 0 and 100.
  • Functions getenv() and system() were crashing evince in _lcd_stem_align()
    at odd times. A workaround has been put in place.
  • Moved _lcd_stem_align and all other filters into ftsmooth.c, which is a better place.
  • Use malloc() in _lcd_stem_align for allocating structs and arrays of structs
    instead of what I learned in C++ class 10+ years ago. Should prevent abiword
    from crashing with large pt sizes like 3000. (A workaround has been put
    in place to automatically skip alignment on any ppem > 100. This will
    prevent the crashes until the real solution can be figured out.)
  • Fix some compiler warnings. Some are still present.
  • Added "m" control to alignment algorithm. This will cause all stems to m
    (or other 3-pronged glyphs) to get aligned to pixels. It still needs a bit
    of work, as it makes the best looking glyph size change. This is because
    the glyph now needs to snap stems to only even or odd pixels, not single ones.
  • Added rules to allow "compatible widths" (i.e. widths if the font were being
    bitmap TT hinted) on a glyph by glyph basis and tweaked certain fonts like
    arial, verdana, times new roman, segoe ui, and trebuchet to use them.
  • Don't stem align anything below 9 ppem because it is not consistently good.
  • When doing stem alignment, automatically align stems to center of pixel or
    start of pixel when necessary. When horizontal stems start snapping to 2 px,
    so should the vertical ones in order for it to look nice.
  • A Verdana 12 hack to make it render more like Windows. This notoriously
    poor looking ppem now looks as good as Verdana 13 without needing fontconfig
    replacement.
  • Courier New now looks good, and possibly better than Windows rendering, with
    TT or autohint rendering. By the way, the hinters of Courier New should
    either be commended or executed.
  • Improvements in overshoot artifact and fringe correction- Freesans at large
    ppem looks nice now. Overshoots on letters like 6, g, s, 3, etc. will
    now be rounded to integer pixels.
  • Wrap all infinality code within a macro that is set in ftoption.h:
    #ifdef FT_CONFIG_OPTION_INFINALITY_PATCHSET. Makes it easier to identify
    in the code and allows for easy compliation with or without the patches set.
  • Variable renaming for more clarity, in code and in environment variables.
  • Move stretching code into Freetype instead of relying on programs to handle
    fontconfig matrix (they SUCK at it... *cough* Chrome *cough*).
  • Additional modifications to the TT subpixel rendering rules for corrections
    to Georgia, DejaVu Sans, Times New Roman, Courier New and a couple others.
  • A general improvement in the way autohinted fonts render, particularly on
    ones that normally look fragile or thin. Examples include Optima, Freemono,
    Freeserif, Raleway, MgOpen, etc. I'm doing what Windows does, which is
    brightness/contrast adjustment, except you don't see rainbows.
- Linux font rendering has gone from the most reviled to the most renowned.
User avatar
infinality
Site Admin
 
Posts: 733
Joined: Wed Oct 20, 2010 7:57 am
Location: Wisconsin, USA

Re: New Release! 2011-11-19

Postby cartman » Sat Nov 19, 2011 4:28 pm

Thanks! :)
cartman
 
Posts: 114
Joined: Sun Nov 28, 2010 11:05 am

Re: New Release! 2011-11-19

Postby infinality » Sat Nov 19, 2011 4:32 pm

Anybody know of any Debian packages that are maintained by someone? There was a new poster inquiring, and figured maybe one of you guys would know. Or, will Ubuntu packages install and work on Debian?
- Linux font rendering has gone from the most reviled to the most renowned.
User avatar
infinality
Site Admin
 
Posts: 733
Joined: Wed Oct 20, 2010 7:57 am
Location: Wisconsin, USA

Re: New Release! 2011-11-19

Postby cartman » Sat Nov 19, 2011 4:42 pm

Patch doesn't seem to apply to freetype 2.4.8 (note that /src/truetype/ttsubpix.* doesn't exist at all)

[~/home:namtrac:subpixel/freetype2/freetype-2.4.8]> patch -p1 --dry-run < ../freetype-entire-infinality-patchset-20111117-1.patch
patching file configure
patching file include/freetype/config/ftoption.h
patching file src/autofit/aflatin.c
patching file src/autofit/afloader.c
patching file src/base/ftlcdfil.c
patching file src/base/ftobjs.c
patching file src/base/ftoutln.c
patching file src/base/ftsynth.c
patching file src/smooth/ftsmooth.c
patching file src/truetype/ttgload.c
Hunk #1 succeeded at 816 (offset -14 lines).
Hunk #2 succeeded at 880 (offset -14 lines).
Hunk #3 succeeded at 981 (offset -14 lines).
Hunk #4 FAILED at 1792.
1 out of 4 hunks FAILED -- saving rejects to file src/truetype/ttgload.c.rej
patching file src/truetype/ttinterp.c
Hunk #1 FAILED at 6724.
Hunk #2 succeeded at 7097 with fuzz 1 (offset -573 lines).
Hunk #3 FAILED at 7793.
2 out of 3 hunks FAILED -- saving rejects to file src/truetype/ttinterp.c.rej
can't find file to patch at input line 4327
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur -x '*~' -x '*.orig' -x '*.SUP' freetype-subpixel-enabled/src/truetype/ttsubpix.c freetype-work/src/truetype/ttsubpix.c
|--- freetype-subpixel-enabled/src/truetype/ttsubpix.c 2011-11-17 20:33:18.973841546 -0600
|+++ freetype-work/src/truetype/ttsubpix.c 2011-11-16 22:55:12.299739145 -0600
--------------------------
File to patch:
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
can't find file to patch at input line 4397
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nur -x '*~' -x '*.orig' -x '*.SUP' freetype-subpixel-enabled/src/truetype/ttsubpix.h freetype-work/src/truetype/ttsubpix.h
|--- freetype-subpixel-enabled/src/truetype/ttsubpix.h 2011-11-17 20:37:19.988484450 -0600
|+++ freetype-work/src/truetype/ttsubpix.h 2011-11-16 22:55:12.300739111 -0600
--------------------------
File to patch: tty read: Bad file descriptor
Skip this patch? [y]
Skipping patch.
2 out of 2 hunks ignored
cartman
 
Posts: 114
Joined: Sun Nov 28, 2010 11:05 am

Re: New Release! 2011-11-19

Postby infinality » Sat Nov 19, 2011 4:46 pm

You need to apply the other two patches first. See the README file in the .tar.gz.

This is what I get:

Code: Select all

$ patch   -p1 < ../../patches/out/freetype-add-subpixel-hinting-infinality-20111117-1.patch
patching file ChangeLog.rej
patching file devel/ftoption.h
patching file include/freetype/config/ftoption.h
patching file include/freetype/internal/ftobjs.h
patching file src/truetype/rules.mk
patching file src/truetype/truetype.c
patching file src/truetype/ttgload.c
patching file src/truetype/ttinterp.c
patching file src/truetype/ttinterp.h
patching file src/truetype/ttobjs.h
patching file src/truetype/ttsubpix.c
patching file src/truetype/ttsubpix.h

$ patch   -p1 < ../../patches/out/freetype-enable-subpixel-hinting-infinality-20100909-1.patch
patching file include/freetype/config/ftoption.h
Hunk #1 succeeded at 92 (offset -1 lines).
Hunk #2 succeeded at 577 (offset 67 lines).
Hunk #3 succeeded at 597 (offset 70 lines).

$ patch   -p1 < ../../patches/out/freetype-entire-infinality-patchset-20111117-1.patch
patching file configure
patching file include/freetype/config/ftoption.h
patching file src/autofit/aflatin.c
patching file src/autofit/afloader.c
patching file src/base/ftlcdfil.c
patching file src/base/ftobjs.c
patching file src/base/ftoutln.c
patching file src/base/ftsynth.c
patching file src/smooth/ftsmooth.c
patching file src/truetype/ttgload.c
patching file src/truetype/ttinterp.c
patching file src/truetype/ttsubpix.c
patching file src/truetype/ttsubpix.h

- Linux font rendering has gone from the most reviled to the most renowned.
User avatar
infinality
Site Admin
 
Posts: 733
Joined: Wed Oct 20, 2010 7:57 am
Location: Wisconsin, USA

Re: New Release! 2011-11-19

Postby cartman » Sat Nov 19, 2011 4:54 pm

Doh! Sorry for that ;(
cartman
 
Posts: 114
Joined: Sun Nov 28, 2010 11:05 am

Re: New Release! 2011-11-19

Postby infinality » Sat Nov 19, 2011 4:57 pm

You had me scared for a second! :o
- Linux font rendering has gone from the most reviled to the most renowned.
User avatar
infinality
Site Admin
 
Posts: 733
Joined: Wed Oct 20, 2010 7:57 am
Location: Wisconsin, USA

Re: New Release! 2011-11-19

Postby ason unique » Sat Nov 19, 2011 4:58 pm

Ok, I can't send private message.

Can you list how to install this on Debian? I don't know how to exactly compile it myself
ason unique
 
Posts: 5
Joined: Sat Nov 19, 2011 1:49 pm

Re: New Release! 2011-11-19

Postby infinality » Sat Nov 19, 2011 5:04 pm

ason unique wrote:Ok, I can't send private message.

Can you list how to install this on Debian? I don't know how to exactly compile it myself


Well, it's really the same process on any *nix system. Something like this:

- Download freetype 2.4.8 from freetype.org and unzip it somewhere.
- Download the infinality .tar.gz file, and unzip it somewhere.
- cd to the freetype-2.4.8 directory from a terminal and run these commands (edit the paths to match where you unzipped):

Code: Select all
patch -p1 < /path/to/your/extracted/files/freetype-add-subpixel-hinting-infinality-20111117-1.patch
patch -p1 < /path/to/your/extracted/files/freetype-enable-subpixel-hinting-infinality-20100909-1.patch
patch -p1 < /path/to/your/extracted/files/freetype-entire-infinality-patchset-20111117-1.patch


(EDIT: I forgot some steps ;) )
Code: Select all
./configure
make
sudo mkdir /usr/lib/freetype-infinality/        # change to lib64 if you run 64 bit
sudo find . -name libfreetype.so.6.8.0 -exec mv {} /usr/lib/freetype-infinality/  \;       
cd /usr/lib/freetype-infinality
ln -s libfreetype.so.6.8.0 libfreetype.so.6


- Then look at the README file for instructions on where to put the configuration files.

Hope that helps

:ugeek:
- Linux font rendering has gone from the most reviled to the most renowned.
User avatar
infinality
Site Admin
 
Posts: 733
Joined: Wed Oct 20, 2010 7:57 am
Location: Wisconsin, USA

Re: New Release! 2011-11-19

Postby tallica » Sat Nov 19, 2011 5:05 pm

Exelent work! Thank you very much. I was waiting for this release :)
Gentoo ~AMD64 | Audacious
User avatar
tallica
 
Posts: 13
Joined: Mon Oct 25, 2010 10:04 pm

Next

Return to General Discussion

Who is online

Users browsing this forum: Google [Bot] and 2 guests