Video Card: Nvidia BFG 9600 GTOC
Descriptive Problem Summary:
I'm not sure if this is really a bug or not, but...
How come when you use a transparent label, but have a solid, non-transparent, background (whether it be an image or just a solid color); text will retain its integrity. But when you have a transparent label that you draw over a transparent background; it looks horrible? Even if you have it draw text over a transparent background, but still on a solid color; most fonts lose readability. The closest work-around is selecting a transparent BG color that's close to the font color, but that still results in blurry/bulky looking letters.
EDIT: It also acts the same when using \icon to display an icon in an output control.
http://www.angelfire.com/hero/straygames/ByondBugs/ TransparentLabels.png
ID:65523
Apr 22 2009, 10:18 pm
|
|||||||||||
Not a bug
| |||||||||||
#2 Jun 11 2009, 12:13 pm
|
|
Eliminating "investigated" tag-- if we investigate it, it'll either be "verified" or "unverified".
| |
#3 Jun 11 2009, 8:47 pm
|
|
You'd think that wouldn't you =P
| |
#4 Jun 16 2009, 9:40 am
|
|
Because this falls under the umbrella of "things that look iffy with the window.transparent-color setting in use", I'm going to mark the issue as resolved. It isn't a bug per se, just that the transparent-color setting doesn't work well in all situations, this being one of them. The "fix" is to add a new feature allowing label controls to bypass ClearType rendering. I have however documented in the skin reference for 443 that this combination of factors can cause drawing artifacts.
| |
Lummox JR's comment:
I assume the transparent background you're referring to is a window with its transparent color set. If so, this issue may be somewhat unavoidable due to the way transparent windows are handled. As you probably know, the way it does that is to consider one color in the window transparent, and everything of that color--even within a child control--becomes transparent so you see the windows below.
The problem comes in because labels, when drawn, don't know that the window below them is supposed to be transparent. If they did, they'd have to figure out what was being shown underneath in order to draw properly. Instead they're drawing over what the window's paint function tells them to, which is a blank canvas of a solid color (the color that has been marked as transparent). This will work just dandy if you're using a bitmap font or if ClearType is turned off, but in Windows XP and above, ClearType will try to smooth out the font to improve readability on LCD monitors. As a result, some of those pixels from the background get blended with pixels from the text.
There is a potential workaround, in that it would be possible for me to add a parameter to the label control to avoid such smoothing by first rendering the text to a 1-bit bitmap. I'm not sure there's really a lot of call for that though. Transparent windows, as you've seen, come with a lot of display hazards so most users prefer not to use that feature at all.
Lummox JR