This is an automated email from the ASF dual-hosted git repository.
aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-apps.git
The following commit(s) were added to refs/heads/master by this push:
new 4136d42 Change FBIO_UPDATE argument from nxgl_rect_s to fb_area_s
4136d42 is described below
commit 4136d425963617dfe53b782c784bf732c231e759
Author: Xiang Xiao <[email protected]>
AuthorDate: Thu Jul 23 12:27:14 2020 +0800
Change FBIO_UPDATE argument from nxgl_rect_s to fb_area_s
Signed-off-by: Xiang Xiao <[email protected]>
Change-Id: Ibaf4b0180afecdcd3248693a3092c8a23e22a2fa
---
examples/fb/fb_main.c | 94 +++++++++++++++++++-------------------
examples/lvgldemo/fbdev.c | 50 ++++++++++----------
graphics/pdcurs34/nuttx/pdcdisp.c | 96 +++++++++++++++++++--------------------
3 files changed, 119 insertions(+), 121 deletions(-)
diff --git a/examples/fb/fb_main.c b/examples/fb/fb_main.c
index 96edbcf..86a6b13 100644
--- a/examples/fb/fb_main.c
+++ b/examples/fb/fb_main.c
@@ -47,8 +47,6 @@
#include <fcntl.h>
#include <errno.h>
-#include <nuttx/nx/nx.h>
-#include <nuttx/nx/nxglib.h>
#include <nuttx/video/fb.h>
#include <nuttx/video/rgbcolors.h>
@@ -83,17 +81,20 @@ static const char g_default_fbdev[] =
CONFIG_EXAMPLES_FB_DEFAULTFB;
static const uint32_t g_rgb24[NCOLORS] =
{
- RGB24_VIOLET, RGB24_BLUE, RGB24_GREEN, RGB24_YELLOW, RGB24_ORANGE, RGB24_RED
+ RGB24_VIOLET, RGB24_BLUE, RGB24_GREEN,
+ RGB24_YELLOW, RGB24_ORANGE, RGB24_RED
};
static const uint16_t g_rgb16[NCOLORS] =
{
- RGB16_VIOLET, RGB16_BLUE, RGB16_GREEN, RGB16_YELLOW, RGB16_ORANGE, RGB16_RED
+ RGB16_VIOLET, RGB16_BLUE, RGB16_GREEN,
+ RGB16_YELLOW, RGB16_ORANGE, RGB16_RED
};
static const uint8_t g_rgb8[NCOLORS] =
{
- RGB8_VIOLET, RGB8_BLUE, RGB8_GREEN, RGB8_YELLOW, RGB8_ORANGE, RGB8_RED
+ RGB8_VIOLET, RGB8_BLUE, RGB8_GREEN,
+ RGB8_YELLOW, RGB8_ORANGE, RGB8_RED
};
/****************************************************************************
@@ -105,18 +106,18 @@ static const uint8_t g_rgb8[NCOLORS] =
****************************************************************************/
static void draw_rect32(FAR struct fb_state_s *state,
- FAR struct nxgl_rect_s *rect, int color)
+ FAR struct fb_area_s *area, int color)
{
FAR uint32_t *dest;
FAR uint8_t *row;
int x;
int y;
- row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * rect->pt1.y;
- for (y = rect->pt1.y; y <= rect->pt2.y; y++)
+ row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * area->y;
+ for (y = 0; y < area->h; y++)
{
- dest = ((FAR uint32_t *)row) + rect->pt1.x;
- for (x = rect->pt1.x; x <= rect->pt2.x; x++)
+ dest = ((FAR uint32_t *)row) + area->x;
+ for (x = 0; x < area->w; x++)
{
*dest++ = g_rgb24[color];
}
@@ -126,18 +127,18 @@ static void draw_rect32(FAR struct fb_state_s *state,
}
static void draw_rect16(FAR struct fb_state_s *state,
- FAR struct nxgl_rect_s *rect, int color)
+ FAR struct fb_area_s *area, int color)
{
FAR uint16_t *dest;
FAR uint8_t *row;
int x;
int y;
- row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * rect->pt1.y;
- for (y = rect->pt1.y; y <= rect->pt2.y; y++)
+ row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * area->y;
+ for (y = 0; y < area->h; y++)
{
- dest = ((FAR uint16_t *)row) + rect->pt1.x;
- for (x = rect->pt1.x; x <= rect->pt2.x; x++)
+ dest = ((FAR uint16_t *)row) + area->x;
+ for (x = 0; x < area->w; x++)
{
*dest++ = g_rgb16[color];
}
@@ -147,18 +148,18 @@ static void draw_rect16(FAR struct fb_state_s *state,
}
static void draw_rect8(FAR struct fb_state_s *state,
- FAR struct nxgl_rect_s *rect, int color)
+ FAR struct fb_area_s *area, int color)
{
FAR uint8_t *dest;
FAR uint8_t *row;
int x;
int y;
- row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * rect->pt1.y;
- for (y = rect->pt1.y; y <= rect->pt2.y; y++)
+ row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * area->y;
+ for (y = 0; y < area->h; y++)
{
- dest = row + rect->pt1.x;
- for (x = rect->pt1.x; x <= rect->pt2.x; x++)
+ dest = row + area->x;
+ for (x = 0; x < area->w; x++)
{
*dest++ = g_rgb8[color];
}
@@ -168,7 +169,7 @@ static void draw_rect8(FAR struct fb_state_s *state,
}
static void draw_rect1(FAR struct fb_state_s *state,
- FAR struct nxgl_rect_s *rect, int color)
+ FAR struct fb_area_s *area, int color)
{
FAR uint8_t *pixel;
FAR uint8_t *row;
@@ -182,7 +183,7 @@ static void draw_rect1(FAR struct fb_state_s *state,
/* Calculate the framebuffer address of the first row to draw on */
- row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * rect->pt1.y;
+ row = (FAR uint8_t *)state->fbmem + state->pinfo.stride * area->y;
/* Calculate the start byte position rounding down so that we get the
* first byte containing any part of the pixel sequence. Then calculate
@@ -190,19 +191,19 @@ static void draw_rect1(FAR struct fb_state_s *state,
* final pixels of the sequence.
*/
- startx = (rect->pt1.x >> 3);
- endx = ((rect->pt2.x + 7) >> 3);
+ startx = (area->x >> 3);
+ endx = ((area->x + area->w + 6) >> 3);
/* Calculate a mask on the first and last bytes of the sequence that may
* not be completely filled with pixel.
*/
- lmask = 0xff << (8 - (rect->pt1.x & 7));
- rmask = 0xff >> (rect->pt2.x & 7);
+ lmask = 0xff << (8 - (area->x & 7));
+ rmask = 0xff >> ((area->x + area->w - 1) & 7);
/* Now draw each row, one-at-a-time */
- for (y = rect->pt1.y; y <= rect->pt2.y; y++)
+ for (y = 0; y < area->h; y++)
{
/* 'pixel' points to the 1st pixel the next row */
@@ -218,7 +219,6 @@ static void draw_rect1(FAR struct fb_state_s *state,
}
else
{
-
/* Special case the first byte of the row */
*pixel = (*pixel & lmask) | (color8 & ~lmask);
@@ -234,42 +234,42 @@ static void draw_rect1(FAR struct fb_state_s *state,
/* Handle the final byte of the row */
*pixel = (*pixel & rmask) | (color8 & ~rmask);
- }
+ }
row += state->pinfo.stride;
}
}
static void draw_rect(FAR struct fb_state_s *state,
- FAR struct nxgl_rect_s *rect, int color)
+ FAR struct fb_area_s *area, int color)
{
-#ifdef CONFIG_LCD_UPDATE
+#ifdef CONFIG_FB_UPDATE
int ret;
#endif
switch (state->pinfo.bpp)
{
case 32:
- draw_rect32(state, rect, color);
+ draw_rect32(state, area, color);
break;
case 16:
- draw_rect16(state, rect, color);
+ draw_rect16(state, area, color);
break;
case 8:
default:
- draw_rect8(state, rect, color);
+ draw_rect8(state, area, color);
break;
case 1:
- draw_rect1(state, rect, color);
+ draw_rect1(state, area, color);
break;
}
-#ifdef CONFIG_LCD_UPDATE
+#ifdef CONFIG_FB_UPDATE
ret = ioctl(state->fd, FBIO_UPDATE,
- (unsigned long)((uintptr_t)rect));
+ (unsigned long)((uintptr_t)area));
if (ret < 0)
{
int errcode = errno;
@@ -291,7 +291,7 @@ int main(int argc, FAR char *argv[])
{
FAR const char *fbdev = g_default_fbdev;
struct fb_state_s state;
- struct nxgl_rect_s rect;
+ struct fb_area_s area;
int nsteps;
int xstep;
int ystep;
@@ -429,8 +429,8 @@ int main(int argc, FAR char *argv[])
* address mapping to make the memory accessible to the application.
*/
- state.fbmem = mmap(NULL, state.pinfo.fblen, PROT_READ|PROT_WRITE,
- MAP_SHARED|MAP_FILE, state.fd, 0);
+ state.fbmem = mmap(NULL, state.pinfo.fblen, PROT_READ | PROT_WRITE,
+ MAP_SHARED | MAP_FILE, state.fd, 0);
if (state.fbmem == MAP_FAILED)
{
int errcode = errno;
@@ -454,16 +454,16 @@ int main(int argc, FAR char *argv[])
color < NCOLORS;
x += xstep, y += ystep, color++)
{
- rect.pt1.x = x;
- rect.pt1.y = y;
- rect.pt2.x = x + width - 1;
- rect.pt2.y = y + height - 1;
+ area.x = x;
+ area.y = y;
+ area.w = width;
+ area.h = height;
printf("%2d: (%3d,%3d) (%3d,%3d)\n",
- color, rect.pt1.x, rect.pt1.y, rect.pt2.x, rect.pt2.y);
+ color, area.x, area.y, area.w, area.h);
- draw_rect(&state, &rect, color);
- usleep(500*1000);
+ draw_rect(&state, &area, color);
+ usleep(500 * 1000);
width -= (2 * xstep);
height -= (2 * ystep);
diff --git a/examples/lvgldemo/fbdev.c b/examples/lvgldemo/fbdev.c
index e462c60..c7f59e7 100644
--- a/examples/lvgldemo/fbdev.c
+++ b/examples/lvgldemo/fbdev.c
@@ -49,8 +49,6 @@
#include <fcntl.h>
#include <errno.h>
-#include <nuttx/nx/nx.h>
-#include <nuttx/nx/nxglib.h>
#include <nuttx/video/fb.h>
#include <nuttx/video/rgbcolors.h>
@@ -208,8 +206,8 @@ int fbdev_init(void)
void fbdev_flush(struct _disp_drv_t *disp_drv, const lv_area_t *area,
lv_color_t *color_p)
{
-#ifdef CONFIG_LCD_UPDATE
- struct nxgl_rect_s rect;
+#ifdef CONFIG_FB_UPDATE
+ struct fb_area_s area;
#endif
int32_t x1 = area->x1;
int32_t y1 = area->y1;
@@ -312,12 +310,12 @@ void fbdev_flush(struct _disp_drv_t *disp_drv, const
lv_area_t *area,
}
}
-#ifdef CONFIG_LCD_UPDATE
- rect.pt1.x = act_x1;
- rect.pt1.y = act_y1;
- rect.pt2.x = act_x2;
- rect.pt2.y = act_y2;
- ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&rect));
+#ifdef CONFIG_FB_UPDATE
+ area.x = act_x1;
+ area.y = act_y1;
+ area.w = act_x2 - act_x1 + 1;
+ area.h = act_y2 - cat_y1 + 1;
+ ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&area));
#endif
/* Tell the flushing is ready */
@@ -346,8 +344,8 @@ void fbdev_flush(struct _disp_drv_t *disp_drv, const
lv_area_t *area,
void fbdev_fill(int32_t x1, int32_t y1, int32_t x2, int32_t y2,
lv_color_t color)
{
-#ifdef CONFIG_LCD_UPDATE
- struct nxgl_rect_s rect;
+#ifdef CONFIG_FB_UPDATE
+ struct fb_area_s area;
#endif
int32_t act_x1;
int32_t act_y1;
@@ -437,12 +435,12 @@ void fbdev_fill(int32_t x1, int32_t y1, int32_t x2,
int32_t y2,
}
}
-#ifdef CONFIG_LCD_UPDATE
- rect.pt1.x = act_x1;
- rect.pt1.y = act_y1;
- rect.pt2.x = act_x2;
- rect.pt2.y = act_y2;
- ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&rect));
+#ifdef CONFIG_FB_UPDATE
+ area.x = act_x1;
+ area.y = act_y1;
+ area.w = act_x2 - act_x1 + 1;
+ area.h = act_y2 - act_y1 + 1;
+ ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&area));
#endif
}
@@ -467,8 +465,8 @@ void fbdev_fill(int32_t x1, int32_t y1, int32_t x2, int32_t
y2,
void fbdev_map(int32_t x1, int32_t y1, int32_t x2, int32_t y2,
FAR const lv_color_t *color_p)
{
-#ifdef CONFIG_LCD_UPDATE
- struct nxgl_rect_s rect;
+#ifdef CONFIG_FB_UPDATE
+ struct fb_area_s area;
#endif
int32_t act_x1;
int32_t act_y1;
@@ -567,11 +565,11 @@ void fbdev_map(int32_t x1, int32_t y1, int32_t x2,
int32_t y2,
}
}
-#ifdef CONFIG_LCD_UPDATE
- rect.pt1.x = act_x1;
- rect.pt1.y = act_y1;
- rect.pt2.x = act_x2;
- rect.pt2.y = act_y2;
- ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&rect));
+#ifdef CONFIG_FB_UPDATE
+ area.x = act_x1;
+ area.y = act_y1;
+ area.w = act_x2 - act_x1 + 1;
+ area.h = act_y2 - act_y1 + 1;
+ ioctl(state.fd, FBIO_UPDATE, (unsigned long)((uintptr_t)&area));
#endif
}
diff --git a/graphics/pdcurs34/nuttx/pdcdisp.c
b/graphics/pdcurs34/nuttx/pdcdisp.c
index 01a1ea2..d711bd6 100644
--- a/graphics/pdcurs34/nuttx/pdcdisp.c
+++ b/graphics/pdcurs34/nuttx/pdcdisp.c
@@ -508,26 +508,26 @@ static inline void PDC_copy_glyph(FAR struct
pdc_fbstate_s *fbstate,
*
****************************************************************************/
-#ifdef CONFIG_LCD_UPDATE
+#ifdef CONFIG_FB_UPDATE
static void PDC_update(FAR struct pdc_fbstate_s *fbstate, int row, int col,
int nchars)
{
- struct nxgl_rect_s rect;
+ struct fb_area_s area;
int ret;
if (nchars > 0)
{
/* Setup the bounding rectangle */
- rect.pt1.x = PDC_pixel_x(fbstate, col);
- rect.pt1.y = PDC_pixel_y(fbstate, row);
- rect.pt2.x = rect.pt1.x + nchars * fbstate->fwidth - 1;
- rect.pt2.y = rect.pt1.y + fbstate->fheight - 1;
+ area.x = PDC_pixel_x(fbstate, col);
+ area.y = PDC_pixel_y(fbstate, row);
+ area.w = nchars * fbstate->fwidth;
+ area.h = fbstate->fheight;
/* Then perform the update via IOCTL */
ret = ioctl(fbstate->fbfd, FBIO_UPDATE,
- (unsigned long)((uintptr_t)&rect));
+ (unsigned long)((uintptr_t)&area));
if (ret < 0)
{
PDC_LOG(("ERROR: ioctl(FBIO_UPDATE) failed: %d\n", errno));
@@ -569,20 +569,20 @@ static void PDC_putc(FAR struct pdc_fbstate_s *fbstate,
int row, int col,
return;
}
- /* Get the foreground and background colors of the character */
+ /* Get the foreground and background colors of the character */
- PDC_pair_content(PAIR_NUMBER(ch), &fg, &bg);
+ PDC_pair_content(PAIR_NUMBER(ch), &fg, &bg);
- /* Handle the A_REVERSE attribute. */
+ /* Handle the A_REVERSE attribute. */
- if ((ch & A_REVERSE) != 0)
- {
- /* Swap the foreground and background colors if reversed */
+ if ((ch & A_REVERSE) != 0)
+ {
+ /* Swap the foreground and background colors if reversed */
- short tmp = fg;
- fg = bg;
- bg = tmp;
- }
+ short tmp = fg;
+ fg = bg;
+ bg = tmp;
+ }
#ifdef CONFIG_PDCURSES_CHTYPE_LONG
/* Translate characters 0-127 via acs_map[], if they're flagged with
@@ -668,9 +668,9 @@ static void PDC_putc(FAR struct pdc_fbstate_s *fbstate, int
row, int col,
****************************************************************************/
#ifdef CONFIG_SYSTEM_TERMCURSES
-static void PDC_gotoyx_term(FAR SCREEN *sp, int row, int col)
+static void PDC_gotoyx_term(FAR SCREEN *s, int row, int col)
{
- FAR struct pdc_termscreen_s *termscreen = (FAR struct pdc_termscreen_s *)sp;
+ FAR struct pdc_termscreen_s *termscreen = (FAR struct pdc_termscreen_s *)s;
FAR struct pdc_termstate_s *termstate;
termstate = &termscreen->termstate;
@@ -741,16 +741,16 @@ static void PDC_set_char_attrib_term(FAR struct
pdc_termscreen_s *termscreen,
PDC_pair_content(PAIR_NUMBER(ch), &fg, &bg);
- /* Handle the A_REVERSE attribute. */
+ /* Handle the A_REVERSE attribute. */
- if ((ch & A_REVERSE) != 0)
- {
- /* Swap the foreground and background colors if reversed */
+ if ((ch & A_REVERSE) != 0)
+ {
+ /* Swap the foreground and background colors if reversed */
- short tmp = fg;
- fg = bg;
- bg = tmp;
- }
+ short tmp = fg;
+ fg = bg;
+ bg = tmp;
+ }
/* Set the color */
@@ -809,7 +809,6 @@ static void PDC_set_char_attrib_term(FAR struct
pdc_termscreen_s *termscreen,
termstate->bg_green = termstate->rgbcolor[bg].green;
termstate->bg_blue = termstate->rgbcolor[bg].blue;
}
-
}
#endif /* CONFIG_SYSTEM_TERMCURSES */
@@ -819,17 +818,17 @@ static void PDC_set_char_attrib_term(FAR struct
pdc_termscreen_s *termscreen,
* Description:
* The core output routine. It takes len chtype entities from srcp (a
* pointer into curscr) and renders them to the physical screen at line
- * lineno, column x. It must also translate characters 0-127 via acs_map[],
+ * lineno, column x. It must also translate characters 0-127 via acs_map[],
* if they're flagged with A_ALTCHARSET in the attribute portion of the
* chtype.
*
****************************************************************************/
#ifdef CONFIG_SYSTEM_TERMCURSES
-static void PDC_transform_line_term(FAR SCREEN *sp, int lineno, int x,
+static void PDC_transform_line_term(FAR SCREEN *s, int lineno, int x,
int len, FAR const chtype *srcp)
{
- FAR struct pdc_termscreen_s *termscreen = (FAR struct pdc_termscreen_s *)sp;
+ FAR struct pdc_termscreen_s *termscreen = (FAR struct pdc_termscreen_s *)s;
FAR struct pdc_termstate_s *termstate = &termscreen->termstate;
int c;
int i;
@@ -842,7 +841,7 @@ static void PDC_transform_line_term(FAR SCREEN *sp, int
lineno, int x,
/* Loop through all characters to be displayed */
- for (c = 0; c < len;)
+ for (c = 0; c < len; )
{
/* Get the foreground and background colors of the character */
@@ -850,10 +849,10 @@ static void PDC_transform_line_term(FAR SCREEN *sp, int
lineno, int x,
/* Write next character(s) */
- ch = *srcp & 0x7F;
+ ch = *srcp & 0x7f;
buffer[0] = ch;
- for (i = 1; i < sizeof(buffer) && c+i < len; i++)
+ for (i = 1; i < sizeof(buffer) && c + i < len; i++)
{
/* Break if the attributes change */
@@ -862,7 +861,7 @@ static void PDC_transform_line_term(FAR SCREEN *sp, int
lineno, int x,
break;
}
- ch = *(srcp + i) & 0x7F;
+ ch = *(srcp + i) & 0x7f;
buffer[i] = ch;
}
@@ -950,7 +949,7 @@ void PDC_gotoyx(int row, int col)
* Description:
* The core output routine. It takes len chtype entities from srcp (a
* pointer into curscr) and renders them to the physical screen at line
- * lineno, column x. It must also translate characters 0-127 via acs_map[],
+ * lineno, column x. It must also translate characters 0-127 via acs_map[],
* if they're flagged with A_ALTCHARSET in the attribute portion of the
* chtype.
*
@@ -1019,8 +1018,8 @@ void PDC_clear_screen(FAR struct pdc_fbstate_s *fbstate)
int row;
int col;
-#ifdef CONFIG_LCD_UPDATE
- struct nxgl_rect_s rect;
+#ifdef CONFIG_FB_UPDATE
+ struct fb_area_s area;
int ret;
#endif
@@ -1057,26 +1056,27 @@ void PDC_clear_screen(FAR struct pdc_fbstate_s *fbstate)
row < fbstate->yres;
row++, line += fbstate->stride)
{
- for (col = 0, dest = (FAR pdc_color_t *)line;
+ for (col = 0, dest = (FAR pdc_color_t *)line;
col < width;
col++)
- {
- *dest++ = bgcolor;
- }
+ {
+ *dest++ = bgcolor;
+ }
}
-#ifdef CONFIG_LCD_UPDATE
+#ifdef CONFIG_FB_UPDATE
/* Update the entire display */
+
/* Setup the bounding rectangle */
- rect.pt1.x = 0;
- rect.pt1.y = 0;
- rect.pt2.x = fbstate->xres - 1;
- rect.pt2.y = fbstate->yres - 1;
+ area.x = 0;
+ area.y = 0;
+ area.w = fbstate->xres;
+ area.h = fbstate->yres;
/* Then perform the update via IOCTL */
- ret = ioctl(fbstate->fbfd, FBIO_UPDATE, (unsigned long)((uintptr_t)&rect));
+ ret = ioctl(fbstate->fbfd, FBIO_UPDATE, (unsigned long)((uintptr_t)&area));
if (ret < 0)
{
PDC_LOG(("ERROR: ioctl(FBIO_UPDATE) failed: %d\n", errno));