Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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
Hide 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