[PATCH v4 3/3] d3dx9: Handle word breaks in ID3DXFont_DrawText.

Sven Baars sbaars at codeweavers.com
Thu Mar 5 15:39:59 CST 2020


Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
v4: Renamed things, removed the asserts

 dlls/d3dx9_24/Makefile.in  |  2 +-
 dlls/d3dx9_25/Makefile.in  |  2 +-
 dlls/d3dx9_26/Makefile.in  |  2 +-
 dlls/d3dx9_27/Makefile.in  |  2 +-
 dlls/d3dx9_28/Makefile.in  |  2 +-
 dlls/d3dx9_29/Makefile.in  |  2 +-
 dlls/d3dx9_30/Makefile.in  |  2 +-
 dlls/d3dx9_31/Makefile.in  |  2 +-
 dlls/d3dx9_32/Makefile.in  |  2 +-
 dlls/d3dx9_33/Makefile.in  |  2 +-
 dlls/d3dx9_34/Makefile.in  |  2 +-
 dlls/d3dx9_35/Makefile.in  |  2 +-
 dlls/d3dx9_36/Makefile.in  |  2 +-
 dlls/d3dx9_36/font.c       | 61 ++++++++++++++++++++++++++++++++++++--
 dlls/d3dx9_36/tests/core.c | 22 +++++++-------
 dlls/d3dx9_37/Makefile.in  |  2 +-
 dlls/d3dx9_38/Makefile.in  |  2 +-
 dlls/d3dx9_39/Makefile.in  |  2 +-
 dlls/d3dx9_40/Makefile.in  |  2 +-
 dlls/d3dx9_41/Makefile.in  |  2 +-
 dlls/d3dx9_42/Makefile.in  |  2 +-
 dlls/d3dx9_43/Makefile.in  |  2 +-
 22 files changed, 89 insertions(+), 34 deletions(-)

diff --git a/dlls/d3dx9_24/Makefile.in b/dlls/d3dx9_24/Makefile.in
index faad4c49ac..f80541a9aa 100644
--- a/dlls/d3dx9_24/Makefile.in
+++ b/dlls/d3dx9_24/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=24
 MODULE    = d3dx9_24.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_25/Makefile.in b/dlls/d3dx9_25/Makefile.in
index 292b33db2b..e3144f0d45 100644
--- a/dlls/d3dx9_25/Makefile.in
+++ b/dlls/d3dx9_25/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=25
 MODULE    = d3dx9_25.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_26/Makefile.in b/dlls/d3dx9_26/Makefile.in
index 22bb54a498..1b432afb21 100644
--- a/dlls/d3dx9_26/Makefile.in
+++ b/dlls/d3dx9_26/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=26
 MODULE    = d3dx9_26.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_27/Makefile.in b/dlls/d3dx9_27/Makefile.in
index 4ed104a170..65d8cad9d6 100644
--- a/dlls/d3dx9_27/Makefile.in
+++ b/dlls/d3dx9_27/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=27
 MODULE    = d3dx9_27.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_28/Makefile.in b/dlls/d3dx9_28/Makefile.in
index 94e059ae9d..ff7ba564c1 100644
--- a/dlls/d3dx9_28/Makefile.in
+++ b/dlls/d3dx9_28/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=28
 MODULE    = d3dx9_28.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_29/Makefile.in b/dlls/d3dx9_29/Makefile.in
index 94b39aee37..7e53415c43 100644
--- a/dlls/d3dx9_29/Makefile.in
+++ b/dlls/d3dx9_29/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=29
 MODULE    = d3dx9_29.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_30/Makefile.in b/dlls/d3dx9_30/Makefile.in
index 6beadbc47e..9bc955753f 100644
--- a/dlls/d3dx9_30/Makefile.in
+++ b/dlls/d3dx9_30/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=30
 MODULE    = d3dx9_30.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_31/Makefile.in b/dlls/d3dx9_31/Makefile.in
index b73f32872c..58b72c527c 100644
--- a/dlls/d3dx9_31/Makefile.in
+++ b/dlls/d3dx9_31/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=31
 MODULE    = d3dx9_31.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_32/Makefile.in b/dlls/d3dx9_32/Makefile.in
index 50bc9d0e26..88cc083bbe 100644
--- a/dlls/d3dx9_32/Makefile.in
+++ b/dlls/d3dx9_32/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=32
 MODULE    = d3dx9_32.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_33/Makefile.in b/dlls/d3dx9_33/Makefile.in
index 7be34e1d4b..f6de942ed8 100644
--- a/dlls/d3dx9_33/Makefile.in
+++ b/dlls/d3dx9_33/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=33
 MODULE    = d3dx9_33.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_34/Makefile.in b/dlls/d3dx9_34/Makefile.in
index 248735a531..5d0bc9b3a4 100644
--- a/dlls/d3dx9_34/Makefile.in
+++ b/dlls/d3dx9_34/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=34
 MODULE    = d3dx9_34.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_35/Makefile.in b/dlls/d3dx9_35/Makefile.in
index 01c809dab2..5eb00327c1 100644
--- a/dlls/d3dx9_35/Makefile.in
+++ b/dlls/d3dx9_35/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=35
 MODULE    = d3dx9_35.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_36/Makefile.in b/dlls/d3dx9_36/Makefile.in
index 825e5ddfbc..6a08c41159 100644
--- a/dlls/d3dx9_36/Makefile.in
+++ b/dlls/d3dx9_36/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=36
 MODULE    = d3dx9_36.dll
 IMPORTLIB = d3dx9
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_36/font.c b/dlls/d3dx9_36/font.c
index 9e9cb658db..5d4c0a5786 100644
--- a/dlls/d3dx9_36/font.c
+++ b/dlls/d3dx9_36/font.c
@@ -20,6 +20,8 @@
 
 #include "d3dx9_private.h"
 
+#include "usp10.h"
+
 WINE_DEFAULT_DEBUG_CHANNEL(d3dx);
 
 struct d3dx_glyph
@@ -509,10 +511,53 @@ static INT WINAPI ID3DXFontImpl_DrawTextA(ID3DXFont *iface, ID3DXSprite *sprite,
     return ret;
 }
 
+static void word_break(HDC hdc, const WCHAR *str, unsigned int *str_len,
+        unsigned int chars_fit, unsigned int *chars_used, SIZE *size)
+{
+    SCRIPT_LOGATTR *sla;
+    SCRIPT_ANALYSIS sa;
+    unsigned int i;
+
+    *chars_used = 0;
+
+    sla = heap_alloc(*str_len * sizeof(*sla));
+    if (!sla)
+        return;
+
+    memset(&sa, 0, sizeof(sa));
+    sa.eScript = SCRIPT_UNDEFINED;
+
+    ScriptBreak(str, *str_len, &sa, sla);
+
+    /* Work back from the last character that did fit to a place where we can break */
+    i = chars_fit;
+    while (i > 0 && !sla[i].fSoftBreak) /* chars_fit < *str_len so this is valid */
+        --i;
+
+    /* If the there is no word that fits put in all characters that do fit */
+    if (!sla[i].fSoftBreak)
+        i = chars_fit;
+
+    *chars_used = i;
+    if (sla[i].fWhiteSpace)
+        ++(*chars_used);
+
+    /* Remove extra spaces */
+    while (i > 0 && sla[i-1].fWhiteSpace)
+        --i;
+    *str_len = i;
+
+    /* Remeasure the string */
+    GetTextExtentExPointW(hdc, str, *str_len, 0, NULL, NULL, size);
+    heap_free(sla);
+}
+
 static const WCHAR *read_line(HDC hdc, const WCHAR *str, int *count,
-        WCHAR *dest, unsigned int *dest_len, int width)
+        WCHAR *dest, unsigned int *dest_len, int width, DWORD format)
 {
     unsigned int i = 0;
+    int orig_count = *count;
+    int num_fit;
     SIZE size;
 
     *dest_len = 0;
@@ -524,7 +569,17 @@ static const WCHAR *read_line(HDC hdc, const WCHAR *str, int *count,
         ++i;
     }
 
-    GetTextExtentExPointW(hdc, dest, *dest_len, width, NULL, NULL, &size);
+    num_fit = 0;
+    GetTextExtentExPointW(hdc, dest, *dest_len, width, &num_fit, NULL, &size);
+
+    if (num_fit < *dest_len && (format & DT_WORDBREAK))
+    {
+        unsigned int chars_used;
+
+        word_break(hdc, dest, dest_len, num_fit, &chars_used, &size);
+        *count = orig_count - chars_used;
+        i = chars_used;
+    }
 
     if (*count && str[i] == '\n')
     {
@@ -594,7 +649,7 @@ static INT WINAPI ID3DXFontImpl_DrawTextW(ID3DXFont *iface, ID3DXSprite *sprite,
     {
         unsigned int line_len;
 
-        string = read_line(font->hdc, string, &count, line, &line_len, width);
+        string = read_line(font->hdc, string, &count, line, &line_len, width, format);
 
         if (!(format & DT_CALCRECT))
         {
diff --git a/dlls/d3dx9_36/tests/core.c b/dlls/d3dx9_36/tests/core.c
index c79f5c1f72..45cde62b3a 100644
--- a/dlls/d3dx9_36/tests/core.c
+++ b/dlls/d3dx9_36/tests/core.c
@@ -722,7 +722,7 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
     todo_wine ok(height == 60, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextA(font, NULL, long_text, -1, &rect, DT_WORDBREAK | DT_NOCLIP, 0xff00ff);
-    todo_wine ok(height == 96, "Got unexpected height %d.\n", height);
+    ok(height == 96, "Got unexpected height %d.\n", height);
 
     SetRect(&rect, 10, 10, 200, 200);
 
@@ -759,7 +759,7 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
     todo_wine ok(height == 60, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, long_textW, -1, &rect, DT_WORDBREAK | DT_NOCLIP, 0xff00ff);
-    todo_wine ok(height == 96, "Got unexpected height %d.\n", height);
+    ok(height == 96, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"a\na", -1, &rect, 0, 0xff00ff);
     ok(height == 24, "Got unexpected height %d.\n", height);
@@ -777,7 +777,7 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
     ok(height == 24, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"a\naaaaa aaaa", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"1\n2\n3\n4\n5\n6", -1, &rect, 0, 0xff00ff);
     ok(height == 48, "Got unexpected height %d.\n", height);
@@ -789,16 +789,16 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
     todo_wine ok(height == 0, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"\t\t\t\t\t\t\t\t\t\ta", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    ok(height == 12, "Got unexpected height %d.\n", height);
+    todo_wine ok(height == 12, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"\taaaaaaaaaa", -1, &rect, DT_WORDBREAK, 0xff00ff);
     todo_wine ok(height == 24, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"\taaaaaaaaaa", -1, &rect, DT_EXPANDTABS | DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"\taaa\taaa\taaa", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 24, "Got unexpected height %d.\n", height);
+    ok(height == 24, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"\taaa\taaa\taaa", -1, &rect, DT_EXPANDTABS | DT_WORDBREAK, 0xff00ff);
     todo_wine ok(height == 48, "Got unexpected height %d.\n", height);
@@ -813,19 +813,19 @@ static void test_ID3DXFont(IDirect3DDevice9 *device)
     todo_wine ok(height == 24, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"aaaaaaaaaaaaaaaaaaaa", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"a                        a", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"aaaa              aaaa", -1, &rect, DT_WORDBREAK, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"aaaa              aaaa", -1, &rect, DT_WORDBREAK | DT_RIGHT, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"aaaa              aaaa", -1, &rect, DT_WORDBREAK | DT_RIGHT, 0xff00ff);
-    todo_wine ok(height == 36, "Got unexpected height %d.\n", height);
+    ok(height == 36, "Got unexpected height %d.\n", height);
 
     height = ID3DXFont_DrawTextW(font, NULL, L"aaaa\naaaa", -1, &rect, DT_BOTTOM, 0xff00ff);
     todo_wine ok(height == 40, "Got unexpected height %d.\n", height);
diff --git a/dlls/d3dx9_37/Makefile.in b/dlls/d3dx9_37/Makefile.in
index a0896df82e..b9dda315f2 100644
--- a/dlls/d3dx9_37/Makefile.in
+++ b/dlls/d3dx9_37/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=37
 MODULE    = d3dx9_37.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_38/Makefile.in b/dlls/d3dx9_38/Makefile.in
index 24bbc3f0cf..adeb4f245a 100644
--- a/dlls/d3dx9_38/Makefile.in
+++ b/dlls/d3dx9_38/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=38
 MODULE    = d3dx9_38.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_39/Makefile.in b/dlls/d3dx9_39/Makefile.in
index a3f7626f33..0e210488f6 100644
--- a/dlls/d3dx9_39/Makefile.in
+++ b/dlls/d3dx9_39/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=39
 MODULE    = d3dx9_39.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_40/Makefile.in b/dlls/d3dx9_40/Makefile.in
index fbbcb0c04e..05349e4b40 100644
--- a/dlls/d3dx9_40/Makefile.in
+++ b/dlls/d3dx9_40/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=40
 MODULE    = d3dx9_40.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_41/Makefile.in b/dlls/d3dx9_41/Makefile.in
index 9b44213117..587e94b7d1 100644
--- a/dlls/d3dx9_41/Makefile.in
+++ b/dlls/d3dx9_41/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=41
 MODULE    = d3dx9_41.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_42/Makefile.in b/dlls/d3dx9_42/Makefile.in
index f725e87471..bb837c4e39 100644
--- a/dlls/d3dx9_42/Makefile.in
+++ b/dlls/d3dx9_42/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=42
 MODULE    = d3dx9_42.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
diff --git a/dlls/d3dx9_43/Makefile.in b/dlls/d3dx9_43/Makefile.in
index dbebc51ad0..0701cde7b7 100644
--- a/dlls/d3dx9_43/Makefile.in
+++ b/dlls/d3dx9_43/Makefile.in
@@ -2,7 +2,7 @@ EXTRADEFS = -DD3DX_SDK_VERSION=43
 MODULE    = d3dx9_43.dll
 IMPORTS   = d3d9 d3dcompiler dxguid d3dxof ole32 gdi32 user32 ucrtbase
 PARENTSRC = ../d3dx9_36
-DELAYIMPORTS = windowscodecs
+DELAYIMPORTS = windowscodecs usp10
 
 EXTRADLLFLAGS = -mno-cygwin
 
-- 
2.24.0




More information about the wine-devel mailing list