summaryrefslogtreecommitdiff
path: root/apps/graphics/traveler/include/trv_graphics.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/graphics/traveler/include/trv_graphics.h')
-rw-r--r--apps/graphics/traveler/include/trv_graphics.h77
1 files changed, 62 insertions, 15 deletions
diff --git a/apps/graphics/traveler/include/trv_graphics.h b/apps/graphics/traveler/include/trv_graphics.h
index 5364c8bc7..69790e627 100644
--- a/apps/graphics/traveler/include/trv_graphics.h
+++ b/apps/graphics/traveler/include/trv_graphics.h
@@ -42,41 +42,88 @@
#include "trv_types.h"
+#include <nuttx/video/fb.h>
+#ifdef CONFIG_NX
+# include <nuttx/nx/nx.h>
+#endif
+
+/****************************************************************************
+ * Pre-processor Definitions
+ ****************************************************************************/
+
+#if defined(CONFIG_GRAPHICS_TRAVELER_RGB16_565)
+# define TRV_BPP 16
+# define TRV_COLOR_FMT FB_FMT_RGB16_565
+#elif defined(CONFIG_GRAPHICS_TRAVELER_RGB32_888)
+# define TRV_BPP 32
+# define TRV_COLOR_FMT FB_FMT_RGB32
+#else
+# error No color format defined
+#endif
+
+#define MAX_REND_WIDTH 480
+#define MAX_REND_HEIGHT 240
+
/****************************************************************************
* Public Types
****************************************************************************/
+#if TRV_BPP == 16
+typedef uint16_t dev_pixel_t; /* Width of one hardware pixel */
+#elif TRV_BPP == 32
+typedef uint32_t dev_pixel_t; /* Width of one hardware pixel */
+#endif
+
struct trv_palette_s
{
int ncolors; /* Number of colors in the look-up table */
- FAR nxgl_mxpixel_t *lut; /* Color lookup table */
+ FAR dev_pixel_t *lut; /* Color lookup table */
};
struct trv_graphics_info_s
{
- nxgl_coord_t width; /* Image width */
- nxgl_coord_t height; /* Image height */
+#ifdef CONFIG_NX
+ NXHANDLE hnx; /* The connection handle */
+ NXHANDLE bgwnd; /* Background window handle */
+#else
+ trv_coord_t stride; /* Length of a line in bytes */
+#endif
+ trv_coord_t hwwidth; /* Display width (pixels) */
+ trv_coord_t hwheight; /* Display height (rows) */
+ trv_coord_t swwidth; /* Software render width (pixels) */
+ trv_coord_t swheight; /* Software render height height (rows) */
+ uint8_t vscale; /* Log2 vertical image scale factor */
+ uint8_t hscale; /* Log2 horizontal image scale factor */
struct trv_palette_s palette; /* Color palette */
- FAR nxgl_mxpixel_t *buffer; /* Hardware framebuffer */
+ FAR dev_pixel_t *hwbuffer; /* Hardware frame buffer */
+ FAR trv_pixel_t *swbuffer; /* Software render buffer */
};
-struct trv_framebuffer_s
-{
- nxgl_coord_t width; /* Image width */
- nxgl_coord_t height; /* Image height */
- FAR trv_pixel_t *buffer; /* Software render buffer */
-};
+/****************************************************************************
+ * Public Data
+ ****************************************************************************/
+
+#ifdef CONFIG_NX
+extern FAR const struct nx_callback_s *g_trv_nxcallback;
+extern sem_t g_trv_nxevent;
+extern volatile bool g_trv_nxresolution;
+#ifdef CONFIG_NX_MULTIUSER
+extern volatile bool g_trv_nxrconnected;
+#endif
+#endif
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
-int trv_graphics_initialize(uint16_t width, uint16_t height,
- uint8_t scale_factor,
- FAR struct trv_graphics_info_s *ginfo);
-void trv_graphics_terminate(void);
+int trv_graphics_initialize(FAR struct trv_graphics_info_s *ginfo);
+void trv_graphics_terminate(FAR struct trv_graphics_info_s *ginfo);
trv_pixel_t trv_graphics_index2pixel(int index);
-void trv_display_update(struct trv_framebuffer_s *fb);
+void trv_display_update(struct trv_graphics_info_s *fb);
trv_pixel_t *trv_get_renderbuffer(uint16_t width, uint16_t height);
+#ifdef CONFIG_NX_MULTIUSER
+FAR void *trv_nxlistener(FAR void *arg)
+#endif
+
#endif /* __APPS_GRAPHICS_TRAVELER_INCLUDE_TRV_GRAPHICS_H */