[PATCH 0/3] MR4127: dwrite: Clang warning fixes
This fixes -Wenum-conversion warnings (enabled by default on clang) and -Wpointer-sign warnings (enums are signed on MSVC target, so their pointers should not be implicitly converted to `unsigned int *`). -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4127
From: Jacek Caban <jacek(a)codeweavers.com> --- dlls/dwrite/dwrite_private.h | 2 +- dlls/dwrite/shape.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/dwrite/dwrite_private.h b/dlls/dwrite/dwrite_private.h index e87e747d295..7ad8e602cb0 100644 --- a/dlls/dwrite/dwrite_private.h +++ b/dlls/dwrite/dwrite_private.h @@ -829,7 +829,7 @@ extern HRESULT opentype_get_vertical_glyph_variants(struct dwrite_fontface *font extern HRESULT shape_get_glyphs(struct scriptshaping_context *context, const unsigned int *scripts) DECLSPEC_HIDDEN; extern HRESULT shape_get_positions(struct scriptshaping_context *context, const unsigned int *scripts) DECLSPEC_HIDDEN; extern HRESULT shape_get_typographic_features(struct scriptshaping_context *context, const unsigned int *scripts, - unsigned int max_tagcount, unsigned int *actual_tagcount, unsigned int *tags) DECLSPEC_HIDDEN; + unsigned int max_tagcount, unsigned int *actual_tagcount, DWRITE_FONT_FEATURE_TAG *tags) DECLSPEC_HIDDEN; extern HRESULT shape_check_typographic_feature(struct scriptshaping_context *context, const unsigned int *scripts, unsigned int tag, unsigned int glyph_count, const UINT16 *glyphs, UINT8 *feature_applies) DECLSPEC_HIDDEN; diff --git a/dlls/dwrite/shape.c b/dlls/dwrite/shape.c index 9b2d8b3f1eb..33f7fb78953 100644 --- a/dlls/dwrite/shape.c +++ b/dlls/dwrite/shape.c @@ -373,7 +373,7 @@ static int __cdecl tag_array_sorting_compare(const void *a, const void *b) }; HRESULT shape_get_typographic_features(struct scriptshaping_context *context, const unsigned int *scripts, - unsigned int max_tagcount, unsigned int *actual_tagcount, unsigned int *tags) + unsigned int max_tagcount, unsigned int *actual_tagcount, DWRITE_FONT_FEATURE_TAG *tags) { unsigned int i, j, script_index, language_index; struct tag_array t = { 0 }; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4127
From: Jacek Caban <jacek(a)codeweavers.com> --- dlls/dwrite/tests/font.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 81008db6f23..e2b5b9163f1 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -7058,7 +7058,8 @@ static void test_GetRecommendedRenderingMode(void) /* IDWriteFontFace3 - and another one */ if (fontface3) { DWRITE_GRID_FIT_MODE gridfit, expected_gridfit; - DWRITE_RENDERING_MODE1 mode1, expected1; + DWRITE_RENDERING_MODE1 mode1; + unsigned int expected1; gasp = get_gasp_flags(fontface, emsize, 1.0f); for (i = 0; i < ARRAY_SIZE(recmode_tests1); ++i) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4127
From: Jacek Caban <jacek(a)codeweavers.com> --- dlls/dwrite/font.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index a73f8239587..59ed2a99a5d 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -193,7 +193,7 @@ static unsigned int get_glyph_bitmap_pitch(DWRITE_RENDERING_MODE1 rendering_mode return rendering_mode == DWRITE_RENDERING_MODE1_ALIASED ? ((width + 31) >> 5) << 2 : (width + 3) / 4 * 4; } -static HRESULT dwrite_fontface_get_glyph_bitmap(struct dwrite_fontface *fontface, DWRITE_RENDERING_MODE rendering_mode, +static HRESULT dwrite_fontface_get_glyph_bitmap(struct dwrite_fontface *fontface, DWRITE_RENDERING_MODE1 rendering_mode, unsigned int *is_1bpp, struct dwrite_glyphbitmap *bitmap) { struct cache_key key = { .size = bitmap->emsize, .glyph = bitmap->glyph, .mode = DWRITE_MEASURING_MODE_NATURAL }; @@ -1798,7 +1798,7 @@ static HRESULT WINAPI dwritefontface3_GetRecommendedRenderingMode(IDWriteFontFac IDWriteRenderingParams *params, DWRITE_RENDERING_MODE1 *rendering_mode, DWRITE_GRID_FIT_MODE *gridfit_mode) { struct dwrite_fontface *fontface = impl_from_IDWriteFontFace5(iface); - unsigned int flags; + unsigned int flags, mode; FLOAT emthreshold; TRACE("%p, %.8e, %.8e, %.8e, %p, %d, %d, %d, %p, %p, %p.\n", iface, emSize, dpiX, dpiY, m, is_sideways, threshold, @@ -1821,11 +1821,12 @@ static HRESULT WINAPI dwritefontface3_GetRecommendedRenderingMode(IDWriteFontFac hr = IDWriteRenderingParams_QueryInterface(params, &IID_IDWriteRenderingParams3, (void**)¶ms3); if (hr == S_OK) { *rendering_mode = IDWriteRenderingParams3_GetRenderingMode1(params3); - *gridfit_mode = IDWriteRenderingParams3_GetGridFitMode(params3); + mode = IDWriteRenderingParams3_GetGridFitMode(params3); IDWriteRenderingParams3_Release(params3); } else - *rendering_mode = IDWriteRenderingParams_GetRenderingMode(params); + mode = IDWriteRenderingParams_GetRenderingMode(params); + *rendering_mode = mode; } emthreshold = threshold == DWRITE_OUTLINE_THRESHOLD_ANTIALIASED ? RECOMMENDED_OUTLINE_AA_THRESHOLD : RECOMMENDED_OUTLINE_A_THRESHOLD; @@ -1834,9 +1835,10 @@ static HRESULT WINAPI dwritefontface3_GetRecommendedRenderingMode(IDWriteFontFac if (*rendering_mode == DWRITE_RENDERING_MODE1_DEFAULT) { if (emSize >= emthreshold) - *rendering_mode = DWRITE_RENDERING_MODE1_OUTLINE; + mode = DWRITE_RENDERING_MODE1_OUTLINE; else - *rendering_mode = fontface_renderingmode_from_measuringmode(measuring_mode, emSize, flags); + mode = fontface_renderingmode_from_measuringmode(measuring_mode, emSize, flags); + *rendering_mode = mode; } if (*gridfit_mode == DWRITE_GRID_FIT_MODE_DEFAULT) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4127
Nikolay Sivov (@nsivov) commented about dlls/dwrite/shape.c:
};
HRESULT shape_get_typographic_features(struct scriptshaping_context *context, const unsigned int *scripts, - unsigned int max_tagcount, unsigned int *actual_tagcount, unsigned int *tags) + unsigned int max_tagcount, unsigned int *actual_tagcount, DWRITE_FONT_FEATURE_TAG *tags) { The plan here was to eventually move shape.c and everything related to a separate library, and for that reason depending on dwrite types is not great. But this is small enough to revert later when time comes, if at all.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4127#note_48992
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4127
participants (3)
-
Jacek Caban -
Jacek Caban (@jacek) -
Nikolay Sivov (@nsivov)