From de06d5d9e7bf77ec8f0d06c05c90778cffce16d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Tue, 22 Jun 2021 16:08:30 +0200 Subject: [PATCH] kms/update: Add init helper macros for fixed 16 rects META_FIXED_16_INIT(), taking MetaFixed16's, and META_FIXED_16_INIT_INT() taking integers, converting them to MetaFixed16. Part-of: --- src/backends/native/meta-kms-update.h | 9 +++++++++ src/tests/native-kms-updates.c | 19 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/backends/native/meta-kms-update.h b/src/backends/native/meta-kms-update.h index 70febb566..deadbd5fc 100644 --- a/src/backends/native/meta-kms-update.h +++ b/src/backends/native/meta-kms-update.h @@ -191,6 +191,15 @@ meta_fixed_16_rectangle_to_rectangle (MetaFixed16Rectangle fixed_rect) }; } +#define META_FIXED_16_RECTANGLE_INIT(_x,_y,_w,_h) \ + (MetaFixed16Rectangle) { .x = (_x), .y = (_y), .width = (_w), .height = (_h) } + +#define META_FIXED_16_RECTANGLE_INIT_INT(_x,_y,_w,_h) \ + META_FIXED_16_RECTANGLE_INIT (meta_fixed_16_from_int (_x), \ + meta_fixed_16_from_int (_y), \ + meta_fixed_16_from_int (_w), \ + meta_fixed_16_from_int (_h)) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (MetaKmsFeedback, meta_kms_feedback_free) G_DEFINE_AUTOPTR_CLEANUP_FUNC (MetaKmsUpdate, meta_kms_update_free) diff --git a/src/tests/native-kms-updates.c b/src/tests/native-kms-updates.c index 28799c712..86e99e2c9 100644 --- a/src/tests/native-kms-updates.c +++ b/src/tests/native-kms-updates.c @@ -83,11 +83,30 @@ meta_test_kms_update_sanity (void) meta_kms_update_free (update); } +static void +meta_test_kms_update_fixed16 (void) +{ + MetaFixed16Rectangle rect16; + + g_assert_cmpint (meta_fixed_16_from_int (12345), ==, 809041920); + g_assert_cmpint (meta_fixed_16_to_int (809041920), ==, 12345); + g_assert_cmpint (meta_fixed_16_from_int (-12345), ==, -809041920); + g_assert_cmpint (meta_fixed_16_to_int (-809041920), ==, -12345); + + rect16 = META_FIXED_16_RECTANGLE_INIT_INT (100, 200, 300, 400); + g_assert_cmpint (rect16.x, ==, 6553600); + g_assert_cmpint (rect16.y, ==, 13107200); + g_assert_cmpint (rect16.width, ==, 19660800); + g_assert_cmpint (rect16.height, ==, 26214400); +} + static void init_tests (void) { g_test_add_func ("/backends/native/kms/update/sanity", meta_test_kms_update_sanity); + g_test_add_func ("/backends/native/kms/update/fixed16", + meta_test_kms_update_fixed16); } int