diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lua/common/je_lua_shared.cpp | 1 | ||||
-rw-r--r-- | src/lua/common/je_lua_shared.hpp | 8 | ||||
-rw-r--r-- | src/lua/modules/graphics/je_lua_graphics.cpp | 4 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/lua/common/je_lua_shared.cpp b/src/lua/common/je_lua_shared.cpp index 91a5105..eecf632 100644 --- a/src/lua/common/je_lua_shared.cpp +++ b/src/lua/common/je_lua_shared.cpp @@ -1,5 +1,6 @@ #include "je_lua.h" #include "je_lua_shared.hpp" +#include "libjin/jin.h" namespace JinEngine { diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp index bfe0629..f89783d 100644 --- a/src/lua/common/je_lua_shared.hpp +++ b/src/lua/common/je_lua_shared.hpp @@ -13,7 +13,7 @@ namespace JinEngine class LuaObject; /// - /// Thread safe. + /// ̰߳ȫĹģ塣 /// class SharedBase { @@ -29,8 +29,10 @@ namespace JinEngine SharedBase(const SharedBase&); - // ͬһ̵߳lua_StateУLuaObjectEngineObjectӦһһӦLuaObject(lua runtime) - // üͻաEngine-sideüΪά̵ͬ߳lua_StateͬһEngineObject + // ͬһ̵߳lua_StateУLuaObjectEngineObjectӦһһӦLuaObject(lua runtime)ü + // աEngine-sideüΪά̵ͬ߳lua_StateͬһEngineObjectÿLuaObjectһ + // Sharedʱһüͬһ߳УһEngineObjectֻһLuaObjectnew + // instanceУômCountͱEngineObjectĹ߳ void retain(); void release(); diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp index 2fc8ecf..ea9a265 100644 --- a/src/lua/modules/graphics/je_lua_graphics.cpp +++ b/src/lua/modules/graphics/je_lua_graphics.cpp @@ -737,6 +737,7 @@ namespace JinEngine int o = luax_checkinteger(L, 3); Origin origin = static_cast<Origin>(o); LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared<Sprite>(new Sprite(graphic, quad, origin), Jin_Lua_Sprite)); + p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getSharedBase()); } else if (n == 4) { @@ -748,18 +749,21 @@ namespace JinEngine int ox = luax_checkinteger(L, 3); int oy = luax_checkinteger(L, 4); LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared<Sprite>(new Sprite(graphic, quad, ox, oy), Jin_Lua_Sprite)); + p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getSharedBase()); } else if (n == 2) { int o = luax_checkinteger(L, 2); Origin origin = static_cast<Origin>(o); LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared<Sprite>(new Sprite(graphic, origin), Jin_Lua_Sprite)); + p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getSharedBase()); } else if (n == 3) { int ox = luax_checkinteger(L, 2); int oy = luax_checkinteger(L, 3); LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared<Sprite>(new Sprite(graphic, ox, oy), Jin_Lua_Sprite)); + p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getSharedBase()); } else { |