summaryrefslogtreecommitdiff
path: root/core/src
diff options
context:
space:
mode:
authorruki <[email protected]>2020-04-22 22:45:10 +0800
committerruki <[email protected]>2020-04-22 10:31:03 +0800
commit8567065df7d23e7c51880d1e36a9895a13cd4b89 (patch)
treefdb54ac92ca1d87afbe7edaa39b0f24ccf7cca8f /core/src
parent762a7bc9386a0acaede7d54453611999a589c776 (diff)
improve engine api
Diffstat (limited to 'core/src')
-rw-r--r--core/src/demo/xmake.c2
-rw-r--r--core/src/xmake/engine.c7
-rw-r--r--core/src/xmake/engine.h5
3 files changed, 10 insertions, 4 deletions
diff --git a/core/src/demo/xmake.c b/core/src/demo/xmake.c
index 804f5dc5d..69141323a 100644
--- a/core/src/demo/xmake.c
+++ b/core/src/demo/xmake.c
@@ -15,7 +15,7 @@ tb_int_t main(tb_int_t argc, tb_char_t** argv)
if (xm_init())
{
// init engine
- xm_engine_ref_t engine = xm_engine_init();
+ xm_engine_ref_t engine = xm_engine_init(tb_null);
if (engine)
{
// do engine main entry
diff --git a/core/src/xmake/engine.c b/core/src/xmake/engine.c
index aeae4b76f..b7ef783d1 100644
--- a/core/src/xmake/engine.c
+++ b/core/src/xmake/engine.c
@@ -743,10 +743,10 @@ static tb_void_t xm_engine_init_features(xm_engine_t* engine)
/* //////////////////////////////////////////////////////////////////////////////////////
* implementation
*/
-xm_engine_ref_t xm_engine_init()
+xm_engine_ref_t xm_engine_init(xm_engine_lua_initializer_cb_t lua_initalizer)
{
// done
- tb_bool_t ok = tb_false;
+ tb_bool_t ok = tb_false;
xm_engine_t* engine = tb_null;
do
{
@@ -829,6 +829,9 @@ xm_engine_ref_t xm_engine_init()
lua_newtable(engine->lua);
lua_setglobal(engine->lua, "xmake");
+ // do lua initializer
+ if (lua_initalizer) lua_initalizer(engine->lua);
+
#ifdef TB_CONFIG_OS_WINDOWS
// enable terminal colors output for windows cmd
HANDLE output = GetStdHandle(STD_OUTPUT_HANDLE);
diff --git a/core/src/xmake/engine.h b/core/src/xmake/engine.h
index cd02516f7..d4e117e51 100644
--- a/core/src/xmake/engine.h
+++ b/core/src/xmake/engine.h
@@ -38,6 +38,9 @@ __tb_extern_c_enter__
/// the xmake engine type
typedef struct {tb_int_t dummy;} const* xm_engine_ref_t;
+/// the lua initializer callback type
+typedef tb_bool_t (*xm_engine_lua_initializer_cb_t)(lua_State* lua);
+
/* //////////////////////////////////////////////////////////////////////////////////////
* interfaces
*/
@@ -46,7 +49,7 @@ typedef struct {tb_int_t dummy;} const* xm_engine_ref_t;
*
* @return the engine
*/
-xm_engine_ref_t xm_engine_init(tb_noarg_t);
+xm_engine_ref_t xm_engine_init(xm_engine_lua_initializer_cb_t lua_initalizer);
/*! exit the engine
*