summaryrefslogtreecommitdiff
path: root/nuttx/arch/sim/src/up_framebuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/sim/src/up_framebuffer.c')
-rw-r--r--nuttx/arch/sim/src/up_framebuffer.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/nuttx/arch/sim/src/up_framebuffer.c b/nuttx/arch/sim/src/up_framebuffer.c
index f81a5512b..c7c9ee216 100644
--- a/nuttx/arch/sim/src/up_framebuffer.c
+++ b/nuttx/arch/sim/src/up_framebuffer.c
@@ -124,7 +124,7 @@ extern int up_x11initialize(unsigned short width, unsigned short height,
#ifdef CONFIG_FB_CMAP
extern int up_x11cmap(unsigned short first, unsigned short len,
unsigned char *red, unsigned char *green,
- unsigned char *blue, unsigned char *transp)
+ unsigned char *blue, unsigned char *transp);
#endif
#endif
@@ -132,7 +132,11 @@ extern int up_x11cmap(unsigned short first, unsigned short len,
* Private Data
****************************************************************************/
+/* The simulated framebuffer memory */
+
+#ifndef CONFIG_SIM_X11FB
static ubyte g_fb[FB_SIZE];
+#endif
/* This structure describes the simulated video controller */
@@ -160,12 +164,6 @@ static const struct fb_planeinfo_s g_planeinfo =
static struct fb_planeinfo_s g_planeinfo;
#endif
-/* Simulated RGB mapping */
-
-#ifdef CONFIG_FB_CMAP
-static struct fb_cmap_s g_cmap;
-#endif
-
/* Current cursor position */
#ifdef CONFIG_FB_HWCURSOR
@@ -245,16 +243,13 @@ static int up_getplaneinfo(FAR struct fb_vtable_s *vtable, int planeno,
#ifdef CONFIG_FB_CMAP
static int up_getcmap(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap)
{
-#ifdef CONFIG_SIM_X11FB
- return up_x11cmap(cmap->start, cmap->len, cmap->red, cmap->green, cmap->blue, cmap->transp);
-#else
- int len
+ int len;
int i;
- dbg("vtable=%p cmap=%p cmap->len\n", vtable, cmap, cmap->len);
+ dbg("vtable=%p cmap=%p len=%d\n", vtable, cmap, cmap->len);
if (vtable && cmap)
{
- for (i = cmap.first, len = 0; i < 256 && len < cmap.len, i++, len++)
+ for (i = cmap->first, len = 0; i < 256 && len < cmap->len; i++, len++)
{
cmap->red[i] = i;
cmap->green[i] = i;
@@ -263,12 +258,12 @@ static int up_getcmap(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap
cmap->transp[i] = i;
#endif
}
- cmap.len = len;
+
+ cmap->len = len;
return OK;
}
dbg("Returning EINVAL\n");
return -EINVAL;
-#endif
}
#endif
@@ -279,13 +274,17 @@ static int up_getcmap(FAR struct fb_vtable_s *vtable, FAR struct fb_cmap_s *cmap
#ifdef CONFIG_FB_CMAP
static int up_putcmap(FAR struct fb_vtable_s *vtable, FAR const struct fb_cmap_s *cmap)
{
- dbg("vtable=%p cmap=%p cmap->len\n", vtable, cmap, cmap->len);
+#ifdef CONFIG_SIM_X11FB
+ return up_x11cmap(cmap->first, cmap->len, cmap->red, cmap->green, cmap->blue, NULL);
+#else
+ dbg("vtable=%p cmap=%p len=%d\n", vtable, cmap, cmap->len);
if (vtable && cmap)
{
return OK;
}
dbg("Returning EINVAL\n");
return -EINVAL;
+#endif
}
#endif