Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
32774d42
Commit
32774d42
authored
Mar 01, 2015
by
devsaurus
Browse files
handle font data as light userdata
parent
7ae293d5
Changes
4
Show whitespace changes
Inline
Side-by-side
app/lua/lrodefs.h
View file @
32774d42
...
@@ -21,6 +21,7 @@
...
@@ -21,6 +21,7 @@
#define LNUMKEY LRO_NUMKEY
#define LNUMKEY LRO_NUMKEY
#define LNILKEY LRO_NILKEY
#define LNILKEY LRO_NILKEY
#define LFUNCVAL LRO_FUNCVAL
#define LFUNCVAL LRO_FUNCVAL
#define LUDATA LRO_LUDATA
#define LNUMVAL LRO_NUMVAL
#define LNUMVAL LRO_NUMVAL
#define LROVAL LRO_ROVAL
#define LROVAL LRO_ROVAL
#define LNILVAL LRO_NILVAL
#define LNILVAL LRO_NILVAL
...
...
app/lua/lrotable.h
View file @
32774d42
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
/* Macros one can use to define rotable entries */
/* Macros one can use to define rotable entries */
#ifndef LUA_PACK_VALUE
#ifndef LUA_PACK_VALUE
#define LRO_FUNCVAL(v) {{.p = v}, LUA_TLIGHTFUNCTION}
#define LRO_FUNCVAL(v) {{.p = v}, LUA_TLIGHTFUNCTION}
#define LRO_LUDATA(v) {{.p = v}, LUA_TLIGHTUSERDATA}
#define LRO_NUMVAL(v) {{.n = v}, LUA_TNUMBER}
#define LRO_NUMVAL(v) {{.n = v}, LUA_TNUMBER}
#define LRO_ROVAL(v) {{.p = (void*)v}, LUA_TROTABLE}
#define LRO_ROVAL(v) {{.p = (void*)v}, LUA_TROTABLE}
#define LRO_NILVAL {{.p = NULL}, LUA_TNIL}
#define LRO_NILVAL {{.p = NULL}, LUA_TNIL}
...
@@ -18,10 +19,12 @@
...
@@ -18,10 +19,12 @@
#define LRO_NUMVAL(v) {.value.n = v}
#define LRO_NUMVAL(v) {.value.n = v}
#ifdef ELUA_ENDIAN_LITTLE
#ifdef ELUA_ENDIAN_LITTLE
#define LRO_FUNCVAL(v) {{(int)v, add_sig(LUA_TLIGHTFUNCTION)}}
#define LRO_FUNCVAL(v) {{(int)v, add_sig(LUA_TLIGHTFUNCTION)}}
#define LRO_LUDATA(v) {{(int)v, add_sig(LUA_TLIGHTUSERDATA)}}
#define LRO_ROVAL(v) {{(int)v, add_sig(LUA_TROTABLE)}}
#define LRO_ROVAL(v) {{(int)v, add_sig(LUA_TROTABLE)}}
#define LRO_NILVAL {{0, add_sig(LUA_TNIL)}}
#define LRO_NILVAL {{0, add_sig(LUA_TNIL)}}
#else // #ifdef ELUA_ENDIAN_LITTLE
#else // #ifdef ELUA_ENDIAN_LITTLE
#define LRO_FUNCVAL(v) {{add_sig(LUA_TLIGHTFUNCTION), (int)v}}
#define LRO_FUNCVAL(v) {{add_sig(LUA_TLIGHTFUNCTION), (int)v}}
#define LRO_LUDATA(v) {{add_sig(LUA_TLIGHTUSERDATA), (int)v}}
#define LRO_ROVAL(v) {{add_sig(LUA_TROTABLE), (int)v}}
#define LRO_ROVAL(v) {{add_sig(LUA_TROTABLE), (int)v}}
#define LRO_NILVAL {{add_sig(LUA_TNIL), 0}}
#define LRO_NILVAL {{add_sig(LUA_TNIL), 0}}
#endif // #ifdef ELUA_ENDIAN_LITTLE
#endif // #ifdef ELUA_ENDIAN_LITTLE
...
...
app/modules/auxmods.h
View file @
32774d42
...
@@ -95,5 +95,9 @@ LUALIB_API int ( luaopen_ow )( lua_State *L );
...
@@ -95,5 +95,9 @@ LUALIB_API int ( luaopen_ow )( lua_State *L );
lua_pushnumber( L, val );\
lua_pushnumber( L, val );\
lua_setfield( L, -2, name )
lua_setfield( L, -2, name )
#define MOD_REG_LUDATA( L, name, val )\
lua_pushlightuserdata( L, val );\
lua_setfield( L, -2, name )
#endif
#endif
app/modules/u8g.c
View file @
32774d42
...
@@ -26,13 +26,13 @@ typedef struct _lu8g_userdata_t lu8g_userdata_t;
...
@@ -26,13 +26,13 @@ typedef struct _lu8g_userdata_t lu8g_userdata_t;
// Font look-up array
// Font look-up array
static
const
u8g_fntpgm_uint8_t
*
font_array
[]
=
//
static const u8g_fntpgm_uint8_t *font_array[] =
{
//
{
#undef U8G_FONT_TABLE_ENTRY
//
#undef U8G_FONT_TABLE_ENTRY
#define U8G_FONT_TABLE_ENTRY(font) u8g_ ## font ,
//
#define U8G_FONT_TABLE_ENTRY(font) u8g_ ## font ,
U8G_FONT_TABLE
//
U8G_FONT_TABLE
NULL
//
NULL
};
//
};
static
uint32_t
*
u8g_pgm_cached_iadr
=
NULL
;
static
uint32_t
*
u8g_pgm_cached_iadr
=
NULL
;
...
@@ -102,9 +102,9 @@ static int lu8g_setFont( lua_State *L )
...
@@ -102,9 +102,9 @@ static int lu8g_setFont( lua_State *L )
if
((
lud
=
get_lud
(
L
))
==
NULL
)
if
((
lud
=
get_lud
(
L
))
==
NULL
)
return
0
;
return
0
;
lua_Integer
font
nr
=
luaL_checkinteger
(
L
,
2
);
u8g_fntpgm_uint8_t
*
font
=
(
u8g_fntpgm_uint8_t
*
)
lua_touserdata
(
L
,
2
);
if
(
(
font
nr
>=
0
)
&&
(
fontnr
<
(
sizeof
(
font_array
)
/
sizeof
(
u8g_fntpgm_uint8_t
)))
)
if
(
font
!=
NULL
)
u8g_SetFont
(
LU8G
,
font
_array
[
fontnr
]
);
u8g_SetFont
(
LU8G
,
font
);
return
0
;
return
0
;
}
}
...
@@ -1128,7 +1128,7 @@ const LUA_REG_TYPE lu8g_map[] =
...
@@ -1128,7 +1128,7 @@ const LUA_REG_TYPE lu8g_map[] =
// Register fonts
// Register fonts
#undef U8G_FONT_TABLE_ENTRY
#undef U8G_FONT_TABLE_ENTRY
#define U8G_FONT_TABLE_ENTRY(font) { LSTRKEY( #font ), L
NUMVAL( __COUNTER__
) },
#define U8G_FONT_TABLE_ENTRY(font) { LSTRKEY( #font ), L
UDATA( (void *)(u8g_ ## font)
) },
U8G_FONT_TABLE
U8G_FONT_TABLE
// Options for circle/ ellipse drwing
// Options for circle/ ellipse drwing
...
@@ -1164,7 +1164,7 @@ LUALIB_API int luaopen_u8g( lua_State *L )
...
@@ -1164,7 +1164,7 @@ LUALIB_API int luaopen_u8g( lua_State *L )
// Register fonts
// Register fonts
#undef U8G_FONT_TABLE_ENTRY
#undef U8G_FONT_TABLE_ENTRY
#define U8G_FONT_TABLE_ENTRY(font) MOD_REG_
NUMBER
( L, #font,
__COUNTER__
);
#define U8G_FONT_TABLE_ENTRY(font) MOD_REG_
LUDATA
( L, #font,
(void *)(u8g_ ## font)
);
U8G_FONT_TABLE
U8G_FONT_TABLE
// Options for circle/ ellipse drawing
// Options for circle/ ellipse drawing
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment