samples: display: Added support for BGR565
Added support for BGR565 to display sample Signed-off-by: Jan Van Winkel <jan.van_winkel@dxplore.eu>
This commit is contained in:
parent
9041b0f119
commit
6ebd0e3f02
1 changed files with 22 additions and 2 deletions
|
@ -102,8 +102,7 @@ static void fill_buffer_rgb888(enum corner corner, u8_t grey, u8_t *buf,
|
|||
}
|
||||
}
|
||||
|
||||
static void fill_buffer_rgb565(enum corner corner, u8_t grey, u8_t *buf,
|
||||
size_t buf_size)
|
||||
static u16_t get_rgb565_color(enum corner corner, u8_t grey)
|
||||
{
|
||||
u16_t color = 0;
|
||||
u16_t grey_5bit;
|
||||
|
@ -124,6 +123,13 @@ static void fill_buffer_rgb565(enum corner corner, u8_t grey, u8_t *buf,
|
|||
color = grey_5bit << 11 | grey_5bit << (5 + 1) | grey_5bit;
|
||||
break;
|
||||
}
|
||||
return color;
|
||||
}
|
||||
|
||||
static void fill_buffer_rgb565(enum corner corner, u8_t grey, u8_t *buf,
|
||||
size_t buf_size)
|
||||
{
|
||||
u16_t color = get_rgb565_color(corner, grey);
|
||||
|
||||
for (size_t idx = 0; idx < buf_size; idx += 2) {
|
||||
*(buf + idx + 0) = (color >> 8) & 0xFFu;
|
||||
|
@ -131,6 +137,16 @@ static void fill_buffer_rgb565(enum corner corner, u8_t grey, u8_t *buf,
|
|||
}
|
||||
}
|
||||
|
||||
static void fill_buffer_bgr565(enum corner corner, u8_t grey, u8_t *buf,
|
||||
size_t buf_size)
|
||||
{
|
||||
u16_t color = get_rgb565_color(corner, grey);
|
||||
|
||||
for (size_t idx = 0; idx < buf_size; idx += 2) {
|
||||
*(u16_t *)(buf + idx) = color;
|
||||
}
|
||||
}
|
||||
|
||||
static void fill_buffer_mono(enum corner corner, u8_t grey, u8_t *buf,
|
||||
size_t buf_size)
|
||||
{
|
||||
|
@ -216,6 +232,10 @@ void main(void)
|
|||
fill_buffer_fnc = fill_buffer_rgb565;
|
||||
buf_size *= 2;
|
||||
break;
|
||||
case PIXEL_FORMAT_BGR_565:
|
||||
fill_buffer_fnc = fill_buffer_bgr565;
|
||||
buf_size *= 2;
|
||||
break;
|
||||
case PIXEL_FORMAT_MONO01:
|
||||
case PIXEL_FORMAT_MONO10:
|
||||
fill_buffer_fnc = fill_buffer_mono;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue