diff options
| author | ruki <[email protected]> | 2020-04-22 22:45:10 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-04-22 10:31:03 +0800 |
| commit | 8567065df7d23e7c51880d1e36a9895a13cd4b89 (patch) | |
| tree | fdb54ac92ca1d87afbe7edaa39b0f24ccf7cca8f /core/src | |
| parent | 762a7bc9386a0acaede7d54453611999a589c776 (diff) | |
improve engine api
Diffstat (limited to 'core/src')
| -rw-r--r-- | core/src/demo/xmake.c | 2 | ||||
| -rw-r--r-- | core/src/xmake/engine.c | 7 | ||||
| -rw-r--r-- | core/src/xmake/engine.h | 5 |
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 * |
