D2D: More tweaks (partially reverts ccb2731)

Should account for extra padding when #CRLF# is used.
This commit is contained in:
Brian Ferguson
2013-08-02 14:32:07 -06:00
parent ccb273117a
commit 9d525b1c1a
3 changed files with 12 additions and 5 deletions

View File

@ -24,7 +24,7 @@ namespace Gfx {
namespace Util {
DWRITE_TEXT_METRICS GetAdjustedDWriteTextLayoutMetrics(
IDWriteTextLayout* textLayout, bool gdiEmulation)
IDWriteTextLayout* textLayout, bool gdiEmulation, bool containsNewLine)
{
DWRITE_TEXT_METRICS metrics;
textLayout->GetMetrics(&metrics);
@ -34,7 +34,13 @@ DWRITE_TEXT_METRICS GetAdjustedDWriteTextLayoutMetrics(
float size = 0.0f;
textLayout->GetFontSize(0, &size);
metrics.width = floor(metrics.width + ((size / 6.0f) * 4.0f) + ((size * 3.0f / 4.0f) / 17.5f) + 0.255f);
metrics.height = floor(metrics.height * 1.087f);
if (containsNewLine)
{
metrics.width -= ((size * 3.0f / 4.0f) / 4.0f);
}
metrics.height = floor(metrics.height + (size / 9.25f) + 0.3f);
}
return metrics;

View File

@ -27,7 +27,7 @@ namespace Util {
// If |gdiEmulation| is true, the returns metrics have similar characteristics to those provided
// by GDI+.
DWRITE_TEXT_METRICS GetAdjustedDWriteTextLayoutMetrics(
IDWriteTextLayout* textLayout, bool gdiEmulation);
IDWriteTextLayout* textLayout, bool gdiEmulation, bool containsNewLine);
// Maps the GDI family name and italic/bold flags to the DirectWrite family name, weight, style,
// and stretch.