dwrite/layout: Constify some internal helpers arguments.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov 2022-09-13 08:56:41 +03:00 committed by Alexandre Julliard
parent b783100773
commit 31ab7f87db

View file

@ -301,7 +301,7 @@ static inline const char *debugstr_rundescr(const DWRITE_GLYPH_RUN_DESCRIPTION *
return wine_dbg_sprintf("[%u,%u)", descr->textPosition, descr->textPosition + descr->stringLength); return wine_dbg_sprintf("[%u,%u)", descr->textPosition, descr->textPosition + descr->stringLength);
} }
static inline BOOL is_layout_gdi_compatible(struct dwrite_textlayout *layout) static inline BOOL is_layout_gdi_compatible(const struct dwrite_textlayout *layout)
{ {
return layout->measuringmode != DWRITE_MEASURING_MODE_NATURAL; return layout->measuringmode != DWRITE_MEASURING_MODE_NATURAL;
} }
@ -455,7 +455,7 @@ static HRESULT layout_update_breakpoints_range(struct dwrite_textlayout *layout,
return S_OK; return S_OK;
} }
static struct layout_range *get_layout_range_by_pos(struct dwrite_textlayout *layout, UINT32 pos) static struct layout_range *get_layout_range_by_pos(const struct dwrite_textlayout *layout, UINT32 pos)
{ {
struct layout_range *cur; struct layout_range *cur;
@ -469,7 +469,7 @@ static struct layout_range *get_layout_range_by_pos(struct dwrite_textlayout *la
return NULL; return NULL;
} }
static struct layout_range_header *get_layout_range_header_by_pos(struct list *ranges, UINT32 pos) static struct layout_range_header *get_layout_range_header_by_pos(const struct list *ranges, UINT32 pos)
{ {
struct layout_range_header *cur; struct layout_range_header *cur;
@ -577,7 +577,7 @@ static void layout_set_cluster_metrics(struct dwrite_textlayout *layout, const s
#define SCALE_FONT_METRIC(metric, emSize, metrics) ((FLOAT)(metric) * (emSize) / (FLOAT)(metrics)->designUnitsPerEm) #define SCALE_FONT_METRIC(metric, emSize, metrics) ((FLOAT)(metric) * (emSize) / (FLOAT)(metrics)->designUnitsPerEm)
static void layout_get_font_metrics(struct dwrite_textlayout *layout, IDWriteFontFace *fontface, FLOAT emsize, static void layout_get_font_metrics(const struct dwrite_textlayout *layout, IDWriteFontFace *fontface, float emsize,
DWRITE_FONT_METRICS *fontmetrics) DWRITE_FONT_METRICS *fontmetrics)
{ {
if (is_layout_gdi_compatible(layout)) { if (is_layout_gdi_compatible(layout)) {
@ -589,7 +589,7 @@ static void layout_get_font_metrics(struct dwrite_textlayout *layout, IDWriteFon
IDWriteFontFace_GetMetrics(fontface, fontmetrics); IDWriteFontFace_GetMetrics(fontface, fontmetrics);
} }
static void layout_get_font_height(FLOAT emsize, DWRITE_FONT_METRICS *fontmetrics, FLOAT *baseline, FLOAT *height) static inline void layout_get_font_height(float emsize, const DWRITE_FONT_METRICS *fontmetrics, float *baseline, float *height)
{ {
*baseline = SCALE_FONT_METRIC(fontmetrics->ascent + fontmetrics->lineGap, emsize, fontmetrics); *baseline = SCALE_FONT_METRIC(fontmetrics->ascent + fontmetrics->lineGap, emsize, fontmetrics);
*height = SCALE_FONT_METRIC(fontmetrics->ascent + fontmetrics->descent + fontmetrics->lineGap, emsize, fontmetrics); *height = SCALE_FONT_METRIC(fontmetrics->ascent + fontmetrics->descent + fontmetrics->lineGap, emsize, fontmetrics);
@ -854,7 +854,7 @@ static HRESULT layout_shape_add_empty_user_features_range(struct shaping_context
return S_OK; return S_OK;
} }
static HRESULT layout_shape_get_user_features(struct dwrite_textlayout *layout, struct shaping_context *context) static HRESULT layout_shape_get_user_features(const struct dwrite_textlayout *layout, struct shaping_context *context)
{ {
unsigned int i, f, start = 0, r, covered_length = 0, length, feature_count; unsigned int i, f, start = 0, r, covered_length = 0, length, feature_count;
struct regular_layout_run *run = context->run; struct regular_layout_run *run = context->run;
@ -989,8 +989,8 @@ static HRESULT layout_shape_get_glyphs(struct dwrite_textlayout *layout, struct
return hr; return hr;
} }
static struct layout_range_spacing *layout_get_next_spacing_range(struct dwrite_textlayout *layout, static struct layout_range_spacing *layout_get_next_spacing_range(const struct dwrite_textlayout *layout,
struct layout_range_spacing *cur) const struct layout_range_spacing *cur)
{ {
return (struct layout_range_spacing *)LIST_ENTRY(list_next(&layout->spacing, &cur->h.entry), return (struct layout_range_spacing *)LIST_ENTRY(list_next(&layout->spacing, &cur->h.entry),
struct layout_range_header, entry); struct layout_range_header, entry);
@ -1265,15 +1265,15 @@ static HRESULT layout_compute(struct dwrite_textlayout *layout)
return hr; return hr;
} }
static inline FLOAT get_cluster_range_width(struct dwrite_textlayout *layout, UINT32 start, UINT32 end) static inline float get_cluster_range_width(const struct dwrite_textlayout *layout, UINT32 start, UINT32 end)
{ {
FLOAT width = 0.0f; float width = 0.0f;
for (; start < end; start++) for (; start < end; start++)
width += layout->clustermetrics[start].width; width += layout->clustermetrics[start].width;
return width; return width;
} }
static inline IUnknown *layout_get_effect_from_pos(struct dwrite_textlayout *layout, UINT32 pos) static inline IUnknown *layout_get_effect_from_pos(const struct dwrite_textlayout *layout, UINT32 pos)
{ {
struct layout_range_header *h = get_layout_range_header_by_pos(&layout->effects, pos); struct layout_range_header *h = get_layout_range_header_by_pos(&layout->effects, pos);
return ((struct layout_range_iface*)h)->iface; return ((struct layout_range_iface*)h)->iface;
@ -1289,19 +1289,19 @@ struct layout_final_splitting_params {
IUnknown *effect; IUnknown *effect;
}; };
static inline BOOL layout_get_strikethrough_from_pos(struct dwrite_textlayout *layout, UINT32 pos) static inline BOOL layout_get_strikethrough_from_pos(const struct dwrite_textlayout *layout, UINT32 pos)
{ {
struct layout_range_header *h = get_layout_range_header_by_pos(&layout->strike_ranges, pos); struct layout_range_header *h = get_layout_range_header_by_pos(&layout->strike_ranges, pos);
return ((struct layout_range_bool*)h)->value; return ((struct layout_range_bool*)h)->value;
} }
static inline BOOL layout_get_underline_from_pos(struct dwrite_textlayout *layout, UINT32 pos) static inline BOOL layout_get_underline_from_pos(const struct dwrite_textlayout *layout, UINT32 pos)
{ {
struct layout_range_header *h = get_layout_range_header_by_pos(&layout->underline_ranges, pos); struct layout_range_header *h = get_layout_range_header_by_pos(&layout->underline_ranges, pos);
return ((struct layout_range_bool*)h)->value; return ((struct layout_range_bool*)h)->value;
} }
static void layout_splitting_params_from_pos(struct dwrite_textlayout *layout, UINT32 pos, static void layout_splitting_params_from_pos(const struct dwrite_textlayout *layout, UINT32 pos,
struct layout_final_splitting_params *params) struct layout_final_splitting_params *params)
{ {
params->strikethrough = layout_get_strikethrough_from_pos(layout, pos); params->strikethrough = layout_get_strikethrough_from_pos(layout, pos);
@ -1317,7 +1317,7 @@ static BOOL is_same_splitting_params(const struct layout_final_splitting_params
left->effect == right->effect; left->effect == right->effect;
} }
static void layout_get_erun_font_metrics(struct dwrite_textlayout *layout, struct layout_effective_run *erun, static void layout_get_erun_font_metrics(const struct dwrite_textlayout *layout, const struct layout_effective_run *erun,
DWRITE_FONT_METRICS *metrics) DWRITE_FONT_METRICS *metrics)
{ {
memset(metrics, 0, sizeof(*metrics)); memset(metrics, 0, sizeof(*metrics));
@ -1491,7 +1491,7 @@ static HRESULT layout_set_line_metrics(struct dwrite_textlayout *layout, DWRITE_
return S_OK; return S_OK;
} }
static inline struct layout_effective_run *layout_get_next_erun(struct dwrite_textlayout *layout, static inline struct layout_effective_run *layout_get_next_erun(const struct dwrite_textlayout *layout,
const struct layout_effective_run *cur) const struct layout_effective_run *cur)
{ {
struct list *e; struct list *e;
@ -1505,7 +1505,7 @@ static inline struct layout_effective_run *layout_get_next_erun(struct dwrite_te
return LIST_ENTRY(e, struct layout_effective_run, entry); return LIST_ENTRY(e, struct layout_effective_run, entry);
} }
static inline struct layout_effective_run *layout_get_prev_erun(struct dwrite_textlayout *layout, static inline struct layout_effective_run *layout_get_prev_erun(const struct dwrite_textlayout *layout,
const struct layout_effective_run *cur) const struct layout_effective_run *cur)
{ {
struct list *e; struct list *e;
@ -1519,7 +1519,7 @@ static inline struct layout_effective_run *layout_get_prev_erun(struct dwrite_te
return LIST_ENTRY(e, struct layout_effective_run, entry); return LIST_ENTRY(e, struct layout_effective_run, entry);
} }
static inline struct layout_effective_inline *layout_get_next_inline_run(struct dwrite_textlayout *layout, static inline struct layout_effective_inline *layout_get_next_inline_run(const struct dwrite_textlayout *layout,
const struct layout_effective_inline *cur) const struct layout_effective_inline *cur)
{ {
struct list *e; struct list *e;
@ -1533,8 +1533,8 @@ static inline struct layout_effective_inline *layout_get_next_inline_run(struct
return LIST_ENTRY(e, struct layout_effective_inline, entry); return LIST_ENTRY(e, struct layout_effective_inline, entry);
} }
static FLOAT layout_get_line_width(struct dwrite_textlayout *layout, static float layout_get_line_width(const struct dwrite_textlayout *layout, const struct layout_effective_run *erun,
struct layout_effective_run *erun, struct layout_effective_inline *inrun, UINT32 line) const struct layout_effective_inline *inrun, UINT32 line)
{ {
FLOAT width = 0.0f; FLOAT width = 0.0f;
@ -1645,7 +1645,7 @@ static void layout_apply_trailing_alignment(struct dwrite_textlayout *layout)
layout->metrics.left = is_rtl ? 0.0f : layout->metrics.layoutWidth - layout->metrics.width; layout->metrics.left = is_rtl ? 0.0f : layout->metrics.layoutWidth - layout->metrics.width;
} }
static inline FLOAT layout_get_centered_shift(struct dwrite_textlayout *layout, BOOL skiptransform, static inline float layout_get_centered_shift(const struct dwrite_textlayout *layout, BOOL skiptransform,
FLOAT width, FLOAT det) FLOAT width, FLOAT det)
{ {
if (is_layout_gdi_compatible(layout)) { if (is_layout_gdi_compatible(layout)) {
@ -1765,15 +1765,15 @@ struct layout_underline_splitting_params {
IUnknown *effect; /* does not hold another reference */ IUnknown *effect; /* does not hold another reference */
}; };
static void init_u_splitting_params_from_erun(struct layout_effective_run *erun, static void init_u_splitting_params_from_erun(const struct layout_effective_run *erun,
struct layout_underline_splitting_params *params) struct layout_underline_splitting_params *params)
{ {
params->locale = erun->run->u.regular.descr.localeName; params->locale = erun->run->u.regular.descr.localeName;
params->effect = erun->effect; params->effect = erun->effect;
} }
static BOOL is_same_u_splitting(struct layout_underline_splitting_params *left, static BOOL is_same_u_splitting(const struct layout_underline_splitting_params *left,
struct layout_underline_splitting_params *right) const struct layout_underline_splitting_params *right)
{ {
return left->effect == right->effect && !wcsicmp(left->locale, right->locale); return left->effect == right->effect && !wcsicmp(left->locale, right->locale);
} }
@ -2815,7 +2815,7 @@ done:
return S_OK; return S_OK;
} }
static inline const WCHAR *get_string_attribute_ptr(struct layout_range *range, enum layout_range_attr_kind kind) static inline const WCHAR *get_string_attribute_ptr(const struct layout_range *range, enum layout_range_attr_kind kind)
{ {
const WCHAR *str; const WCHAR *str;
@ -2833,8 +2833,8 @@ static inline const WCHAR *get_string_attribute_ptr(struct layout_range *range,
return str; return str;
} }
static HRESULT get_string_attribute_length(struct dwrite_textlayout *layout, enum layout_range_attr_kind kind, UINT32 position, static HRESULT get_string_attribute_length(const struct dwrite_textlayout *layout, enum layout_range_attr_kind kind,
UINT32 *length, DWRITE_TEXT_RANGE *r) UINT32 position, UINT32 *length, DWRITE_TEXT_RANGE *r)
{ {
struct layout_range *range; struct layout_range *range;
const WCHAR *str; const WCHAR *str;
@ -2850,8 +2850,8 @@ static HRESULT get_string_attribute_length(struct dwrite_textlayout *layout, enu
return return_range(&range->h, r); return return_range(&range->h, r);
} }
static HRESULT get_string_attribute_value(struct dwrite_textlayout *layout, enum layout_range_attr_kind kind, UINT32 position, static HRESULT get_string_attribute_value(const struct dwrite_textlayout *layout, enum layout_range_attr_kind kind,
WCHAR *ret, UINT32 length, DWRITE_TEXT_RANGE *r) UINT32 position, WCHAR *ret, UINT32 length, DWRITE_TEXT_RANGE *r)
{ {
struct layout_range *range; struct layout_range *range;
const WCHAR *str; const WCHAR *str;
@ -3795,8 +3795,7 @@ static void layout_get_erun_bbox(struct dwrite_textlayout *layout, struct layout
d2d_rect_offset(bbox, run->origin.x + run->align_dx, run->origin.y); d2d_rect_offset(bbox, run->origin.x + run->align_dx, run->origin.y);
} }
static void layout_get_inlineobj_bbox(struct dwrite_textlayout *layout, struct layout_effective_inline *run, static void layout_get_inlineobj_bbox(const struct layout_effective_inline *run, D2D1_RECT_F *bbox)
D2D1_RECT_F *bbox)
{ {
DWRITE_OVERHANG_METRICS overhang_metrics = { 0 }; DWRITE_OVERHANG_METRICS overhang_metrics = { 0 };
DWRITE_INLINE_OBJECT_METRICS metrics = { 0 }; DWRITE_INLINE_OBJECT_METRICS metrics = { 0 };
@ -3856,7 +3855,7 @@ static HRESULT WINAPI dwritetextlayout_GetOverhangMetrics(IDWriteTextLayout4 *if
{ {
D2D1_RECT_F object_bbox; D2D1_RECT_F object_bbox;
layout_get_inlineobj_bbox(layout, inline_run, &object_bbox); layout_get_inlineobj_bbox(inline_run, &object_bbox);
d2d_rect_union(&bbox, &object_bbox); d2d_rect_union(&bbox, &object_bbox);
} }