Incorporated new fonts into examples; fix glyph allocation bug in nxhello
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3822 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
da8dd4ccd4
commit
40e417d362
@ -89,3 +89,6 @@
|
|||||||
nuttx/include/nuttx/nx.
|
nuttx/include/nuttx/nx.
|
||||||
* apps/examples/usbstorage: Added instrumentation to monitor memory usage
|
* apps/examples/usbstorage: Added instrumentation to monitor memory usage
|
||||||
to check for memory leaks in the USB storage driver.
|
to check for memory leaks in the USB storage driver.
|
||||||
|
* apps/examples/nxhello/nxhello_bkgd.c: Fix handling of allocated glyph
|
||||||
|
memory.
|
||||||
|
|
||||||
|
@ -269,6 +269,8 @@ examples/nx
|
|||||||
CONFIG_EXAMPLES_NX_BPP.
|
CONFIG_EXAMPLES_NX_BPP.
|
||||||
CONFIG_EXAMPLES_NX_TBCOLOR -- The color of the toolbar. Default depends on
|
CONFIG_EXAMPLES_NX_TBCOLOR -- The color of the toolbar. Default depends on
|
||||||
CONFIG_EXAMPLES_NX_BPP.
|
CONFIG_EXAMPLES_NX_BPP.
|
||||||
|
CONFIG_EXAMPLES_NX_FONTID - Selects the font (see font ID numbers in
|
||||||
|
include/nuttx/nx/nxfonts.h)
|
||||||
CONFIG_EXAMPLES_NX_FONTCOLOR -- The color of the fonts. Default depends on
|
CONFIG_EXAMPLES_NX_FONTCOLOR -- The color of the fonts. Default depends on
|
||||||
CONFIG_EXAMPLES_NX_BPP.
|
CONFIG_EXAMPLES_NX_BPP.
|
||||||
CONFIG_EXAMPLES_NX_BPP -- Pixels per pixel to use. Valid options
|
CONFIG_EXAMPLES_NX_BPP -- Pixels per pixel to use. Valid options
|
||||||
@ -341,6 +343,8 @@ examplex/nxhello
|
|||||||
driver for use in the test: Default: 0
|
driver for use in the test: Default: 0
|
||||||
CONFIG_EXAMPLES_NXHELLO_BGCOLOR -- The color of the background. Default
|
CONFIG_EXAMPLES_NXHELLO_BGCOLOR -- The color of the background. Default
|
||||||
depends on CONFIG_EXAMPLES_NXHELLO_BPP.
|
depends on CONFIG_EXAMPLES_NXHELLO_BPP.
|
||||||
|
CONFIG_EXAMPLES_NXHELLO_FONTID - Selects the font (see font ID numbers in
|
||||||
|
include/nuttx/nx/nxfonts.h)
|
||||||
CONFIG_EXAMPLES_NXHELLO_FONTCOLOR -- The color of the fonts used in the
|
CONFIG_EXAMPLES_NXHELLO_FONTCOLOR -- The color of the fonts used in the
|
||||||
background window. Default depends on CONFIG_EXAMPLES_NXHELLO_BPP.
|
background window. Default depends on CONFIG_EXAMPLES_NXHELLO_BPP.
|
||||||
CONFIG_EXAMPLES_NXHELLO_BPP -- Pixels per pixel to use. Valid options
|
CONFIG_EXAMPLES_NXHELLO_BPP -- Pixels per pixel to use. Valid options
|
||||||
@ -427,10 +431,14 @@ examples/nxtext
|
|||||||
driver for use in the test: Default: 0
|
driver for use in the test: Default: 0
|
||||||
CONFIG_EXAMPLES_NXTEXT_BGCOLOR -- The color of the background. Default
|
CONFIG_EXAMPLES_NXTEXT_BGCOLOR -- The color of the background. Default
|
||||||
depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
||||||
|
CONFIG_EXAMPLES_NXTEXT_BGFONTID - Selects the font to use in the
|
||||||
|
background text (see font ID numbers in include/nuttx/nx/nxfonts.h)
|
||||||
CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR -- The color of the fonts used in the
|
CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR -- The color of the fonts used in the
|
||||||
background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
||||||
CONFIG_EXAMPLES_NXTEXT_PUCOLOR -- The color of the pop-up window. Default
|
CONFIG_EXAMPLES_NXTEXT_PUCOLOR -- The color of the pop-up window. Default
|
||||||
depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
||||||
|
CONFIG_EXAMPLES_NXTEXT_PUFONTID - Selects the font to use in the pop-up
|
||||||
|
windows (see font ID numbers in include/nuttx/nx/nxfonts.h)
|
||||||
CONFIG_EXAMPLES_NXTEXT_PUFONTCOLOR -- The color of the fonts used in the
|
CONFIG_EXAMPLES_NXTEXT_PUFONTCOLOR -- The color of the fonts used in the
|
||||||
background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
background window. Default depends on CONFIG_EXAMPLES_NXTEXT_BPP.
|
||||||
CONFIG_EXAMPLES_NXTEXT_BPP -- Pixels per pixel to use. Valid options
|
CONFIG_EXAMPLES_NXTEXT_BPP -- Pixels per pixel to use. Valid options
|
||||||
|
@ -45,8 +45,10 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
|
|
||||||
#include <nuttx/nx/nx.h>
|
#include <nuttx/nx/nx.h>
|
||||||
#include <nuttx/nx/nxtk.h>
|
#include <nuttx/nx/nxtk.h>
|
||||||
|
#include <nuttx/nx/nxfonts.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Definitions
|
* Definitions
|
||||||
@ -106,6 +108,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_EXAMPLES_NX_FONTID
|
||||||
|
# define CONFIG_EXAMPLES_NX_FONTID NXFONT_DEFAULT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_EXAMPLES_NX_FONTCOLOR
|
#ifndef CONFIG_EXAMPLES_NX_FONTCOLOR
|
||||||
# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
|
# if CONFIG_EXAMPLES_NX_BPP == 24 || CONFIG_EXAMPLES_NX_BPP == 32
|
||||||
# define CONFIG_EXAMPLES_NX_FONTCOLOR 0x00000000
|
# define CONFIG_EXAMPLES_NX_FONTCOLOR 0x00000000
|
||||||
|
@ -647,7 +647,7 @@ int MAIN_NAME(int argc, char *argv[])
|
|||||||
|
|
||||||
/* Get the default font handle */
|
/* Get the default font handle */
|
||||||
|
|
||||||
g_fonthandle = nxf_getfonthandle(NXFONT_DEFAULT);
|
g_fonthandle = nxf_getfonthandle(CONFIG_EXAMPLES_NX_FONTID);
|
||||||
if (!g_fonthandle)
|
if (!g_fonthandle)
|
||||||
{
|
{
|
||||||
message(MAIN_NAME_STRING ": Failed to get font handle: %d\n", errno);
|
message(MAIN_NAME_STRING ": Failed to get font handle: %d\n", errno);
|
||||||
|
@ -46,8 +46,9 @@
|
|||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
|
|
||||||
#include <nuttx/nx/nx.h>
|
|
||||||
#include <nuttx/nx/nxglib.h>
|
#include <nuttx/nx/nxglib.h>
|
||||||
|
#include <nuttx/nx/nx.h>
|
||||||
|
#include <nuttx/nx/nxfonts.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Definitions
|
* Definitions
|
||||||
@ -77,6 +78,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_EXAMPLES_NXHELLO_FONTID
|
||||||
|
# define CONFIG_EXAMPLES_NXHELLO_FONTID NXFONT_DEFAULT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_EXAMPLES_NXHELLO_FONTCOLOR
|
#ifndef CONFIG_EXAMPLES_NXHELLO_FONTCOLOR
|
||||||
# if CONFIG_EXAMPLES_NXHELLO_BPP == 24 || CONFIG_EXAMPLES_NXHELLO_BPP == 32
|
# if CONFIG_EXAMPLES_NXHELLO_BPP == 24 || CONFIG_EXAMPLES_NXHELLO_BPP == 32
|
||||||
# define CONFIG_EXAMPLES_NXHELLO_FONTCOLOR 0x00000000
|
# define CONFIG_EXAMPLES_NXHELLO_FONTCOLOR 0x00000000
|
||||||
|
@ -233,7 +233,7 @@ static void nxhello_center(FAR struct nxgl_point_s *pos,
|
|||||||
{
|
{
|
||||||
/* Add the font size */
|
/* Add the font size */
|
||||||
|
|
||||||
width += fbm->metric.width;
|
width += fbm->metric.width + fbm->metric.xoffset;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -349,6 +349,7 @@ void nxhello_hello(NXWINDOW hwnd)
|
|||||||
FAR struct nxgl_rect_s dest;
|
FAR struct nxgl_rect_s dest;
|
||||||
FAR const void *src[CONFIG_NX_NPLANES];
|
FAR const void *src[CONFIG_NX_NPLANES];
|
||||||
unsigned int glyphsize;
|
unsigned int glyphsize;
|
||||||
|
unsigned int mxstride;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Get information about the font we are going to use */
|
/* Get information about the font we are going to use */
|
||||||
@ -357,7 +358,8 @@ void nxhello_hello(NXWINDOW hwnd)
|
|||||||
|
|
||||||
/* Allocate a bit of memory to hold the largest rendered font */
|
/* Allocate a bit of memory to hold the largest rendered font */
|
||||||
|
|
||||||
glyphsize = (unsigned int)fontset->mxheight * (unsigned int)fontset->mxwidth;
|
mxstride = (fontset->mxwidth * CONFIG_EXAMPLES_NXHELLO_BPP + 7) >> 3;
|
||||||
|
glyphsize = (unsigned int)fontset->mxheight * mxstride;
|
||||||
glyph = (FAR uint8_t*)malloc(glyphsize);
|
glyph = (FAR uint8_t*)malloc(glyphsize);
|
||||||
|
|
||||||
/* NOTE: no check for failure to allocate the memory. In a real application
|
/* NOTE: no check for failure to allocate the memory. In a real application
|
||||||
@ -388,7 +390,7 @@ void nxhello_hello(NXWINDOW hwnd)
|
|||||||
|
|
||||||
fwidth = fbm->metric.width + fbm->metric.xoffset;
|
fwidth = fbm->metric.width + fbm->metric.xoffset;
|
||||||
fheight = fbm->metric.height + fbm->metric.yoffset;
|
fheight = fbm->metric.height + fbm->metric.yoffset;
|
||||||
fstride = (fwidth * CONFIG_EXAMPLES_NXHELLO_BPP + 7) / 8;
|
fstride = (fwidth * CONFIG_EXAMPLES_NXHELLO_BPP + 7) >> 3;
|
||||||
|
|
||||||
/* Initialize the glyph memory to the background color */
|
/* Initialize the glyph memory to the background color */
|
||||||
|
|
||||||
@ -434,4 +436,8 @@ void nxhello_hello(NXWINDOW hwnd)
|
|||||||
pos.x += fontset->spwidth;
|
pos.x += fontset->spwidth;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Free the allocated glyph */
|
||||||
|
|
||||||
|
free(glyph);
|
||||||
}
|
}
|
||||||
|
@ -232,7 +232,7 @@ int MAIN_NAME(int argc, char *argv[])
|
|||||||
|
|
||||||
/* Get the default font handle */
|
/* Get the default font handle */
|
||||||
|
|
||||||
g_nxhello.hfont = nxf_getfonthandle(NXFONT_DEFAULT);
|
g_nxhello.hfont = nxf_getfonthandle(CONFIG_EXAMPLES_NXHELLO_FONTID);
|
||||||
if (!g_nxhello.hfont)
|
if (!g_nxhello.hfont)
|
||||||
{
|
{
|
||||||
message(MAIN_NAME_STRING ": Failed to get font handle: %d\n", errno);
|
message(MAIN_NAME_STRING ": Failed to get font handle: %d\n", errno);
|
||||||
|
@ -136,7 +136,7 @@ static void nxbg_redrawrect(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect)
|
|||||||
|
|
||||||
for (i = 0; i < g_bgstate.nchars; i++)
|
for (i = 0; i < g_bgstate.nchars; i++)
|
||||||
{
|
{
|
||||||
nxtext_fillchar(hwnd, rect, &g_bgstate, &g_bgstate.bm[i]);
|
nxtext_fillchar(hwnd, rect, &g_bgstate, g_bghfont, &g_bgstate.bm[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,7 +271,7 @@ static inline void nxbg_movedisplay(NXWINDOW hwnd, int bottom, int lineheight)
|
|||||||
bm = &g_bgstate.bm[i];
|
bm = &g_bgstate.bm[i];
|
||||||
if (bm->pos.y <= rect.pt2.y && bm->pos.y + g_bgstate.fheight >= rect.pt1.y)
|
if (bm->pos.y <= rect.pt2.y && bm->pos.y + g_bgstate.fheight >= rect.pt1.y)
|
||||||
{
|
{
|
||||||
nxtext_fillchar(hwnd, &rect, &g_bgstate, bm);
|
nxtext_fillchar(hwnd, &rect, &g_bgstate, g_bghfont, bm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -402,7 +402,7 @@ FAR struct nxtext_state_s *nxbg_getstate(void)
|
|||||||
* state structure
|
* state structure
|
||||||
*/
|
*/
|
||||||
|
|
||||||
fontset = nxf_getfontset(g_fonthandle);
|
fontset = nxf_getfontset(g_bghfont);
|
||||||
g_bgstate.fheight = fontset->mxheight;
|
g_bgstate.fheight = fontset->mxheight;
|
||||||
g_bgstate.fwidth = fontset->mxwidth;
|
g_bgstate.fwidth = fontset->mxwidth;
|
||||||
g_bgstate.spwidth = fontset->spwidth;
|
g_bgstate.spwidth = fontset->spwidth;
|
||||||
@ -462,6 +462,6 @@ void nxbg_write(NXWINDOW hwnd, FAR const uint8_t *buffer, size_t buflen)
|
|||||||
|
|
||||||
/* Finally, we can output the character */
|
/* Finally, we can output the character */
|
||||||
|
|
||||||
nxtext_putc(hwnd, &g_bgstate, (uint8_t)*buffer++);
|
nxtext_putc(hwnd, &g_bgstate, g_bghfont, (uint8_t)*buffer++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -45,8 +45,10 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <semaphore.h>
|
#include <semaphore.h>
|
||||||
|
|
||||||
#include <nuttx/nx/nx.h>
|
#include <nuttx/nx/nx.h>
|
||||||
#include <nuttx/nx/nxtk.h>
|
#include <nuttx/nx/nxtk.h>
|
||||||
|
#include <nuttx/nx/nxfonts.h>
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Definitions
|
* Definitions
|
||||||
@ -76,6 +78,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_EXAMPLES_NXTEXT_PUFONTID
|
||||||
|
# define CONFIG_EXAMPLES_NXTEXT_PUFONTID NXFONT_DEFAULT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_EXAMPLES_NXTEXT_PUCOLOR
|
#ifndef CONFIG_EXAMPLES_NXTEXT_PUCOLOR
|
||||||
# if CONFIG_EXAMPLES_NXTEXT_BPP == 24 || CONFIG_EXAMPLES_NXTEXT_BPP == 32
|
# if CONFIG_EXAMPLES_NXTEXT_BPP == 24 || CONFIG_EXAMPLES_NXTEXT_BPP == 32
|
||||||
# define CONFIG_EXAMPLES_NXTEXT_PUCOLOR 0x00dcdcdc
|
# define CONFIG_EXAMPLES_NXTEXT_PUCOLOR 0x00dcdcdc
|
||||||
@ -86,6 +92,10 @@
|
|||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIG_EXAMPLES_NXTEXT_BGFONTID
|
||||||
|
# define CONFIG_EXAMPLES_NXTEXT_BGFONTID NXFONT_DEFAULT
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR
|
#ifndef CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR
|
||||||
# if CONFIG_EXAMPLES_NXTEXT_BPP == 24 || CONFIG_EXAMPLES_NXTEXT_BPP == 32
|
# if CONFIG_EXAMPLES_NXTEXT_BPP == 24 || CONFIG_EXAMPLES_NXTEXT_BPP == 32
|
||||||
# define CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR 0x00000000
|
# define CONFIG_EXAMPLES_NXTEXT_BGFONTCOLOR 0x00000000
|
||||||
@ -263,9 +273,10 @@ extern NXHANDLE g_hnx;
|
|||||||
|
|
||||||
extern NXHANDLE g_bgwnd;
|
extern NXHANDLE g_bgwnd;
|
||||||
|
|
||||||
/* The font handle */
|
/* The font handlse */
|
||||||
|
|
||||||
extern NXHANDLE g_fonthandle;
|
extern NXHANDLE g_bghfont;
|
||||||
|
extern NXHANDLE g_puhfont;
|
||||||
|
|
||||||
/* NX callback vtables */
|
/* NX callback vtables */
|
||||||
|
|
||||||
@ -311,9 +322,9 @@ extern int nxpu_close(NXWINDOW hwnd);
|
|||||||
extern void nxtext_home(FAR struct nxtext_state_s *st);
|
extern void nxtext_home(FAR struct nxtext_state_s *st);
|
||||||
extern void nxtext_newline(FAR struct nxtext_state_s *st);
|
extern void nxtext_newline(FAR struct nxtext_state_s *st);
|
||||||
extern void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st,
|
extern void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st,
|
||||||
uint8_t ch);
|
NXHANDLE hfont, uint8_t ch);
|
||||||
extern void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
extern void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
||||||
FAR struct nxtext_state_s *st,
|
FAR struct nxtext_state_s *st, NXHANDLE hfont,
|
||||||
FAR const struct nxtext_bitmap_s *bm);
|
FAR const struct nxtext_bitmap_s *bm);
|
||||||
|
|
||||||
#endif /* __EXAMPLES_NXTEXT_NXTEXT_INTERNAL_H */
|
#endif /* __EXAMPLES_NXTEXT_NXTEXT_INTERNAL_H */
|
||||||
|
@ -135,9 +135,10 @@ static const char *g_bgmsg[BGMSG_LINES] =
|
|||||||
|
|
||||||
NXHANDLE g_hnx = NULL;
|
NXHANDLE g_hnx = NULL;
|
||||||
|
|
||||||
/* The font handle */
|
/* The font handles */
|
||||||
|
|
||||||
NXHANDLE g_fonthandle = NULL;
|
NXHANDLE g_bghfont = NULL;
|
||||||
|
NXHANDLE g_puhfont = NULL;
|
||||||
|
|
||||||
/* The screen resolution */
|
/* The screen resolution */
|
||||||
|
|
||||||
@ -375,12 +376,20 @@ int MAIN_NAME(int argc, char **argv)
|
|||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get the default font handle */
|
/* Get the configured font handles */
|
||||||
|
|
||||||
g_fonthandle = nxf_getfonthandle(NXFONT_DEFAULT);
|
g_bghfont = nxf_getfonthandle(CONFIG_EXAMPLES_NXTEXT_BGFONTID);
|
||||||
if (!g_fonthandle)
|
if (!g_bghfont)
|
||||||
{
|
{
|
||||||
message(MAIN_NAME_STRING ": Failed to get font handle: %d\n", errno);
|
message(MAIN_NAME_STRING ": Failed to get background font handle: %d\n", errno);
|
||||||
|
g_exitcode = NXEXIT_FONTOPEN;
|
||||||
|
goto errout;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_puhfont = nxf_getfonthandle(CONFIG_EXAMPLES_NXTEXT_PUFONTID);
|
||||||
|
if (!g_puhfont)
|
||||||
|
{
|
||||||
|
message(MAIN_NAME_STRING ": Failed to get pop-up font handle: %d\n", errno);
|
||||||
g_exitcode = NXEXIT_FONTOPEN;
|
g_exitcode = NXEXIT_FONTOPEN;
|
||||||
goto errout;
|
goto errout;
|
||||||
}
|
}
|
||||||
|
@ -196,7 +196,7 @@ static inline void nxpu_fillwindow(NXWINDOW hwnd,
|
|||||||
nxtext_home(st);
|
nxtext_home(st);
|
||||||
for (i = 0; i < st->nchars; i++)
|
for (i = 0; i < st->nchars; i++)
|
||||||
{
|
{
|
||||||
nxtext_fillchar(hwnd, rect, st, &st->bm[i]);
|
nxtext_fillchar(hwnd, rect, st, g_puhfont, &st->bm[i]);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -265,7 +265,7 @@ static inline void nxpu_puts(NXWINDOW hwnd, FAR struct nxtext_state_s *st,
|
|||||||
nxtext_home(st);
|
nxtext_home(st);
|
||||||
while (nch--)
|
while (nch--)
|
||||||
{
|
{
|
||||||
nxtext_putc(hwnd, st, *ch++);
|
nxtext_putc(hwnd, st, g_puhfont, *ch++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -304,7 +304,7 @@ static inline void nxpu_initstate(void)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef CONFIG_NX_KBD
|
#ifdef CONFIG_NX_KBD
|
||||||
fontset = nxf_getfontset(g_fonthandle);
|
fontset = nxf_getfontset(g_puhfont);
|
||||||
g_pustate.fheight = fontset->mxheight;
|
g_pustate.fheight = fontset->mxheight;
|
||||||
g_pustate.fwidth = fontset->mxwidth;
|
g_pustate.fwidth = fontset->mxwidth;
|
||||||
g_pustate.spwidth = fontset->spwidth;
|
g_pustate.spwidth = fontset->spwidth;
|
||||||
|
@ -326,13 +326,13 @@ nxtext_renderglyph(FAR struct nxtext_state_s *st,
|
|||||||
* Name: nxtext_fontsize
|
* Name: nxtext_fontsize
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static int nxtext_fontsize(uint8_t ch, FAR struct nxgl_size_s *size)
|
static int nxtext_fontsize(NXHANDLE hfont, uint8_t ch, FAR struct nxgl_size_s *size)
|
||||||
{
|
{
|
||||||
FAR const struct nx_fontbitmap_s *fbm;
|
FAR const struct nx_fontbitmap_s *fbm;
|
||||||
|
|
||||||
/* No, it is not cached... Does the code map to a font? */
|
/* No, it is not cached... Does the code map to a font? */
|
||||||
|
|
||||||
fbm = nxf_getbitmap(g_fonthandle, ch);
|
fbm = nxf_getbitmap(hfont, ch);
|
||||||
if (fbm)
|
if (fbm)
|
||||||
{
|
{
|
||||||
/* Yes.. return the font size */
|
/* Yes.. return the font size */
|
||||||
@ -350,7 +350,7 @@ static int nxtext_fontsize(uint8_t ch, FAR struct nxgl_size_s *size)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static FAR struct nxtext_glyph_s *
|
static FAR struct nxtext_glyph_s *
|
||||||
nxtext_getglyph(FAR struct nxtext_state_s *st, uint8_t ch)
|
nxtext_getglyph(NXHANDLE hfont, FAR struct nxtext_state_s *st, uint8_t ch)
|
||||||
{
|
{
|
||||||
FAR struct nxtext_glyph_s *glyph;
|
FAR struct nxtext_glyph_s *glyph;
|
||||||
FAR const struct nx_fontbitmap_s *fbm;
|
FAR const struct nx_fontbitmap_s *fbm;
|
||||||
@ -362,7 +362,7 @@ nxtext_getglyph(FAR struct nxtext_state_s *st, uint8_t ch)
|
|||||||
{
|
{
|
||||||
/* No, it is not cached... Does the code map to a font? */
|
/* No, it is not cached... Does the code map to a font? */
|
||||||
|
|
||||||
fbm = nxf_getbitmap(g_fonthandle, ch);
|
fbm = nxf_getbitmap(hfont, ch);
|
||||||
if (fbm)
|
if (fbm)
|
||||||
{
|
{
|
||||||
/* Yes.. render the glyph */
|
/* Yes.. render the glyph */
|
||||||
@ -384,7 +384,7 @@ nxtext_getglyph(FAR struct nxtext_state_s *st, uint8_t ch)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
static FAR const struct nxtext_bitmap_s *
|
static FAR const struct nxtext_bitmap_s *
|
||||||
nxtext_addchar(FAR struct nxtext_state_s *st, uint8_t ch)
|
nxtext_addchar(NXHANDLE hfont, FAR struct nxtext_state_s *st, uint8_t ch)
|
||||||
{
|
{
|
||||||
FAR struct nxtext_bitmap_s *bm = NULL;
|
FAR struct nxtext_bitmap_s *bm = NULL;
|
||||||
FAR struct nxtext_glyph_s *glyph;
|
FAR struct nxtext_glyph_s *glyph;
|
||||||
@ -403,7 +403,7 @@ nxtext_addchar(FAR struct nxtext_state_s *st, uint8_t ch)
|
|||||||
|
|
||||||
/* Find (or create) the matching glyph */
|
/* Find (or create) the matching glyph */
|
||||||
|
|
||||||
glyph = nxtext_getglyph(st, ch);
|
glyph = nxtext_getglyph(hfont, st, ch);
|
||||||
if (!glyph)
|
if (!glyph)
|
||||||
{
|
{
|
||||||
/* No, there is no font for this code. Just mark this as a space. */
|
/* No, there is no font for this code. Just mark this as a space. */
|
||||||
@ -479,7 +479,7 @@ void nxtext_newline(FAR struct nxtext_state_s *st)
|
|||||||
*
|
*
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st, uint8_t ch)
|
void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st, NXHANDLE hfont, uint8_t ch)
|
||||||
{
|
{
|
||||||
FAR const struct nxtext_bitmap_s *bm;
|
FAR const struct nxtext_bitmap_s *bm;
|
||||||
|
|
||||||
@ -498,10 +498,10 @@ void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st, uint8_t ch)
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bm = nxtext_addchar(st, ch);
|
bm = nxtext_addchar(hfont, st, ch);
|
||||||
if (bm)
|
if (bm)
|
||||||
{
|
{
|
||||||
nxtext_fillchar(hwnd, NULL, st, bm);
|
nxtext_fillchar(hwnd, NULL, st, hfont, bm);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -517,7 +517,7 @@ void nxtext_putc(NXWINDOW hwnd, FAR struct nxtext_state_s *st, uint8_t ch)
|
|||||||
|
|
||||||
void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
||||||
FAR struct nxtext_state_s *st,
|
FAR struct nxtext_state_s *st,
|
||||||
FAR const struct nxtext_bitmap_s *bm)
|
NXHANDLE hfont, FAR const struct nxtext_bitmap_s *bm)
|
||||||
{
|
{
|
||||||
FAR struct nxtext_glyph_s *glyph;
|
FAR struct nxtext_glyph_s *glyph;
|
||||||
struct nxgl_rect_s bounds;
|
struct nxgl_rect_s bounds;
|
||||||
@ -534,7 +534,7 @@ void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
|||||||
|
|
||||||
/* Get the size of the font glyph (which may not have been created yet) */
|
/* Get the size of the font glyph (which may not have been created yet) */
|
||||||
|
|
||||||
ret = nxtext_fontsize(bm->code, &fsize);
|
ret = nxtext_fontsize(hfont, bm->code, &fsize);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
{
|
{
|
||||||
/* This would mean that there is no bitmap for the character code and
|
/* This would mean that there is no bitmap for the character code and
|
||||||
@ -576,7 +576,7 @@ void nxtext_fillchar(NXWINDOW hwnd, FAR const struct nxgl_rect_s *rect,
|
|||||||
|
|
||||||
/* Find (or create) the glyph that goes with this font */
|
/* Find (or create) the glyph that goes with this font */
|
||||||
|
|
||||||
glyph = nxtext_getglyph(st, bm->code);
|
glyph = nxtext_getglyph(hfont, st, bm->code);
|
||||||
if (!glyph)
|
if (!glyph)
|
||||||
{
|
{
|
||||||
/* Shouldn't happen */
|
/* Shouldn't happen */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user