Bug 378801

Summary: KDE4 doesn’t use the system setting for subpixel hinting
Product: [openSUSE] openSUSE 11.0 Reporter: Mike Fabian <mfabian>
Component: KDE4 WorkspaceAssignee: Dirk Mueller <dmueller>
Status: RESOLVED FIXED QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P2 - High CC: anshulajain, swyear
Version: Factory   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Found By: Development Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: subpixel-hinting-system-settings-not-used.png

Description Mike Fabian 2008-04-10 15:43:19 UTC
KDE4 doesn’t use the system setting for subpixel hinting.
Comment 1 Mike Fabian 2008-04-10 15:44:10 UTC
Created attachment 207270 [details]
subpixel-hinting-system-settings-not-used.png
Comment 2 Mike Fabian 2008-04-10 15:48:00 UTC
In the screenshot you can see that subpixel hinting (“coloured
rendering”) is used in “xfd” (see also the magnification with xmag at
the top right), i.e. a freetype2 package which has subpixel hinting
compiled in is installed and subpixel hinting is enabled in the
fontconfig setup.

The KDE4 “systemsettings” program at the left is set so

    Kantenglättung verwenden: Systemeinstellungen

    (= use antialising: system setting)

It has not been changed yet from the default.
Nevertheless, the fonts seen in the “systemsettings” program
are rendered *without* subpixel hinting (i.e. only grayscale
anti-aliasing).


Comment 3 Mike Fabian 2008-04-10 16:04:10 UTC
Trying to switch on subpixel hinting in “systemsettings” doesn’t
work either, after selecting

    Kantenglättung verwenden: Aktiviert
    (use antialiasing: active)

and setting up the details in “Einrichten” (choose
RGB subpixel rendering there) and restarting
“systemsettings”, one still sees only grayscale anti-aliasing.
Comment 4 Ray chen 2008-05-19 12:40:28 UTC
Hi Mike
First you need freetype2 package with subpixel-hinting support installed
then
rebuild qt4 packages to enable subpixel-hinting
(you may need more than 5 hours to do this)
You can see spec file of qt4 package

https://build.opensuse.org/package/view_file?file=use-freetype-default.diff&package=libqt4&project=KDE%3AQt44
Comment 5 Mike Fabian 2008-05-19 22:13:54 UTC
swyear> First you need freetype2 package with subpixel-hinting support
swyear> installed then rebuild qt4 packages to enable subpixel-hinting (you
swyear> may need more than 5 hours to do this) You can see spec file of qt4
swyear> package

Yes, I know that. But I think that is a bug in Qt4. Qt4 should
check for the availability of subpixel hinting at runtime, not
at build time.

Something like in this small sample program:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_LCD_FILTER_H

int main(int argc, char *argv[]) {

	FT_Library	    ftLibrary;

	if (FT_Init_FreeType (&ftLibrary)) {
		printf("error in FT_Init_FreeType()\n");
		exit (1);
	}
	
	if (FT_Err_Unimplemented_Feature ==
	    FT_Library_SetLcdFilter(ftLibrary, FT_LCD_FILTER_DEFAULT )) {
		printf("subpixel rendering not available\n");
		exit (0);
	}
	else {
		printf("subpixel rendering available\n");
		exit (0);
	}
	
	exit (0);
}

Comment 6 Mike Fabian 2008-07-15 12:53:21 UTC
*** Bug 407826 has been marked as a duplicate of this bug. ***
Comment 7 Stephan Binner 2008-07-20 16:49:29 UTC
Dirk is working on a run-time check.
Comment 8 Anshul Jain 2008-07-29 10:34:57 UTC
Hi,
Any updates on the fix? :)

-Anshul
Comment 9 Dirk Mueller 2008-07-31 11:11:35 UTC
implemented for 11.1 and KDE:Qt.