[OpenJDK 2D-Dev] [PATCH] JDK-8146035: Windows - With LCD antialiasing, some glyphs are not rendered correctly
philip.race at oracle.com
Tue Apr 12 17:22:41 UTC 2016
Alexey didn't say this but he already proposed exactly this fix himself
in a private email exchange,
+1, although I am not sure we can legally pull down the patch from that
Please resubmit it as a diff in the email.
Or Alexey could just push it as his own :-)
On 04/07/2016 05:26 AM, Dmitry Batrak wrote:
> I'd like to propose a fix for JDK-8146035. I am not a committer,
> so I hope someone can sponsor this fix.
> I work at Jetbrains, which has signed a company-level contributor
> so, from a legal perspective, I believe, there are no obstacles.
> My investigation shows that the issue is caused by incorrect
> of bitmap size, prepared for glyph rendering, so only part of glyph
> becomes visible due to cropping. This seems to happen because
> compatible bitmap is not selected into memory device context (DC)
> before calling GetTextMetrics. Documentation for CreateCompatibleDC call
> says compatible bitmap needs to be selected into DC before any drawing
> Even though GetTextMetrics is not a drawing operation, it turns out
> to be affected by selected bitmap's type too (by default a monochrome
> is selected in a memory DC). This behaviour was also mentioned in the
> MSDN blog post comment:
> The proposed fix is to select a temporary 1x1 compatible bitmap
> into memory DC before GetTextMetrics call.
> Here's webrev link - http://adm-12504.intellij.net/
> I didn't create a test case, as it would require a specific font file
> (I couldn't reproduce the issue for fonts bundled with Windows).
> Best regards,
> Dmitry Batrak
More information about the 2d-dev