From 1c7c84a263af1e0688e2fedb3a98e2f10b55f0eb Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Mon, 22 Nov 2021 01:41:33 +0100 Subject: Introduce and use FLOOR and CEIL macros in Pango units This replaces the code that was trying to implement those via the ROUND macro. This avoids a potential issue with values that already were on whole units being rounded up to the next whole unit in the code that was implementing CEIL this way. --- pango/pango-types.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'pango/pango-types.h') diff --git a/pango/pango-types.h b/pango/pango-types.h index f18225ba..ed86f699 100644 --- a/pango/pango-types.h +++ b/pango/pango-types.h @@ -106,6 +106,32 @@ typedef guint32 PangoGlyph; * PANGO_PIXELS also behaves differently for +512 and -512. */ +/** + * PANGO_UNITS_FLOOR: + * @d: a dimension in Pango units. + * + * Rounds a dimension down to whole device units, but does not + * convert it to device units. + * + * Return value: rounded down dimension in Pango units. + * Since: 1.50 + */ +#define PANGO_UNITS_FLOOR(d) \ + ((d) & ~(PANGO_SCALE - 1)) + +/** + * PANGO_UNITS_CEIL: + * @d: a dimension in Pango units. + * + * Rounds a dimension up to whole device units, but does not + * convert it to device units. + * + * Return value: rounded up dimension in Pango units. + * Since: 1.50 + */ +#define PANGO_UNITS_CEIL(d) \ + (((d) + (PANGO_SCALE - 1)) & ~(PANGO_SCALE - 1)) + /** * PANGO_UNITS_ROUND: * @d: a dimension in Pango units. -- cgit v1.2.1