这两份Patch都写在之前我写的构建系统cmake-toolset里了, 地址在https://github.com/atframework/cmake-toolset/tree/main/ports/grpc,有需要的小伙伴可以自取。 Lua binding和测试小工具 也是为了方便测试,我在cmake-toolset构建系统的Test里写了个小工具,可以加载upb的Lua
增加函数对目标回调接口传递lua function 在该回调lua_CFunction里面,把lua function注册到事件管理器,同时增加自己的事件类型 在目标触发回调的地方,派发事件,传递自己的数据 把数据传递到注册起来的函数中 第一、二步如下代码: staticintlua_cocos2dx_AssetsManager_setDelegate(lua_State* L) { if(nullptr == L)...
// lua-binding-test.cppextern"C"{// Lua头文件必须以C方式包含#include"lua.h"#include"lualib.h"#include"lauxlib.h"externintluaopen_mylib(lua_State*);}/// 待运行的脚本constchar*SCRIPT=R"(print("mylib.addOne(1.0) = "..tostring(mylib.addOne(1.0)))";intmain(){auto*L=luaL_newstat...
lua原生实现了很多c api对栈空间进行操作, 让开发者能够方便地实现lua脚本代码与c编译代码的双向通信. 本文的主题是lua和c++混合编程, 但背后其实是lua和c api的互相调用, 所有c++的功能都要通过一层c函数的包装, 这点是要牢记在心的, 这也正是lua-binding的核心. cocos2d-x提供的lua-bingding工具使用lib...
lua_pushcfunction(L, &lsetOpacity); lua_setglobal(L, "lsetOpacity"); 在Lua 里,就不再使用对象方法来调用了,而是改成这三个全局函数。测试结果暴涨到8200个星星,接近 C++ 70% 的性能了。 总结 cocos2d-x 现在使用的 Luabinding 只能达到 C++ 37.5% 的性能。在更换新 Luabinding 并做相应调整后,可以...
这段代码在开了 -O2 编译后,在我的机器上依旧需要时间 1.9s。若是这么看,那简直是太慢了 (比 luajit + c binding 还慢)。很久没研究 C++ 的细节,也懒得看了,如果谁有兴趣研究一下为什么 C++ 这么慢,我很有兴趣知道原因。 12 月 16 日 留言中 lifc0 说这段 C++ 代码中开销最大的是 stringstream 的...
1. LOCAL_SRC_FILES : 编译到Android的地本的类cpp或c,比如自定义了一个类HSprite.h HSprite.cpp 那么要需添加到这个 LOCAL_SRC_FILES 中,如下: 1 2 3 LOCAL_SRC_FILES := hellocpp/main.cpp \ /Classes/AppDelegate.cpp \ ...
这个思路不仅仅适用于 Unity 下的 lua 脚本静态分析,理论上其它游戏引擎做lua binding 都可以使用类似的思路做静态分析。 预编译 lua 脚本 Lua 源码版本: 5.3.5 llex.c: 词法分析 lparser.c: 语法、语义分析 lua.c: 解释器 luac.c: 编译器 lauxlib.h 中公开了编译相关 api: //lauxlib.h LUALIB_API int...
A few blog posts to experiment with the Lua C API. Contribute to zilongshanren/LuaCppBindingDemo development by creating an account on GitHub.
这段代码在开了 -O2 编译后,在我的机器上依旧需要时间 1.9s。若是这么看,那简直是太慢了 (比 luajit + c binding 还慢)。很久没研究 C++ 的细节,也懒得看了,如果谁有兴趣研究一下为什么 C++ 这么慢,我很有兴趣知道原因。 12 月 16 日 留言中 lifc0 说这段 C++ 代码中开销最大的是 stringstream 的...