aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lua/common/je_lua_shared.cpp1
-rw-r--r--src/lua/common/je_lua_shared.hpp8
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.cpp4
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ֻһLuaObject󶨣new
+ // 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
{