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 *`).
From: Jacek Caban jacek@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 };
From: Jacek Caban jacek@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)
From: Jacek Caban jacek@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) {
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.
This merge request was approved by Nikolay Sivov.