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.
--
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, 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
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.
Without anti-aliasing, arabic letters look very bad...
Anas
--
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
Perhaps it isn't the anti-aliasing as much as the fonts. All the fonts I've seen used in screenshots of AA QT looked pretty ugly. In general, Windows has higher-quality fonts than Linux.
In fact, as I look over this page in Internet Explorer 5.5 on Win98, I notice that while there are fonts drawn all over the screen (menus, address bar, window title bar, text on webpage, status bar, Start menu, etc) there are only two places on the entire screen using AA fonts: The two large bold headers on the comment I'm replying to. Every other font on the screen is NOT AA! When you use a windows machine, you're only looking at AA fonts perhaps 10% of the time. No system fonts are anti-aliased. They just have better quality fonts.
Someone needs to start a Open Fonts project. Well, probably someone has already. Someone needs to promote existing Open Fonts projects, then, becuase X is in need of some better fonts (that look good and are readable at ALL sizes).
[me@localhost]$ prolog
| ?- god.
! Existence error in god/0
main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
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