Tuesday, April 24th 2018, 12:12pm UTC+2

You are not logged in.

  • Login
  • Register



Date of registration: Feb 5th 2015

Posts: 62


Tuesday, April 10th 2018, 2:54pm

Fill circle with a border

Is it possible? It seems GUI_SetPenSize() doesn't affect GUI_DrawCircle(), GUI_DrawEllipse() draws only the border without filling the inside and GUI_FillEllipse() fills the ellipse/circle without any border.

I can't allocate a Memory Device, so I have flickering if I call GUI_FillCircle() two times.

SEGGER - Schoenen

Super Moderator

Date of registration: Aug 13th 2015

Posts: 562


Thursday, April 12th 2018, 10:53am


I would have suggested to cal GUI_FillCircle() twice...

You say you don't have enough memory for a memory device, but there are other ways (depending on the driver) which can be used. Unfortunately, these solution require some memory, too.

Which driver are you using?

With the GUIDRV_Lin you can use multi buffering (of course this requires a lot of memory).

If you are using the GUIDRV_FlexColor driver you could use a cached version of the driver.

Almost all the other driver offer a cahced version, too.

If you are to short on RAM to use one of the solutions above you can still use a bitmap to draw such a circle/ellipse, but this will require some ROM. You might try different formats (use the Bitmap Converter to reduce the amount of colors) depending on your requirements.




Date of registration: Feb 5th 2015

Posts: 62


Thursday, April 12th 2018, 11:10am

If I'm not wrong, a Memory Device memory requirements are lighter than an entire data cache for the driver.

I'm using FlexColor driver without cache.

I know I can create a bitmap, however I don't have enough space in ROM too :-(

I think you should improve GUI_FillCircle(), maybe creating a new GUI_FillCircle_Ex(), that should take into account the pen size.