diff options
Diffstat (limited to 'apps/graphics/traveler/include/trv_graphics.h')
-rw-r--r-- | apps/graphics/traveler/include/trv_graphics.h | 77 |
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 */ |