[PATCH v2 1/4] GUI: Add a function to draw vertical/horizontal bars

Andrey Smirnov andrew.smirnov at gmail.com
Mon Jun 27 20:52:03 PDT 2016


On Sun, Jun 26, 2016 at 10:33 PM, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Thu, Jun 23, 2016 at 10:35:32PM -0700, Andrey Smirnov wrote:
>> Add a function to draw solid vertical or horizontal bars.
>>
>> Signed-off-by: Andrey Smirnov <andrew.smirnov at gmail.com>
>> ---
>>  include/gui/graphic_utils.h |  3 +++
>>  lib/gui/graphic_utils.c     | 26 ++++++++++++++++++++++++++
>>  2 files changed, 29 insertions(+)
>>
>> diff --git a/include/gui/graphic_utils.h b/include/gui/graphic_utils.h
>> index 231b3a9..279fdf9 100644
>> --- a/include/gui/graphic_utils.h
>> +++ b/include/gui/graphic_utils.h
>> @@ -28,4 +28,7 @@ void gu_invert_area(struct fb_info *info, void *buf, int startx, int starty, int
>>  void gu_screen_blit_area(struct screen *sc, int startx, int starty, int width,
>>               int height);
>>
>> +void gu_fill_rectangle(struct screen *sc,
>> +                    int x1, int y1, int x2, int y2,
>> +                    u8 r, u8 g, u8 b, u8 a);
>>  #endif /* __GRAPHIC_UTILS_H__ */
>> diff --git a/lib/gui/graphic_utils.c b/lib/gui/graphic_utils.c
>> index 2fe9fa3..c6c4373 100644
>> --- a/lib/gui/graphic_utils.c
>> +++ b/lib/gui/graphic_utils.c
>> @@ -336,3 +336,29 @@ void gu_screen_blit(struct screen *sc)
>>       if (info->screen_base_shadow)
>>               memcpy(info->screen_base, info->screen_base_shadow, sc->fbsize);
>>  }
>> +
>> +void gu_fill_rectangle(struct screen *sc,
>> +                    int x1, int y1, int x2, int y2,
>> +                    u8 r, u8 g, u8 b, u8 a)
>> +{
>> +     int y;
>> +     void *buf = gui_screen_render_buffer(sc);
>> +
>> +     BUG_ON(x1 < 0 || y1 < 0 ||
>> +            x2 < 0 || y2 < 0);
>
> Not sure if this should be a bug. How about cropping the rectangle to
> the screen boundaries instead? The same test should be donw for the
> lower right corner.

Sure, I have no problem with that, will change in v3.

Andrey



More information about the barebox mailing list