[PATCH 2/2] dwrite: Use aliased outline threshold for GDI target

Nikolay Sivov nsivov at codeweavers.com
Thu Aug 13 10:56:38 CDT 2015


---

-------------- next part --------------
From 874fb9e82151c833620f864ed69f27e013f76dc9 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Thu, 13 Aug 2015 18:54:10 +0300
Subject: [PATCH 2/2] dwrite: Use aliased outline threshold for GDI target

---
 dlls/dwrite/gdiinterop.c | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/dwrite/gdiinterop.c b/dlls/dwrite/gdiinterop.c
index da4fc5f..6f96656 100644
--- a/dlls/dwrite/gdiinterop.c
+++ b/dlls/dwrite/gdiinterop.c
@@ -308,6 +308,7 @@ static HRESULT WINAPI rendertarget_DrawGlyphRun(IDWriteBitmapRenderTarget1 *ifac
     IDWriteGlyphRunAnalysis *analysis;
     DWRITE_RENDERING_MODE rendermode;
     DWRITE_TEXTURE_TYPE texturetype;
+    IDWriteFontFace1 *fontface1;
     RECT target, bounds;
     HRESULT hr;
 
@@ -319,8 +320,17 @@ static HRESULT WINAPI rendertarget_DrawGlyphRun(IDWriteBitmapRenderTarget1 *ifac
     if (!This->dib.ptr)
         return S_OK;
 
-    hr = IDWriteFontFace_GetRecommendedRenderingMode(run->fontFace, run->fontEmSize,
-        This->ppdip, measuring_mode, params, &rendermode);
+    hr = IDWriteFontFace_QueryInterface(run->fontFace, &IID_IDWriteFontFace1, (void**)&fontface1);
+    if (hr == S_OK) {
+        hr = IDWriteFontFace1_GetRecommendedRenderingMode(fontface1, run->fontEmSize, This->ppdip * 96.0f,
+            This->ppdip * 96.0f, NULL, run->isSideways, DWRITE_OUTLINE_THRESHOLD_ALIASED, measuring_mode,
+            &rendermode);
+        IDWriteFontFace1_Release(fontface1);
+    }
+    else
+        hr = IDWriteFontFace_GetRecommendedRenderingMode(run->fontFace, run->fontEmSize,
+            This->ppdip, measuring_mode, params, &rendermode);
+
     if (FAILED(hr))
         return hr;
 
-- 
2.1.4



More information about the wine-patches mailing list