diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/3rdparty/buildvm/buildvm.exe | bin | 0 -> 121856 bytes | |||
-rw-r--r-- | src/3rdparty/minilua/minilua.exe | bin | 0 -> 209920 bytes | |||
-rw-r--r-- | src/libjin/graphics/je_render_target.cpp | 0 | ||||
-rw-r--r-- | src/libjin/graphics/je_render_target.h | 0 | ||||
-rw-r--r-- | src/lua/common/je_lua_proxy.cpp | 2 | ||||
-rw-r--r-- | src/lua/common/je_lua_shared.cpp | 22 | ||||
-rw-r--r-- | src/lua/common/je_lua_shared.hpp | 20 | ||||
-rw-r--r-- | src/lua/modules/graphics/je_lua_spritesheet.cpp | 2 |
8 files changed, 21 insertions, 25 deletions
diff --git a/src/3rdparty/buildvm/buildvm.exe b/src/3rdparty/buildvm/buildvm.exe Binary files differnew file mode 100644 index 0000000..17f8033 --- /dev/null +++ b/src/3rdparty/buildvm/buildvm.exe diff --git a/src/3rdparty/minilua/minilua.exe b/src/3rdparty/minilua/minilua.exe Binary files differnew file mode 100644 index 0000000..71e31bc --- /dev/null +++ b/src/3rdparty/minilua/minilua.exe diff --git a/src/libjin/graphics/je_render_target.cpp b/src/libjin/graphics/je_render_target.cpp new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/libjin/graphics/je_render_target.cpp diff --git a/src/libjin/graphics/je_render_target.h b/src/libjin/graphics/je_render_target.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/src/libjin/graphics/je_render_target.h diff --git a/src/lua/common/je_lua_proxy.cpp b/src/lua/common/je_lua_proxy.cpp index dc6df30..b892e67 100644 --- a/src/lua/common/je_lua_proxy.cpp +++ b/src/lua/common/je_lua_proxy.cpp @@ -25,7 +25,7 @@ namespace JinEngine const char* Proxy::getObjectType() { - return shared->type; + return shared->getType(); } } diff --git a/src/lua/common/je_lua_shared.cpp b/src/lua/common/je_lua_shared.cpp index acf1494..b95d1a0 100644 --- a/src/lua/common/je_lua_shared.cpp +++ b/src/lua/common/je_lua_shared.cpp @@ -15,21 +15,17 @@ namespace JinEngine { if (--mCount <= 0) { - // Remove all objects referenced by object. luax_removereference(mL, this); - // Remove game object reference. luax_removeobject(mL, this); delete this; } } - void SharedBase::setDependency(int key, SharedBase* shared) + void SharedBase::setDependency(int key, SharedBase* dep) { removeDependency(key); - shared->retain(); - mDependencies.insert(std::pair<int, SharedBase*>(key, shared)); - // Set lua reference. - luax_addreference(mL, this, shared); + mDependencies.insert(std::pair<int, SharedBase*>(key, dep)); + luax_addreference(mL, this, dep); } void SharedBase::removeDependency(int key) @@ -38,9 +34,7 @@ namespace JinEngine return; DepsMap::iterator it = mDependencies.find(key); SharedBase* dep = it->second; - // Remove lua reference. luax_removereference(mL, this, dep); - dep->release(); mDependencies.erase(it); } @@ -51,8 +45,6 @@ namespace JinEngine SharedBase* dep = it->second; if (dep == dependency) { - dep->release(); - // Remove lua reference. luax_removereference(mL, this, dep); mDependencies.erase(it); } @@ -79,7 +71,7 @@ namespace JinEngine void SharedBase::clearDependencies() { for (std::pair<int, SharedBase*> dep : mDependencies) - dep.second->release(); + luax_removereference(mL, this); mDependencies.clear(); } @@ -92,7 +84,7 @@ namespace JinEngine bool SharedBase::isType(const char* t) { - return strcmp(type, t) == 0; + return strcmp(mType, t) == 0; } int SharedBase::getDependencyCount() @@ -100,6 +92,10 @@ namespace JinEngine return mDependencies.size(); } + const char* SharedBase::getType() + { + return mType; + } } }
\ No newline at end of file diff --git a/src/lua/common/je_lua_shared.hpp b/src/lua/common/je_lua_shared.hpp index 579a38e..c4b70de 100644 --- a/src/lua/common/je_lua_shared.hpp +++ b/src/lua/common/je_lua_shared.hpp @@ -12,6 +12,9 @@ namespace JinEngine namespace Lua { + /// + /// Thread safe. + /// class SharedBase { public: @@ -19,9 +22,6 @@ namespace JinEngine void release(); - // Object type. - const char* const type; - void setDependency(int key, SharedBase* shared); void removeDependency(int key); @@ -40,13 +40,14 @@ namespace JinEngine int getDependencyCount(); - protected: + const char* getType(); + protected: SharedBase(lua_State* L, void* obj, const char* t) : mCount(0) , mObject(obj) , mL(L) - , type(t) + , mType(t) { } @@ -59,10 +60,11 @@ namespace JinEngine using DepsMap = std::map<int, SharedBase*>; - void* mObject; - int mCount; lua_State* mL; - DepsMap mDependencies; + void* mObject; + int mCount; + DepsMap mDependencies; + const char* mType; }; @@ -86,10 +88,8 @@ namespace JinEngine } private: - // Disable copy constructor. Shared(const Shared<T>& shared); - // Make shared only be able created with new. ~Shared() { T* obj = static_cast<T*>(mObject); diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp index 3f22319..3c92cbc 100644 --- a/src/lua/modules/graphics/je_lua_spritesheet.cpp +++ b/src/lua/modules/graphics/je_lua_spritesheet.cpp @@ -69,7 +69,7 @@ namespace JinEngine int argc = luax_gettop(L); if (argc == 6) { - sprs = ss->createSprites(count, r, c, w, h, Origin::TopLeft); + sprs = ss->createSprites(count, r, c, w, h, Origin::TOPLEFT); } else if (argc >= 8) { |