summaryrefslogtreecommitdiff
path: root/nuttx
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx')
-rw-r--r--nuttx/arch/sim/src/up_x11framebuffer.c25
-rw-r--r--nuttx/configs/sim/README.txt12
-rw-r--r--nuttx/configs/sim/nx/defconfig8
-rw-r--r--nuttx/configs/sim/nx/defconfig-x1114
4 files changed, 46 insertions, 13 deletions
diff --git a/nuttx/arch/sim/src/up_x11framebuffer.c b/nuttx/arch/sim/src/up_x11framebuffer.c
index 346f1380f..0aa58a6a7 100644
--- a/nuttx/arch/sim/src/up_x11framebuffer.c
+++ b/nuttx/arch/sim/src/up_x11framebuffer.c
@@ -228,7 +228,7 @@ static void up_x11uninitialize(void)
* Name: up_x11mapsharedmem
***************************************************************************/
-static inline int up_x11mapsharedmem(int bpp, unsigned int fblen)
+static inline int up_x11mapsharedmem(int depth, unsigned int fblen)
{
#ifndef CONFIG_SIM_X11NOSHM
Status result;
@@ -246,8 +246,8 @@ static inline int up_x11mapsharedmem(int bpp, unsigned int fblen)
up_x11traperrors();
g_image = XShmCreateImage(g_display, DefaultVisual(g_display, g_screen),
- bpp, ZPixmap, NULL, &g_xshminfo,
- g_fbpixelwidth, g_fbpixelheight);
+ depth, ZPixmap, NULL, &g_xshminfo,
+ g_fbpixelwidth, g_fbpixelheight);
if (up_x11untraperrors())
{
up_x11uninitialize();
@@ -303,7 +303,7 @@ shmerror:
g_framebuffer = (unsigned char*)malloc(fblen);
- g_image = XCreateImage(g_display, DefaultVisual(g_display,g_screen), bpp,
+ g_image = XCreateImage(g_display, DefaultVisual(g_display,g_screen), depth,
ZPixmap, 0, (char*)g_framebuffer, g_fbpixelwidth, g_fbpixelheight,
8, 0);
@@ -335,6 +335,7 @@ int up_x11initialize(unsigned short width, unsigned short height,
unsigned short *stride)
{
XWindowAttributes windowAttributes;
+ int depth;
int ret;
/* Save inputs */
@@ -353,10 +354,20 @@ int up_x11initialize(unsigned short width, unsigned short height,
/* Determine the supported pixel bpp of the current window */
XGetWindowAttributes(g_display, DefaultRootWindow(g_display), &windowAttributes);
- printf("Pixel bpp is %d bits\n", windowAttributes.depth);
- *bpp = windowAttributes.depth;
- *stride = (windowAttributes.depth * width / 8);
+ /* Get the pixel depth. If the depth is 24-bits, use 32 because X expects
+ * 32-bit aligment anyway.
+ */
+
+ depth = windowAttributes.depth;
+ if (depth == 24)
+ {
+ depth = 32;
+ }
+ printf("Pixel bpp is %d bits (using %d)\n", windowAttributes.depth, depth);
+
+ *bpp = depth;
+ *stride = (depth * width / 8);
*fblen = (*stride * height);
/* Map the window to shared memory */
diff --git a/nuttx/configs/sim/README.txt b/nuttx/configs/sim/README.txt
index aed86deff..39f6d7a63 100644
--- a/nuttx/configs/sim/README.txt
+++ b/nuttx/configs/sim/README.txt
@@ -42,10 +42,16 @@ nx
CONFIG_SIM_FBBPP - Pixel depth in bits
NOTES:
- - If CONFIG_SIM_X11FB is selected then CONFIG_SIM_FBBPP must
- match the resolution of the display.
+ - If CONFIG_SIM_X11FB is selected then the following are
+ needed
+
+ CONFIG_SIM_FBBPP (must match the resolution of the display).
+ CONFIG_FB_CMAP=y
+
+ My system has 24-bit color, but packed into 32-bit words so
+ the correct seeting of CONFIG_SIM_FBBPP is 32.
- For whatever value of CONFIG_SIM_FBBPP is selected, then
- the corresponing CONFIG_NXGLIB_DISABLE_*BPP setting must
+ the corresponidng CONFIG_NXGLIB_DISABLE_*BPP setting must
not be disabled.
- The default in defconfig is to use a generic memory buffer
for the framebuffer. defconfig-x11 is an example with X11
diff --git a/nuttx/configs/sim/nx/defconfig b/nuttx/configs/sim/nx/defconfig
index 33e7732bb..1d79f7e9c 100644
--- a/nuttx/configs/sim/nx/defconfig
+++ b/nuttx/configs/sim/nx/defconfig
@@ -225,6 +225,14 @@ CONFIG_PREALLOC_WDOGS=32
CONFIG_PREALLOC_TIMERS=8
#
+# Framebuffer driver options
+CONFIG_FB_CMAP=n
+CONFIG_FB_HWCURSOR=n
+CONFIG_FB_HWCURSORIMAGE=n
+#CONFIG_FB_HWCURSORSIZE
+#CONFIG_FB_TRANSPARENCY
+
+#
# FAT filesystem configuration
# CONFIG_FS_FAT - Enable FAT filesystem support
# CONFIG_FAT_SECTORSIZE - Max supported sector size
diff --git a/nuttx/configs/sim/nx/defconfig-x11 b/nuttx/configs/sim/nx/defconfig-x11
index be2feabbc..472d9073b 100644
--- a/nuttx/configs/sim/nx/defconfig-x11
+++ b/nuttx/configs/sim/nx/defconfig-x11
@@ -54,7 +54,7 @@ CONFIG_ARCH_BOARD_SIM=y
CONFIG_SIM_X11FB=y
CONFIG_SIM_FBWIDTH=480
CONFIG_SIM_FBHEIGHT=240
-CONFIG_SIM_FBBPP=24
+CONFIG_SIM_FBBPP=32
#
# General OS setup
@@ -225,6 +225,14 @@ CONFIG_PREALLOC_WDOGS=32
CONFIG_PREALLOC_TIMERS=8
#
+# Framebuffer driver options
+CONFIG_FB_CMAP=y
+CONFIG_FB_HWCURSOR=n
+CONFIG_FB_HWCURSORIMAGE=n
+#CONFIG_FB_HWCURSORSIZE
+#CONFIG_FB_TRANSPARENCY
+
+#
# FAT filesystem configuration
# CONFIG_FS_FAT - Enable FAT filesystem support
# CONFIG_FAT_SECTORSIZE - Max supported sector size
@@ -330,8 +338,8 @@ CONFIG_NXGLIB_DISABLE_2BPP=y
CONFIG_NXGLIB_DISABLE_4BPP=y
CONFIG_NXGLIB_DISABLE_8BPP=y
CONFIG_NXGLIB_DISABLE_16BPP=y
-CONFIG_NXGLIB_DISABLE_24BPP=n
-CONFIG_NXGLIB_DISABLE_32BPP=y
+CONFIG_NXGLIB_DISABLE_24BPP=y
+CONFIG_NXGLIB_DISABLE_32BPP=n
CONFIG_NXGL_PACKEDMSFIRST=n
CONFIG_NX_MOUSE=n
CONFIG_NX_KBD=n