Skip to content

Commit 46b6862

Browse files
committed
Update lua bindings type conversions
1 parent 69c14f7 commit 46b6862

File tree

9 files changed

+66
-17
lines changed

9 files changed

+66
-17
lines changed

.gitignore

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -214,9 +214,7 @@ extensions/libccs20
214214
extensions/libccs19
215215
extensions/fonteng
216216

217-
tools/bindings-generator/libclang/*.dll
218-
tools/bindings-generator/libclang/*.dylib
219-
tools/bindings-generator/libclang/*.so
217+
tools/bindings-generator/clang/prebuilt/*
220218

221219
templates/lua-template-default/Content/src/axmol
222220
tests/lua-tests/Content/src/axmol

1k/build.profiles

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ nuget=5.5.1.*
2626
# The visual studio version, @axmol-cmdline @verify
2727
vs=17.0+
2828

29+
# as stable and latest as possible, @axmol-cmdline @genbindings.ps1
2930
llvm=17.0.6~19.1.6+
3031

3132
# --- endregion
@@ -42,7 +43,7 @@ jdk=17.0.10~17.0.13+
4243
# - https://developer.android.google.cn/about/versions/15/behavior-changes-all?hl=zh-cn#16-kb
4344
# Android 15 16KB page size only supported by ndk r23 r25 from ci.android.com or r27+
4445
# In China Mainland, please download from https://pan.baidu.com/s/1neJydxOGTT7aCQvLLwbicw?pwd=qqiq
45-
# to $AX_ROOT/tools/external/, then run `setup.ps1 -p android`
46+
# to $AX_ROOT/cache/, then run `setup.ps1 -p android`
4647
ndk=r23d
4748

4849
# The android target sdk version, @gradle

extensions/scripting/lua-bindings/auto/axlua_backend_auto.cpp

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,7 +1676,7 @@ int lua_ax_backend_ProgramState_getBatchId(lua_State* tolua_S)
16761676
return 0;
16771677
}
16781678
auto&& ret = cobj->getBatchId();
1679-
#pragma warning NO CONVERSION FROM NATIVE FOR unsigned long long;
1679+
tolua_pushnumber(tolua_S,(lua_Number)ret);
16801680
return 1;
16811681
}
16821682
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "axb.ProgramState:getBatchId",argc, 0);
@@ -1689,6 +1689,53 @@ int lua_ax_backend_ProgramState_getBatchId(lua_State* tolua_S)
16891689

16901690
return 0;
16911691
}
1692+
int lua_ax_backend_ProgramState_isBatchable(lua_State* tolua_S)
1693+
{
1694+
int argc = 0;
1695+
ax::backend::ProgramState* cobj = nullptr;
1696+
bool ok = true;
1697+
1698+
#if _AX_DEBUG >= 1
1699+
tolua_Error tolua_err;
1700+
#endif
1701+
1702+
1703+
#if _AX_DEBUG >= 1
1704+
if (!tolua_isusertype(tolua_S,1,"axb.ProgramState",0,&tolua_err)) goto tolua_lerror;
1705+
#endif
1706+
1707+
cobj = (ax::backend::ProgramState*)tolua_tousertype(tolua_S,1,0);
1708+
1709+
#if _AX_DEBUG >= 1
1710+
if (!cobj)
1711+
{
1712+
tolua_error(tolua_S,"invalid 'cobj' in function 'lua_ax_backend_ProgramState_isBatchable'", nullptr);
1713+
return 0;
1714+
}
1715+
#endif
1716+
1717+
argc = lua_gettop(tolua_S)-1;
1718+
if (argc == 0)
1719+
{
1720+
if(!ok)
1721+
{
1722+
tolua_error(tolua_S,"invalid arguments in function 'lua_ax_backend_ProgramState_isBatchable'", nullptr);
1723+
return 0;
1724+
}
1725+
auto&& ret = cobj->isBatchable();
1726+
tolua_pushboolean(tolua_S,(bool)ret);
1727+
return 1;
1728+
}
1729+
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "axb.ProgramState:isBatchable",argc, 0);
1730+
return 0;
1731+
1732+
#if _AX_DEBUG >= 1
1733+
tolua_lerror:
1734+
tolua_error(tolua_S,"#ferror in function 'lua_ax_backend_ProgramState_isBatchable'.",&tolua_err);
1735+
#endif
1736+
1737+
return 0;
1738+
}
16921739
int lua_ax_backend_ProgramState_updateBatchId(lua_State* tolua_S)
16931740
{
16941741
int argc = 0;
@@ -1847,6 +1894,7 @@ int lua_register_ax_backend_ProgramState(lua_State* tolua_S)
18471894
tolua_function(tolua_S,"getMutableVertexLayout",lua_ax_backend_ProgramState_getMutableVertexLayout);
18481895
tolua_function(tolua_S,"setSharedVertexLayout",lua_ax_backend_ProgramState_setSharedVertexLayout);
18491896
tolua_function(tolua_S,"getBatchId",lua_ax_backend_ProgramState_getBatchId);
1897+
tolua_function(tolua_S,"isBatchable",lua_ax_backend_ProgramState_isBatchable);
18501898
tolua_function(tolua_S,"updateBatchId",lua_ax_backend_ProgramState_updateBatchId);
18511899
tolua_function(tolua_S,"validateSharedVertexLayout",lua_ax_backend_ProgramState_validateSharedVertexLayout);
18521900
tolua_endmodule(tolua_S);
@@ -3662,7 +3710,7 @@ int lua_ax_backend_ProgramManager_registerCustomProgram(lua_State* tolua_S)
36623710
return 0;
36633711
}
36643712
auto&& ret = cobj->registerCustomProgram(arg0, arg1);
3665-
#pragma warning NO CONVERSION FROM NATIVE FOR unsigned long long;
3713+
tolua_pushnumber(tolua_S,(lua_Number)ret);
36663714
return 1;
36673715
}
36683716
if (argc == 3)
@@ -3682,7 +3730,7 @@ int lua_ax_backend_ProgramManager_registerCustomProgram(lua_State* tolua_S)
36823730
return 0;
36833731
}
36843732
auto&& ret = cobj->registerCustomProgram(arg0, arg1, arg2);
3685-
#pragma warning NO CONVERSION FROM NATIVE FOR unsigned long long;
3733+
tolua_pushnumber(tolua_S,(lua_Number)ret);
36863734
return 1;
36873735
}
36883736
if (argc == 4)
@@ -3705,7 +3753,7 @@ int lua_ax_backend_ProgramManager_registerCustomProgram(lua_State* tolua_S)
37053753
return 0;
37063754
}
37073755
auto&& ret = cobj->registerCustomProgram(arg0, arg1, arg2, arg3);
3708-
#pragma warning NO CONVERSION FROM NATIVE FOR unsigned long long;
3756+
tolua_pushnumber(tolua_S,(lua_Number)ret);
37093757
return 1;
37103758
}
37113759
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "axb.ProgramManager:registerCustomProgram",argc, 2);
@@ -3778,8 +3826,7 @@ int lua_ax_backend_ProgramManager_loadProgram(lua_State* tolua_S)
37783826
do{
37793827
if (argc == 1) {
37803828
unsigned long long arg0;
3781-
#pragma warning NO CONVERSION TO NATIVE FOR unsigned long long
3782-
ok = false;
3829+
ok &= luaval_to_long_long(tolua_S, 2,(long long*)&arg0, "axb.ProgramManager:loadProgram");
37833830

37843831
if (!ok) { break; }
37853832
ax::backend::Program* ret = cobj->loadProgram(arg0);

extensions/scripting/lua-bindings/auto/axlua_base_auto.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11286,8 +11286,7 @@ int lua_ax_base_Node_setProgramStateByProgramId(lua_State* tolua_S)
1128611286
{
1128711287
unsigned long long arg0;
1128811288

11289-
#pragma warning NO CONVERSION TO NATIVE FOR unsigned long long
11290-
ok = false;
11289+
ok &= luaval_to_long_long(tolua_S, 2,(long long*)&arg0, "ax.Node:setProgramStateByProgramId");
1129111290
if(!ok)
1129211291
{
1129311292
tolua_error(tolua_S,"invalid arguments in function 'lua_ax_base_Node_setProgramStateByProgramId'", nullptr);

manifest.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
"kcp": "v1.7-f2aa30e",
66
"lz4": "v1.10.0",
77
"yaml-cpp": "0.8.0",
8-
"sample-assets": "master",
9-
"llvm": "19.1.5"
8+
"sample-assets": "master"
109
},
1110
"mirrors": {
1211
"github": {

tools/bindings-generator/generator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1865,7 +1865,7 @@ def generate_one(cfg, section, target, outdir, out_file):
18651865

18661866
print('Using userconfig \n ', config.items('DEFAULT'))
18671867

1868-
clang_lib_path = os.path.join(config.get('DEFAULT', 'cxxgeneratordir'), 'libclang')
1868+
clang_lib_path = os.path.join(config.get('DEFAULT', 'cxxgeneratordir'), 'clang/prebuilt')
18691869
cindex.Config.set_library_path(clang_lib_path)
18701870

18711871
if (0 == len(config.sections())):

tools/bindings-generator/libclang/.empty

Whitespace-only changes.

tools/bindings-generator/targets/lua/conversions.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ conversions:
4141
double: "ok &= luaval_to_number(tolua_S, ${arg_idx},&${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
4242
ssize_t: "ok &= luaval_to_ssize_t(tolua_S, ${arg_idx}, &${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
4343
"long long": "ok &= luaval_to_long_long(tolua_S, ${arg_idx},&${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
44+
"unsigned long long": "ok &= luaval_to_long_long(tolua_S, ${arg_idx},(long long*)&${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
4445
"string": "ok &= luaval_to_std_string(tolua_S, ${arg_idx},&${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
4546
"string_view": "ok &= luaval_to_std_string_view(tolua_S, ${arg_idx},&${out_value}, \"${lua_namespaced_class_name}:${func_name}\")"
4647
"String*": "std::string ${out_value}_tmp; ok &= luaval_to_std_string(tolua_S, ${arg_idx}, &${out_value}_tmp, \"${lua_namespaced_class_name}:${func_name}\"); ${out_value} = ax::String::create(${out_value}_tmp)"
@@ -98,6 +99,7 @@ conversions:
9899
short: "tolua_pushnumber(tolua_S,(lua_Number)${in_value})"
99100
char: "tolua_pushnumber(tolua_S,(lua_Number)${in_value})"
100101
"long long": "tolua_pushnumber(tolua_S,(lua_Number)${in_value})"
102+
"unsigned long long": "tolua_pushnumber(tolua_S,(lua_Number)${in_value})"
101103
"string": "lua_pushlstring(tolua_S,${in_value}.c_str(),${in_value}.length())"
102104
"string_view": "lua_pushlstring(tolua_S,${in_value}.data(),${in_value}.length())"
103105
"__thread_id": "std_thread_id_to_luaval(tolua_S, ${in_value})"

tools/ci/genbindings.ps1

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@ if (($stage -band 1)) {
2525

2626
## download win64 libclang.dll
2727
$lib_name = @('libclang.dll', 'libclang.so', 'libclang.dylib')[$HOST_OS]
28-
$lib_path = Join-Path $AX_ROOT "tools/bindings-generator/libclang/$lib_name"
28+
$lib_path = Join-Path $AX_ROOT "tools/bindings-generator/clang/prebuilt/$lib_name"
2929
if (!(Test-Path $lib_path -PathType Leaf)) {
3030
setup_7z
31-
$llvm_ver = $mirror_conf.versions.'llvm'
31+
$llvm_ver_pred = $manifest['llvm'].Split('~')
32+
$llvm_ver = $llvm_ver_pred[$llvm_ver_pred.Count -ge 1].TrimLast('+')
3233
$llvm_pkg = "llvm-$llvm_ver.7z"
3334

3435
$prefix = Join-Path $AX_ROOT "cache/devtools"
@@ -38,6 +39,8 @@ if (($stage -band 1)) {
3839
$1k.mkdirs($prefix)
3940
download_and_expand -url $llvm_url -out $llvm_out -dest $prefix
4041
$suffix = @('win32/x64/libclang.dll', 'linux/libclang.so', 'mac/libclang.dylib')[$HOST_OS]
42+
$lib_dir = Split-Path $lib_path -Parent
43+
$1k.mkdirs($lib_dir)
4144
Copy-Item "$prefix/llvm-$llvm_ver/lib/$suffix" -Destination $lib_path
4245
}
4346

0 commit comments

Comments
 (0)