aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/buildvm/buildvm.exebin0 -> 121856 bytes
-rw-r--r--src/3rdparty/minilua/minilua.exebin0 -> 209920 bytes
-rw-r--r--src/libjin/graphics/je_render_target.cpp0
-rw-r--r--src/libjin/graphics/je_render_target.h0
-rw-r--r--src/lua/common/je_lua_proxy.cpp2
-rw-r--r--src/lua/common/je_lua_shared.cpp22
-rw-r--r--src/lua/common/je_lua_shared.hpp20
-rw-r--r--src/lua/modules/graphics/je_lua_spritesheet.cpp2
8 files changed, 21 insertions, 25 deletions
diff --git a/src/3rdparty/buildvm/buildvm.exe b/src/3rdparty/buildvm/buildvm.exe
new file mode 100644
index 0000000..17f8033
--- /dev/null
+++ b/src/3rdparty/buildvm/buildvm.exe
Binary files differ
diff --git a/src/3rdparty/minilua/minilua.exe b/src/3rdparty/minilua/minilua.exe
new file mode 100644
index 0000000..71e31bc
--- /dev/null
+++ b/src/3rdparty/minilua/minilua.exe
Binary files differ
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)
{