Re: [PATCH v4 1/3] drm/rect: Add DRM_RECT_INIT() macro

From: Jani Nikula
Date: Tue Jun 21 2022 - 06:45:35 EST


On Tue, 21 Jun 2022, Thomas Zimmermann <tzimmermann@xxxxxxx> wrote:
> Hi
>
> Am 21.06.22 um 11:38 schrieb David Gow:
>> On Tue, Jun 21, 2022 at 12:06 AM José Expósito
>> <jose.exposito89@xxxxxxxxx> wrote:
>>>
>>> Add a helper macro to initialize a rectangle from x, y, width and
>>> height information.
>>>
>>> Reviewed-by: Jani Nikula <jani.nikula@xxxxxxxxx>
>>> Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
>>> Signed-off-by: José Expósito <jose.exposito89@xxxxxxxxx>
>>> ---
>>
>> This looks good to me, though I have one minor concern about the macro
>> name. (But if it's okay with the DRM folks, which it seems to be, I
>> won't object.)
>>
>> Either way,
>> Reviewed-by: David Gow <davidgow@xxxxxxxxxx>
>>
>>> include/drm/drm_rect.h | 16 ++++++++++++++++
>>> 1 file changed, 16 insertions(+)
>>>
>>> diff --git a/include/drm/drm_rect.h b/include/drm/drm_rect.h
>>> index 6f6e19bd4dac..e8d94fca2703 100644
>>> --- a/include/drm/drm_rect.h
>>> +++ b/include/drm/drm_rect.h
>>> @@ -47,6 +47,22 @@ struct drm_rect {
>>> int x1, y1, x2, y2;
>>> };
>>>
>>> +/**
>>> + * DRM_RECT_INIT - initialize a rectangle from x/y/w/h
>>> + * @x: x coordinate
>>> + * @y: y coordinate
>>> + * @w: width
>>> + * @h: height
>>> + *
>>> + * RETURNS:
>>> + * A new rectangle of the specified size.
>>> + */
>>> +#define DRM_RECT_INIT(x, y, w, h) ((struct drm_rect){ \
>>> + .x1 = (x), \
>>> + .y1 = (y), \
>>> + .x2 = (x) + (w), \
>>> + .y2 = (y) + (h) })
>>> +
>>
>> My only slight concern here is that it might be a little bit confusing
>> that a macro called DRM_RECT_INIT() accepts x/y/w/h, whereas the
>> actual struct drm_rect is x1/y1/x2/y2. If the macro were called
>> something like DRM_RECT_INIT_FROM_XYWH() or similar.
>
> The existing drm_rect_init() function uses xywh arguments. So the
> current name is consistent with existing practice. I don't think we
> refer to x2,y2 much, if ever.

Agreed, and if we initialized with x1,y1,x2,y2 we wouldn't need the
function/macro in the first place.

BR,
Jani.

>
> Best regards
> Thomas
>
>>
>>
>>> /**
>>> * DRM_RECT_FMT - printf string for &struct drm_rect
>>> */
>>> --
>>> 2.25.1
>>>

--
Jani Nikula, Intel Open Source Graphics Center