QT 2.3, With Anti-Aliased Fonts
Hazzl noted the announcement that the New version of QT is out. While normally a release of a GUI toolkit isn't that big of a deal, but this release is significant since it is the first Open Source toolkit to make a non-beta release with X-Render support for Anti-Aliased Fonts. Congrats to all the Developers involved.
I had AA fonts working for a while with KDE 2.0 and X4.0.2. Worked great when my card's DRI module was loaded, but without the hardware acceleration it was super slow.
I eventually reverted to my standard setup, cause all the different alpha/beta/gamma/dela libraries and such were causing my machine to freak out. I'll try it again when its stable.
On a related note, I upgraded to KDE 2.1 yesterday, and got-DAMN does it whoop ass. Faster, more polished, more solid, better looking, and has lots of cool new gizmos to play with. Konqueror has made great strides. It's on par with Internet Explorer 4.x right now, and if it keeps up the momentum, will catch up to IE 5.5 in no time. No need to complain any longer about Linux not having a world class browser. It's here now, or at least very, very close. Kmail 1.2 is also a really nice email client.
Can't wait to see the final GNOME 1.4. I keep waffling between the two environments. It's nice to see both of them progressing so well.
That was a long-ass, train-of-consciousness ramble, for which I make no apologies.
--
Hey, who said that all OSs aren't in the dumps? Linux's core is very sound, but all of the GUI stuff is in its toddler stages (and slow, very very slow). BeOS's GUI is sound, but the core is quirky. Nothing in Windows is sound, but DirectX saves it, as does hardware support. QNX has the neatest networking, but its filesystem is trash. The OS market these days is just one big comprimise, there IS no certifiably best OS out there, even if you constrain your market to something small like video or audio workstations. BeOS has the MediaKit, Linux has the insanely fast filesytem (XFS).
A deep unwavering belief is a sure sign you're missing something...
Don't get me wrong, as I said, I didn't mean anything bad by it. I admire all the people who have worked so hard on the OSS movement. I just find it funny some of the things Linux users get excited about. (And yes, I get excited too. I'm excited about KDE 2.1, the upcoming accelerated NVIDIA XRender drivers, KDevelop, and an i686-optimized version of Gentoo Linux.)
A deep unwavering belief is a sure sign you're missing something...
Linux is now easy enough for an old mainframe COBOL plodder like me. Not long before the home market now :-)
If you print screenshots, what do you expect? And who would print screenshots full of text to get a readable hardcopy of that text anyway?
Why don't you just choose the 'Print' option from the application, rather than capturing the screen and then printing it? That way you'll get output correctly formatted for the device you're writing to (e.g. the printer).
1. Get X 4.0.2 source or the snapshot. 4.0.2 has the rendering extention necessary for AA'ed and RGB decimated fonts. Also get all the other software - KDE 2.1, Qt 2.3.0, etc. You get the picture. Also, you MUST get Freetype 2.0 source!
2. Build Freetype2. There's a little hack you must do here on some systems for X to compile properly. In your /usr/local/include/freetype2 directory (which is the default location for Ft2's headers), symlink ft2build.h to freetype/config/ft2build.h. This many not be necessary on all systems... it was for me. Minor problem.
3. THIS IS THE MOST IMPORTANT (HARD) PART! X configures itself rather stupidly in most cases as far as we have seen. hosts.def overrides all these annoying settings and lets you tweak precisely for your needs... so, let's make sure it does it right. Create a new config/cf/hosts.def file in your XFree86 source directory (commonly /usr/src/xc) - note that commented out items are detected at compile time specifically for your platform:
#define DebuggableLibraries NO
/*#define SharedLibGlu NO*/
/*#define NormalLibGlu NO*/
/*#define FSUseSyslog YES */
/*#define HasKatmaiSupport NO */
/* Tweak for your system or remove altogether.*/ /* this appears to be broken */
/*#define BuildDebug NO */
/*#define BuildXF86DRI NO*/
/*#define BuildXF86DRIDriverSupport NO*/ /* this seems to be broken too */
/* Use this if we're going to use external Freetype2 libs instead..*/ /usr/local
#define SharedLibXdmGreet YES
#define LinkGLToUsrInclude YES
#define LinkGLToUsrLib YES
#define SharedLibFont YES
#define SharedLibXft YES
#define SharedLibXrender YES
#define HasZlib YES
#define HasAgpGart YES
#define HasMMXSupport YES
#define Has3DNowSupport YES
#define BuildGLULibrary YES
#define BuildXF86DRM YES
#define DefaultGcc2i386Opt -O2 -fno-strength-reduce -mpentiumpro
#define JoystickSupport NO
#define XF86XAA YES
#define BuildFontServer YES
#define BuildFreeType YES
#define BuildXTrueType YES
#define BuildGlxExt YES
# define BuildRender YES
# define BuildGLXLibrary YES
# define BuildXvLibrary YES
# define BuildXF86DGALibrary YES
# define BuildXF86DGA YES
# define BuildXvExt YES
# define UsbMouseSupport NO
#define Freetype2Dir
4. Build X using a make World and make install (you can make logs of course if you want). You may have some problems... they're usually pretty easy to iron out - and I won't go into how here. Make sure you back up your existing X11 binary tree.
5. Configure X... do the whole thing. Try starting X with the bare basics. (Duh-step. :-)
6. If X is working, download this file...
...and extract it in /usr/X11R6/lib/X11/fonts
http://keithp.com/~keithp/fonts/truetype.tar.gz
7. Download this file...
...edit it and copy it to /usr/X11R6/lib/X11
http://keithp.com/~keithp/fonts/XftConfig
8. Start X again... this time, try to open an Xterm with the command:
xterm -fa courier
If the font is AA'ed... then BINGO! It works!
9. If you succeeded at 8, build Qt 2.3.0 and KDE 2.1 as you normally would. Read the docs. And there you go! Have fun! AA'ed fonts. :-)
Yes and no, depending on the implementation. A simple anti-aliasing of a given bit of text at a given resolution will decrease the detail of the font. A form of supersampling, using a higher resolution bitmap to generate an antialiased smaller version will add detail, at the expense of losing background detail. Luckily the background we're talking about is usually a solid color, so detail, schmetail...
All kings is mostly rapscallions. -Mark Twain, The Adventures of Huckleberry Finn
It's free for any Open Source application. You are not limited to the GPL (what kind of freedom would that be?). You can choose BSD, MPL, QPL, MIT, Artistic, or any other Free Source license.
A Government Is a Body of People, Usually Notably Ungoverned
I agree with you on KDE 2.1 100% (if not 120%). I hadn't tried it in years (didn't really use X and when I did whatever lightwieght wm was fine) and I was astonished at how much it has improved. It is a completely different beast - extremely usable, looks good, feels good, works good. There are still a few annoyances but they are very minor. If you haven't tried KDE recently check out 2.1!
...will it support dead keys (accented characters, where you first press the accent, then the letter)? So far, this has been on and off for a while. 2.2.2 botched it, 2.2.3 fixed it, 2.2.4 botched it again... Somewhat hard to type French text, if the accents don't work properly.
Mature products are somewhat better, but not dramatically so than their predecessors. IE 5 is perhaps better than 4, but not so dramatically better than 4 was than 3. MS will have a hell of a time making sure IE 6 isn't worse than 5.5.
The impressive thing about KDE an Gnome is how dramatically and rapidly better they are getting. This suggests that they haven't neared anything like a plateau, and that the commercial GUI vendors may find themselves lapped in the next eighteen months. It's easy to criticize these desktops since they are evolving in the open and all their early awkwardness is exposed for all to see.
Already they are at or near the magic boiling point of usability for most people. If you are much better than your predecessor but not good enough you're still not good enough. But good enough and rapidly getting better is a different story.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
You'll notice that it's also under the LGPL. Sheesh.
I'd like to see how they define UNIX platform. Does NT's POSIX count as a UNIX platform? Does BeOS count as a UNIX platform? This UNIX bigotry has got to stop! Making it free for OSS and pay for commercial is one thing. Doing the same for UNIX and Windows is just punishing a developer for not liking *NIX.
A deep unwavering belief is a sure sign you're missing something...
Unsettling MOTD at my ISP.
I used a beta of Qt for a while with KDE 2.1 and while the anti-aliasing looks very good it seems to create more eyestrain than the anti-aliasing in Windows (2000 at the moment). Too much of a good thing...
Believe me, it makes a big difference and it gives you a lot of time that you can spend working on something other than you PC. :-)
You forget. The majority of computers run an OS that is not case sensitive. Thus, there is a very good chance that at the trademark office, Qt.tm == QT.tm
A deep unwavering belief is a sure sign you're missing something...
Yes, Gnome is nice, but did you know that there are KDE bindings for C++, java, python and perl? Python is also the common scripting language built into most major apps. If you want to, you can even access all exposed internal functions in KDE apps at the command line (via dcop), allowing things like bash scripting of GUI programs.
I'm not saying Gnome is bad at all -- but since you're saying "First time I started using C++, I thought what a hideous hack!", I figured you might be under the assumption that you have to use C++ to develop KDE apps. Yes, KDE itself is written in C++, but its apps are open to several languages.
In fact, KDevelop also has templates and good support for building Gnome and commandline apps. So you can even use KDE while developing Gnome apps, if you'd like.
--
Evan
"$30 for the One True Ring. $10 each additional ring!" -- JRR "Bob" Tolkien
Is it possible to program for KDE using plain old C?
- - - - -
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
I've been running KDE 2.1 on QT 2.2.4 and XFree86 4.0.2 just fine. (It's BEAUTIFUL, by the way!) Now I want to try anti-aliased fonts.
Firstly - I have the current CVS for the DRI drivers, which includes the Xft, Xrender, etc. library sections. I managed to get freetype2 built and installed (I think! There were some problems...), and configured the hosts.def file accordingly. I managed to get everything to build and install...but then KDE wouldn't start. (KSplash complaining about undefined symbols in the Xft library).
I figured maybe I needed to rebuild KDE (at least KDELIBS) against the new X stuff, so I tried. Firstly, the 2.1 configure script complains about 2.3.0 not being "QT >= 2.2.3", but I got around THAT. Trying to build, it errors out with similar complaints about undefined symbols in Xft...
So (to finally get to the point)...I figure either I need to rebuild QT (my next try), or I didn't actually successfully build freetype2, or I have to build all of X from scratch...
Anybody know any good "shortcuts" for me to add support for this feature? (I'm running on a "Slackware-Post-7.1" based distribution if it matters...)
---
"They have strategic air commands, nuclear submarines, and John Wayne. We have this"
Hacker Public Radio is our Friend
It is just as good everywhere - provided you don't forget to compile in Unicode support on Windows (otherwise you won't be able to cut and past Unicode text between Qt and other Windows applications). I've written a large application with Python and Qt that depends extensively on Unicode support: http://www.xs4all.nl/~bsarempt/linguistics, and I was very glad to see that my app worked equally well on Windows as on Linux.
It uses the XRender extentions which uses X to do the AA work.
If you'd have bothered to read about this at all you'd realize that, yes, X does do sub-pixel AA if you want it to.
--
Soma: because a gramme is better than a damn.
Microsoft has released a set of high quality TrueType web fonts: Times, Courier, Arial, Comic, Impact under a license that allows free use and redistribution.
.exe but it's a self-extracting zipfile. You can open it with unzip.
Get it Here.
The extension is
Someone has also packaged it as an RPM
-
Stop worrying about the risks of nuclear power and start worrying about the risks of not using nuclear power.
Unfortunately Microsoft's "anti-aliasing" still isn't as good as existed on home machines in 1987... an interesting comparison of RISC OS vs. Windows' font renders contains these two examples:
Down at the bottom of the first page is an example from a reimplementation of RISC OS' font manager on Linux, which does look nice! ;-)
Could your post your config please? I used the qt-2.2.4 rpm that came with the kde 2.1 download for Redhat 6.x . What config files do I need to change to make dead keys work?
> See:éóáû Got it?
Proves nothing. Could have been typed in from another version of qt, or from a non-qt app (such as ... netscape)
Thanks,
I'd like to see how they define UNIX platform.
You mean for licensing purposes? Qt Free is GPL, so you can port it to any platform.
Does NT's POSIX count as a UNIX platform? Does BeOS count as a UNIX platform?
Currently, Qt Free requires a working POSIX subsystem (NT's is subpar but Red Hat Cygwin is good) and an X11 server. XFree86 works on Windows NT/2K but not on 9x because of stupid assumptions in the design of Windows 9x's USER and GDI servers. (Why oh why didn't Microsoft just release NT 4 as Windows 95?)
free for OSS and pay for commercial is one thing. Doing the same for UNIX and Windows is just punishing a developer for not liking *NIX.
It's not punishing but instead "not wasting effort on porting a free software package to an environment that's thought to be hostile to free software."
All your hallucinogen are belong to us.
Will I retire or break 10K?
Stating on Slashdot that I like cheese since 1997.
Maybe I'm a curmudgeon, but isn't some of the enhanced detail provided by antialiasing lost in a jpeg bitmap?
I think I see the problem. (Er, no pun intended.)
:)
On my desk as I type this, I have a laptop with a nice, crisp (but jaggy) non-anti-aliased display, and another machine running an older version of Linux and X displayed on a cheap 14" monitor that achieves anti-aliasing but the simple method of having a slightly out-of-focus display. (Dang cheap magnet coils, or something). I can read either at length without bother.
However, when I look at a screen shot of an antialiased display on this nice crisp LCD, it bugs me. I think the problem is that because the rest of the screen has sharp lines and text, my eyes keep trying to bring the AA'd text into focus -- obviously without success. On the CRT, however, the whole screen is "soft focus" so my eyes just give up and go with the flow.
Shrug. As long as it's something I can turn off (by font, perhaps?), I like the idea. Maybe its just that my eyes burned out long ago reading dot-matrix printouts and 80x25 character dumb terminal screens. They expect anything on a monitor to be jaggy
-- Alastair
Without anti-aliasing, arabic letters look very bad...
Anas
I was indeed aware of KDE's language bindings. It's very good to see Gnome and KDE embrace language flexibility and choice. I haven't played around with KDevelop much--didn't know it could be used for Gnome development. I'll have to give it a shot. I'm a fan of using a combination of tools to get the job done. I use gdb and vim for the most part while in UNIX and at work I'm a Visual C++ developer.
----
Celebrate the finer things in life
--
Heh. One more reason for the LINE project to succeed. ;)
Okay, I didn't realize it'd require a port. However, I take offense to your "hostile to free software" comment. Windows has an extensive freeward community, and just because a person prefers to work in Windows rather than deal with the POS that is POSIX and X (its entirely a matter of preference, I can't stand non-OO GUI environments and four letter function call names offend my sense of cleanliness) doesn't make that person in any way hostile to free software. OSS software does not need to run on an OSSOS.
A deep unwavering belief is a sure sign you're missing something...
Never mind, just found the reference to Free Edition. Just what I was looking for...
Waltz, nymph, for quick jigs vex Bud.
Actually, the Gnome codebase is quite well maintained. It's not perfect, but we're working on it. Perhaps you could list specific hard-core facts, rather than making assertions with no basis. If you do have a basis for saying that Gnome will collapse under its own weight in a few months, I'd love to hear it. As someone who has spent significant time looking at the Gnome framework, and being both a C and C++ developer, I can attest to the flexibility of the core C-based architecture with powerful bindings for languages of all sorts--C++, java, python, perl, etc. The Gnome framework, IMHO, is extremely powerful, flexible, and getting even better all the time. Now of course, if you're not used to something you may find it confusing at first. :) First time I started using C++, I thought what a hideous hack! With time I've come to appreciate the advantages of both C and C++. It's great to be able to use both.
----
Celebrate the finer things in life
With anti-aliased fonts printing of screenshots is nearly impossible, because of the anti-aliasing: the printer can't re-aliase and then do it's own anti-aliasing. It anti-aliases the fonts again, therefore you can read a 1280x1024 screen with a small font (aliased or not), but you can't read the printout if aliased
It would be nice to rerender for a printout - without aliasing
Windows has this problem too.
Mandrake does what you're looking for. You can simply copy a truetype font to /usr/X11R6/lib/X11/fonts/drakfont, or use their DrakFont utility. If you have Windows installed, it will auto import all your windows fonts.
signature smigmature
- James
A good font smoother -- like the one in Microsoft OSes ever since Win95 Plus Pack (over five years ago, folks!) -- only anti-aliases problem areas in diagonals and curves. Furthermore, it should only be applied to text above a certain type size.
For more details, see Microsoft Typgraphy. For an example of how not to do things, see TN 1149: Smoothing Fonts at Apple.
One of the main reasons GNOME is using C as opposed to C++ is that C is more portable and far more supported across platforms. If you are stuck on an AIX RS6000 machine with a "quirky" compiler you'll understand how this goes.
:-)
And another thing, just because something is written in C automatically means no "object oriented" code. You can accomplish OOP in C by various mechanisms that all work even though C itself doesn't naitively support OOP. X (which KDE depends on anyway) and Gnome and Win32 all work on the concept of a modifying a "black box object". It is interesting to note that there are C++ bindings built on these toolkits!
And let us not forget that OOP code doesn't automatically mean better written code. Some of the neatest code I've seen (in Perl btw) doesn't require OOP.
Does Gnome need to be written in C++? No because they found that the extra synax was just sugar. I have no problem with Gnome and GTK being written in C because others will come along and implement C++ wrapping around it(just like MFC).
It may very well be that I just don't "get" antialiasing...but I thought I understood the basic concept. That being the case, this question sounds funny to me.
Isn't "antialiasing" (to oversimplify) a form of "intelligent blurring"? (In this case, blurring the fonts corners a bit so that they blend a little smoother with the background).
If so...don't you LOSE detail (while improving the actual appearance) when you antialias?
---
"They have strategic air commands, nuclear submarines, and John Wayne. We have this"
Hacker Public Radio is our Friend
Sort of like Microsofties getting excited about Microsoft finally producing a stable OS after only 22 years of trying.
What is the QT's support for internationalization on all platforms. I know that KDE runs in 33 languages and that QT is Unicode based. What I'd like to find out (because I'm selecting a GUI toolkit for my company) is whether Unicode is this good on all platforms that QT supports including Win95/98? Anyone with some experience with QT on these particular OSes?
Your pizza just the way you ought to have it.
I'd rather use Linux and contribute what I can while I wait for certain features, vs using Micro$quish products that crash all the time and cost a fortune.
--
Top Most Bizarre/Disturbing Error Messages
Okay, I didn't realize it'd require a port. However, I take offense to your "hostile to free software" comment. Windows has an extensive freeward community
I assume "freeward" is a misspelling for "freeware." In that case, I know about all royalty-free binaries, but most of them are not free software. There's a difference.
OSS software does not need to run on an OSSOS.
But copylefted free software can never be written in Visual Basic, as that would require providing the source code of the MS Visual Basic runtime and releasing it under a compatible license. Tough luck getting Microsoft to comply there. (Or is the VB runtime covered by the operating system exception to the common licenses?)
And there isn't that large of a library of GPL'd Windows software to infect Windows programs with GPL either.
All your hallucinogen are belong to us.
Will I retire or break 10K?
XRender will be supported in the upcoming 0.9-7 release. Full hardware support for XRender should make it in 0.9-8. When that happens the NVidia cards will probably be the fastest and most feature rich you can get for Linux. Given, this will be for x86 only for now, but as an AMD x86 user I can't complain.
:)
This info comes from a reliable source. And since NVidia has hired this X guru, I can only conclude that they're very serious about Linux/XFree support (Think SGI).
Posted from an AA'd konqueror browser (driver "nv" for now
-adnans
"In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people." --Linus Torvalds
Wow! It's amazing that a volunteers and weekend warriors can do all this stuff when it took all the other systems acres of cubicles and herds of managers to get it done.
Check to see how long Internet Explorer has been around. Now compare that to Konqueror. If that doesn't knock your socks off then you aren't wearing any.
A Government Is a Body of People, Usually Notably Ungoverned
That's nothing, I've got a screensaver built into my monitor's hardware. I just push the little button with the "circle with a line through it" symbol and up comes this screensaver. It appears to be a 3D animation of being lost inside of a coal mine without a light source. Neat! :-)
---
"They have strategic air commands, nuclear submarines, and John Wayne. We have this"
Hacker Public Radio is our Friend
Read 'em and weep, Linux people. Read 'em and weep.
Interpolation is an avaraging pixel values. When e.g. a texture in a 3-d model is enlarged (or shrunk) to fit a surface, the pixel values are calculated with interpolation.
Anti-aliasing is any technique that makes edges look sharper to the human eye. Note that this applies to object edges in 3-D models every bit as much as in text.
In practice, if you use interpolation to calculate the pixel values along the representation of a line, only thoes pixels that wholly or partially contain the line will be affected. With AA, pixels that do not contain any part of the line, but are "near" the line, may be drawn in a subtly different colour to fool the eye into seeing a smoother edge.
Take a screen capture of some AA text and blow it up in the gimp so that you can see the pixels, then take a look around the text edges - it's quite enlightening.
P.s., although I could easily give formulas for interpolation (it's simple linear interpolation), I don't offhand know what the calculations for AA are - but you can look them up with Google as easily as me, so its left as an exercise for the reader.
One more thing. You must add the line to the [KDE] section of your ~/.kde/share/config/global...
AntiAliasing=true
"I can see clearly now two-three has come,
:)
I can see all the objects on the page
Gone are the dark fonts that made my head ache
Thanks to those bright, bright Trolls, hacking away"
I think EVERY release of any software should come with a song!
AirSpeak - http://itunes.com/apps/AirSpeak
There are two types of libraries that can be linked into a GPL'd program: (a) GPL compatible libraries and (b) libraries that are included with the operating system distribution and are distributed separately from the program. BeOS programs use the latter, but the MS Visual Basic runtime is neither.
>>>>>>>>>>>>>>>>
In that case, a lot of WIndows could be considered not part of the OS. Thus, on Windows 95, a GPL program could not link to DirectX (which isn't a part of the OS proper). I just think some of the symantics of the GPL are ridiculous. For example, is it wrong to port an OSS driver to a close source OS? Stallman discourages it. Plus, how does the license of the language one uses in any way related to the license of the software? It just seems that some parts of the GPL change from being a "good for the whole community" license to "let's screw closed source developers, even if it hurts the user community."
This seems to imply that a "critical mass" of free software will be achieved much faster on free operating systems.
>>>>>>>>
Does this mean that it isn't morally wrong to make a developer pay for a toolkit just because the OSS community doesn't like his preferred OS? Does a GPL program on Windows count any less than a GPL program on Linux?
Go spread the word about Wine (a free clone of Windows that runs on top of POSIX+X11).
>>>>>>>>>>
Why would I do that? I like Windows (NT4) better!
A deep unwavering belief is a sure sign you're missing something...
The Windows version of Qt that Trolltech sells may contain GPL incompatible code licensed from other
entities; it costs money to develop GPL compatible code. This is part of why Mozilla took so long to replace
some of the features of older Netscape releases. But Qt Free Edition is under GPL; you are free to start a
project to port it to whatever platform you choose. According to QT's README, "If you want to port Qt to a
new platform, please read the PORTING file.
>>>>>>>>
You're hedging. I can understand Qt's position, but in general, is it morally right to charge OSS Windows developers for toolkits that *NIX guys get for free?
A deep unwavering belief is a sure sign you're missing something...