United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6675287 D3D: regression: occasional artifacts when rendering LCD text
JDK-6675287 : D3D: regression: occasional artifacts when rendering LCD text

Details
Type:
Bug
Submit Date:
2008-03-13
Status:
Resolved
Updated Date:
2010-10-14
Project Name:
JDK
Resolved Date:
2008-03-25
Component:
client-libs
OS:
windows_xp
Sub-Component:
2d
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
6u10
Fixed Versions:
6u10 (b20)

Related Reports
Relates:

Sub Tasks

Description
When rendering certain glyph combinations with some fonts (like Monospaced 12pt)
some edge glyph pixels don't get colored and appear with some random color.

See the attached test case.

Reported in this thread:
  http://forums.java.net/jive/message.jspa?messageID=263489#263489
A screenshot:
  http://forums.java.net/jive/servlet/JiveServlet/download/119-37260-263489-2823/Gili1.png

                                    

Comments
EVALUATION

This bug was introduced by the fix for
  6595317: D3D: some character combinations show color fringing (LCD AA)

The edge pixels in some cases don't get textured because 
the cached destination texture is a little small.

This fix for 6595317 adjusted the bounds of the glyphs in some cases,
so that we don't update the cached destination texture if the glyphs' pixels
don't touch too much.

The problem is that when we need to reload the cached destination
completely (like when the new glyph's bounds are not fully
contained in the cached bounds), we may read 1 or 2 pixels too
little, so when the first or the last glyph which supposedly
fits into the cached destination is rendered, their edge pixels
are not in the cached destination, and thus aren't textured, or
textured with some random color.

The fix is to use the adjusted glyph bounds only in case when we check
the current glyph bounds against the previous glyph bounds.
                                     
2008-03-13
SUGGESTED FIX

http://sa.sfbay.sun.com/projects/java2d_data/6u10/6675287.0
                                     
2008-03-14



Hardware and Software, Engineered to Work Together