完善入口
This commit is contained in:
parent
5b9d5ab4e8
commit
d78c306ea3
|
@ -4,8 +4,7 @@
|
|||
@LastEditTime : 2021-03-20 10:21:51
|
||||
--]]
|
||||
io.stdout:setvbuf('no',0)
|
||||
|
||||
local gge = assert(package.loadlib("ggelua", "luaopen_ggelua"),'加载"ggelua.dll"失败')()
|
||||
local ggelua = require("ggelua")
|
||||
local entry,data,nstate = ...
|
||||
|
||||
local function 分割路径(path)
|
||||
|
@ -16,17 +15,21 @@ local function 分割路径(path)
|
|||
end
|
||||
return t
|
||||
end
|
||||
|
||||
local lpath,lpath_,cpath
|
||||
if gge.platform=='Windows' then
|
||||
--lua脚本搜索
|
||||
local lpath = "?.lua;lua/?.lua;lua/?/?.lua;!/lua/?.lua;!/lua/?/?.lua"
|
||||
lpath = "?.lua;lua/?.lua;lua/?/?.lua;!/lua/?.lua;!/lua/?/?.lua"
|
||||
lpath = lpath:gsub('!',gge.getrunpath())
|
||||
lpath_ = 分割路径(lpath)
|
||||
--lua模块搜索
|
||||
local cpath = "?.dll;lib/?.dll;!/?.dll;!/lib/?.dll"
|
||||
if gge.getplatform()=='Android' then--安卓模块加 lib?
|
||||
cpath = "lib?.dll;lib/lib?.dll;!/lib?.dll;!/lib/lib?.dll"
|
||||
end
|
||||
cpath = "?.dll;lib/?.dll;!/?.dll;!/lib/?.dll"
|
||||
cpath = cpath:gsub('!',gge.getrunpath())
|
||||
|
||||
elseif gge.platform=='Android' then
|
||||
lpath = "?.lua;lua/?.lua;lua/?/?.lua"
|
||||
lpath_ = 分割路径(lpath)
|
||||
cpath = gge.arg[1].."/lib?.so"
|
||||
end
|
||||
|
||||
package.path = nil
|
||||
package.cpath = nil
|
||||
|
@ -54,6 +57,9 @@ local m_unpack = require("cmsgpack.safe").unpack
|
|||
|
||||
if data then
|
||||
data = m_unpack(data)
|
||||
elseif gge.platform=='Android' then
|
||||
error("找不到脚本")
|
||||
return
|
||||
end
|
||||
|
||||
local function 处理路径(path)
|
||||
|
|
|
@ -187,7 +187,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
|
|||
* @return arguments for the native application.
|
||||
*/
|
||||
protected String[] getArguments() {
|
||||
return new String[0];
|
||||
return new String[]{getApplicationInfo().nativeLibraryDir};
|
||||
}
|
||||
|
||||
public static void initialize() {
|
||||
|
|
|
@ -227,6 +227,9 @@
|
|||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\lib\ggelua\ggelua.vcxproj">
|
||||
<Project>{e35e2816-7594-4b05-b684-12b97e4bfd20}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\lua\lua.vcxproj">
|
||||
<Project>{8481f772-bc91-4032-8682-09809ef70942}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -176,6 +176,9 @@
|
|||
<ProjectReference Include="..\..\dep\zlib\zlib.vcxproj">
|
||||
<Project>{5fca3894-feb8-4c7f-b5fa-baff2e69f619}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\lib\ggelua\ggelua.vcxproj">
|
||||
<Project>{4f7b97f6-1b8f-416c-a987-8dba9b105f5d}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\lua\lua.vcxproj">
|
||||
<Project>{0ffa55d6-c072-4ba9-a5ea-f08cffe7d641}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -175,6 +175,9 @@
|
|||
<ProjectReference Include="..\..\dep\zlib\zlib.vcxproj">
|
||||
<Project>{5fca3894-feb8-4c7f-b5fa-baff2e69f619}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\lib\ggelua\ggelua.vcxproj">
|
||||
<Project>{4f7b97f6-1b8f-416c-a987-8dba9b105f5d}</Project>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="..\..\lua\lua.vcxproj">
|
||||
<Project>{0ffa55d6-c072-4ba9-a5ea-f08cffe7d641}</Project>
|
||||
</ProjectReference>
|
||||
|
|
|
@ -7,7 +7,10 @@
|
|||
#include "SDL_rwops.h"
|
||||
#include "SDL_main.h"
|
||||
#include "SDL_log.h"
|
||||
#include "SDL_system.h"
|
||||
#include "SDL_platform.h"
|
||||
|
||||
int luaopen_ggelua(lua_State* L);
|
||||
struct INFO {
|
||||
unsigned int signal;
|
||||
unsigned int coresize;
|
||||
|
@ -103,6 +106,7 @@ int SDL_main(int argc, char* argv[])
|
|||
lua_seti(L, -2, i);
|
||||
}
|
||||
lua_setfield(L, -2, "arg");//gge.arg
|
||||
|
||||
#ifdef _CONSOLE
|
||||
lua_pushboolean(L, 1);
|
||||
#else
|
||||
|
@ -123,15 +127,23 @@ int SDL_main(int argc, char* argv[])
|
|||
lua_setfield(L, -2, "entry");//gge.entry
|
||||
lua_pushboolean(L, 1);
|
||||
lua_setfield(L, -2, "ismain");//gge.ismain
|
||||
lua_pushstring(L, SDL_GetPlatform());
|
||||
lua_setfield(L, -2, "platform");//gge.platform
|
||||
lua_setglobal(L, "gge");
|
||||
|
||||
SDL_mutex **extra = (SDL_mutex **)lua_getextraspace(L);//线程锁
|
||||
SDL_mutex*mutex = SDL_CreateMutex();
|
||||
*extra = mutex;
|
||||
|
||||
lua_getfield(L, LUA_REGISTRYINDEX, LUA_PRELOAD_TABLE);//package.preload
|
||||
lua_pushcfunction(L, luaopen_ggelua);
|
||||
lua_setfield(L, -2, "ggelua");
|
||||
lua_pop(L, 1);
|
||||
|
||||
if (lua_getfield(L, LUA_REGISTRYINDEX, "ggelua.lua")==LUA_TSTRING){
|
||||
size_t coresize;
|
||||
const char* ggelua = lua_tolstring(L, -1, &coresize);
|
||||
lua_pop(L, 1);
|
||||
SDL_LockMutex(mutex);//ggelua.delay解锁
|
||||
|
||||
if (luaL_loadbuffer(L,ggelua,coresize,"ggelua.lua")== LUA_OK){
|
||||
|
|
Loading…
Reference in New Issue