The header says R=G=B as opposed to what?
If this flag isn't set, you'll get, for example, instead of a 5-pixel
buffer (without LCD rendering)
ABCDE
a buffer which triples each pixel value:
AAABBBCCCDDDEEE
According to the information in the web, patents on the ClearType idea
itself aren't valid due to prior art. However, patents on the LCD
colour filtering used in Windows are definitely valid (well, if you
live in a country where software patents are valid).
Werner
Werner, thanks for the link you provided earlier concerning sub-pixel
rendering. I've read through that and I think I understand much better
now the talk about sub-pixel rendering and ClearType. I'm still
confused as to the FT_CONFIG_OPTION_SUBPIXEL_RENDERING comments in
ftoption.h though.
/*************************************************************************/
/*
*/
/* Uncomment the line below if you want to activate sub-pixel
rendering */
/* (a.k.a. LCD rendering, or ClearType) in this build of the
library. */
/*
*/
/* Note that this feature is covered by several Microsoft
patents */
/* and should not be activated in any default build of the
library. */
/*
*/
/* This macro has no impact on the FreeType API, only on
its */
/* _implementation_. For example, using FT_RENDER_MODE_LCD when
calling */
/* FT_Render_Glyph still generates a bitmap that is 3 times larger
than */
/* the original size; the difference will be that each triplet
of */
/* subpixels has
R=G=B. */
/*
*/
/* This is done to allow FreeType clients to run unmodified,
forcing */
/* them to display normal gray-level anti-aliased
glyphs. */
/*
*/
#define FT_CONFIG_OPTION_SUBPIXEL_RENDERING
In order for sub-pixel rendering to work, if I understand what I read
in that link correctly, the R, G, and B values will not be equal, since
they're providing the sub-pixels on an LCD screen. The comment
indicates the enabling this flag activates sub-pixel rendering, yet it
later says that with this option on R=G=B. If that's the case then you
don't get the sub-pixel rendering correct? The last sentence seems to
indicate that by having R=G=B you're really just getting a gray scale
image and could just sample every third byte and still use gray-scale,
but then you're not getting sub-pixel rendering I don't think.
|