aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-12-08 22:05:31 +0800
committerchai <chaifix@163.com>2018-12-08 22:05:31 +0800
commita16ce94158c9cf22a19c0e73dfe2e992a8302af1 (patch)
tree52d80d950cd410ba82af909e18f77e3b11cd6eda /src
parentd34e5c9d7c6135e805f2cc231411cdcc9910190c (diff)
*去除shared template
Diffstat (limited to 'src')
-rw-r--r--src/libjin/graphics/fonts/je_page.h2
-rw-r--r--src/libjin/graphics/fonts/je_texture_font.h2
-rw-r--r--src/libjin/graphics/fonts/je_ttf.h2
-rw-r--r--src/libjin/graphics/je_sprite_sheet.h2
-rw-r--r--src/libjin/graphics/shaders/je_shader.h2
-rw-r--r--src/libjin/net/je_socket.h4
-rw-r--r--src/libjin/time/je_timer.h6
-rw-r--r--src/lua/common/je_lua.h14
-rw-r--r--src/lua/common/je_lua_object.cpp48
-rw-r--r--src/lua/common/je_lua_object.h28
-rw-r--r--src/lua/common/je_lua_runtime.cpp20
-rw-r--r--src/lua/common/je_lua_shared.cpp25
-rw-r--r--src/lua/common/je_lua_shared.hpp80
-rw-r--r--src/lua/modules/audio/je_lua_audio.cpp2
-rw-r--r--src/lua/modules/audio/je_lua_source.cpp48
-rw-r--r--src/lua/modules/graphics/je_lua_animation.cpp36
-rw-r--r--src/lua/modules/graphics/je_lua_animator.cpp37
-rw-r--r--src/lua/modules/graphics/je_lua_bitmap.cpp35
-rw-r--r--src/lua/modules/graphics/je_lua_canvas.cpp20
-rw-r--r--src/lua/modules/graphics/je_lua_graphics.cpp80
-rw-r--r--src/lua/modules/graphics/je_lua_page.cpp2
-rw-r--r--src/lua/modules/graphics/je_lua_particle_system.cpp62
-rw-r--r--src/lua/modules/graphics/je_lua_shader.cpp32
-rw-r--r--src/lua/modules/graphics/je_lua_sprite.cpp10
-rw-r--r--src/lua/modules/graphics/je_lua_spritesheet.cpp10
-rw-r--r--src/lua/modules/graphics/je_lua_texture.cpp12
-rw-r--r--src/lua/modules/graphics/je_lua_texture_font.cpp5
-rw-r--r--src/lua/modules/graphics/je_lua_ttf.cpp5
-rw-r--r--src/lua/modules/graphics/je_lua_ttf_data.cpp7
-rw-r--r--src/lua/modules/net/je_lua_buffer.cpp34
-rw-r--r--src/lua/modules/net/je_lua_buffer.h2
-rw-r--r--src/lua/modules/net/je_lua_net.cpp4
-rw-r--r--src/lua/modules/net/je_lua_socket.cpp36
-rw-r--r--src/lua/modules/thread/je_lua_thread.cpp33
-rw-r--r--src/lua/modules/thread/je_lua_thread.h2
-rw-r--r--src/lua/modules/time/je_lua_time.cpp2
-rw-r--r--src/lua/modules/time/je_lua_timer.cpp20
37 files changed, 357 insertions, 414 deletions
diff --git a/src/libjin/graphics/fonts/je_page.h b/src/libjin/graphics/fonts/je_page.h
index 707f53a..b3c831c 100644
--- a/src/libjin/graphics/fonts/je_page.h
+++ b/src/libjin/graphics/fonts/je_page.h
@@ -39,7 +39,7 @@ namespace JinEngine
/// A page is a pre-rendered text struct for reducing draw call. Each page
/// keeps a font pointer which should not be changed.
///
- struct Page
+ struct Page : public Object
{
Font* font;
std::vector<GlyphArrayDrawInfo> glyphinfolist;
diff --git a/src/libjin/graphics/fonts/je_texture_font.h b/src/libjin/graphics/fonts/je_texture_font.h
index a753cac..4875361 100644
--- a/src/libjin/graphics/fonts/je_texture_font.h
+++ b/src/libjin/graphics/fonts/je_texture_font.h
@@ -23,7 +23,7 @@ namespace JinEngine
///
///
///
- class TextureFont : public Font, public Graphic
+ class TextureFont : public Font, public Graphic, public Object
{
public:
///
diff --git a/src/libjin/graphics/fonts/je_ttf.h b/src/libjin/graphics/fonts/je_ttf.h
index c5e2af5..198594a 100644
--- a/src/libjin/graphics/fonts/je_ttf.h
+++ b/src/libjin/graphics/fonts/je_ttf.h
@@ -110,7 +110,7 @@ namespace JinEngine
};
- class TTF : public Font
+ class TTF : public Font, public Object
{
public:
//static TTF* createTTF(TTFData* ttfData, unsigned ttfSzie);
diff --git a/src/libjin/graphics/je_sprite_sheet.h b/src/libjin/graphics/je_sprite_sheet.h
index 70aa5e3..a71ea04 100644
--- a/src/libjin/graphics/je_sprite_sheet.h
+++ b/src/libjin/graphics/je_sprite_sheet.h
@@ -12,7 +12,7 @@ namespace JinEngine
namespace Graphics
{
- class SpriteSheet
+ class SpriteSheet : public Object
{
public:
SpriteSheet(const Graphic* graphic);
diff --git a/src/libjin/graphics/shaders/je_shader.h b/src/libjin/graphics/shaders/je_shader.h
index a30413c..d8be118 100644
--- a/src/libjin/graphics/shaders/je_shader.h
+++ b/src/libjin/graphics/shaders/je_shader.h
@@ -29,7 +29,7 @@ namespace JinEngine
/// JSL program is compiled into glsl, so most glsl built in functions and structs are available in
/// JSL.
///
- class Shader
+ class Shader : public Object
{
public:
///
diff --git a/src/libjin/net/je_socket.h b/src/libjin/net/je_socket.h
index eb01719..4e7faa8 100644
--- a/src/libjin/net/je_socket.h
+++ b/src/libjin/net/je_socket.h
@@ -3,6 +3,8 @@
#include "../core/je_configuration.h"
#if defined(jin_net)
+#include "../common/je_object.h"
+
#include "tekcos/tekcos.h"
namespace JinEngine
@@ -32,7 +34,7 @@ namespace JinEngine
///
///
///
- class Socket
+ class Socket : public Object
{
public:
diff --git a/src/libjin/time/je_timer.h b/src/libjin/time/je_timer.h
index f9feebe..a918d63 100644
--- a/src/libjin/time/je_timer.h
+++ b/src/libjin/time/je_timer.h
@@ -8,6 +8,8 @@
#include "SDL2/SDL.h"
+#include "../common/je_object.h"
+
namespace JinEngine
{
namespace Time
@@ -16,7 +18,7 @@ namespace JinEngine
///
///
///
- class Timer
+ class Timer : public Object
{
public:
@@ -27,7 +29,7 @@ namespace JinEngine
///
///
///
- class Handler
+ class Handler : public Object
{
public:
friend class Timer;
diff --git a/src/lua/common/je_lua.h b/src/lua/common/je_lua.h
index b390e4c..cacec95 100644
--- a/src/lua/common/je_lua.h
+++ b/src/lua/common/je_lua.h
@@ -20,7 +20,7 @@ namespace JinEngine
///
///
///
- LuaObject* luax_newinstance(lua_State* L, const char* type, SharedBase* shared);
+ LuaObject* luax_newinstance(lua_State* L, const char* type, Shared* shared);
///
/// Copy instance to another lua state.
@@ -35,32 +35,32 @@ namespace JinEngine
///
/// Access lua object by object pointer.
///
- int luax_getobject(lua_State* L, SharedBase* shared);
+ int luax_getobject(lua_State* L, Shared* shared);
///
/// Get object's reference table.
///
- void luax_getreference(lua_State* L, SharedBase* shared);
+ void luax_getreference(lua_State* L, Shared* shared);
///
///
///
- bool luax_addreference(lua_State* L, SharedBase* shared, SharedBase* dep);
+ bool luax_addreference(lua_State* L, Shared* shared, Shared* dep);
///
///
///
- void luax_removereference(lua_State* L, SharedBase* shared);
+ void luax_removereference(lua_State* L, Shared* shared);
///
///
///
- void luax_removereference(lua_State* L, SharedBase* shared, SharedBase* dep);
+ void luax_removereference(lua_State* L, Shared* shared, Shared* dep);
///
///
///
- void luax_removeobject(lua_State* L, SharedBase* shared);
+ void luax_removeobject(lua_State* L, Shared* shared);
///
///
diff --git a/src/lua/common/je_lua_object.cpp b/src/lua/common/je_lua_object.cpp
index de3270a..9aabeb5 100644
--- a/src/lua/common/je_lua_object.cpp
+++ b/src/lua/common/je_lua_object.cpp
@@ -6,48 +6,48 @@ namespace JinEngine
namespace Lua
{
- void LuaObject::bind(SharedBase* obj)
+ void LuaObject::bind(Shared* obj)
{
if (obj)
{
- object = obj;
- object->retain();
- dependencies = new std::map<uint, SharedBase*>();
+ shared = obj;
+ shared->retain();
+ dependencies = new std::map<uint, Shared*>();
}
}
void LuaObject::release()
{
- // Delete lua object table reference and references.
+ // Delete lua shared table reference and references.
if (dependencies)
{
clearDependencies();
delete dependencies;
dependencies = nullptr;
}
- // Try delete engine side object.
- if (object)
+ // Try delete engine side shared.
+ if (shared)
{
- object->release();
- object = nullptr;
+ shared->release();
+ shared = nullptr;
}
}
const char* LuaObject::getObjectType()
{
- return object->getType();
+ return shared->getType();
}
- SharedBase* LuaObject::getShared()
+ Shared* LuaObject::getShared()
{
- return object;
+ return shared;
}
- void LuaObject::setDependency(uint key, SharedBase* dep)
+ void LuaObject::setDependency(uint key, Shared* dep)
{
removeDependency(key);
- dependencies->insert(std::pair<uint, SharedBase*>(key, dep));
- luax_addreference(state, object, dep);
+ dependencies->insert(std::pair<uint, Shared*>(key, dep));
+ luax_addreference(state, shared, dep);
}
void LuaObject::removeDependency(uint key)
@@ -55,19 +55,19 @@ namespace JinEngine
if (!isDependOn(key))
return;
DepsMap::iterator it = dependencies->find(key);
- SharedBase* dep = it->second;
- luax_removereference(state, object, dep);
+ Shared* dep = it->second;
+ luax_removereference(state, shared, dep);
dependencies->erase(it);
}
- void LuaObject::removeDependency(SharedBase* dependency)
+ void LuaObject::removeDependency(Shared* dependency)
{
for (DepsMap::iterator it = dependencies->begin(); it != dependencies->end();)
{
- SharedBase* dep = it->second;
+ Shared* dep = it->second;
if (dep == dependency)
{
- luax_removereference(state, object, dep);
+ luax_removereference(state, shared, dep);
dependencies->erase(it);
}
else
@@ -80,9 +80,9 @@ namespace JinEngine
return dependencies->find(key) != dependencies->end();
}
- bool LuaObject::isDependOn(SharedBase* shared)
+ bool LuaObject::isDependOn(Shared* shared)
{
- for (std::pair<uint, SharedBase*> dep : (*dependencies))
+ for (std::pair<uint, Shared*> dep : (*dependencies))
{
if (dep.second == shared)
return true;
@@ -92,11 +92,11 @@ namespace JinEngine
void LuaObject::clearDependencies()
{
- luax_removereference(state, object);
+ luax_removereference(state, shared);
dependencies->clear();
}
- SharedBase* LuaObject::getDependency(uint key)
+ Shared* LuaObject::getDependency(uint key)
{
if (!isDependOn(key))
return nullptr;
diff --git a/src/lua/common/je_lua_object.h b/src/lua/common/je_lua_object.h
index 296ee03..a81f57c 100644
--- a/src/lua/common/je_lua_object.h
+++ b/src/lua/common/je_lua_object.h
@@ -17,43 +17,33 @@ namespace JinEngine
///
/// Set lua_State and object it bind.
///
- void bind(SharedBase* obj);
+ void bind(Shared* obj);
void release();
const char* getObjectType();
- SharedBase* getShared();
+ Shared* getShared();
template<class T>
- Shared<T>& getShared()
- {
- return *(Shared<T>*)object;
- }
-
- ///
- /// For convenience.
- ///
- template<class T>
T* getObject()
{
- Shared<T>& shared = getShared<T>();
- return shared.getObject();
+ return shared->getObject<T>();
}
- void setDependency(uint key, SharedBase* shared);
+ void setDependency(uint key, Shared* shared);
void removeDependency(uint key);
- void removeDependency(SharedBase* dep);
+ void removeDependency(Shared* dep);
bool isDependOn(uint key);
- bool isDependOn(SharedBase* shared);
+ bool isDependOn(Shared* shared);
void clearDependencies();
- SharedBase* getDependency(uint key);
+ Shared* getDependency(uint key);
int getDependenciesCount();
@@ -61,11 +51,11 @@ namespace JinEngine
// Lua state object.
//////////////////////////////////////////////////////////////////////////////////////////////////////
- using DepsMap = std::map<uint, SharedBase*>;
+ using DepsMap = std::map<uint, Shared*>;
lua_State* state;
- SharedBase* object;
+ Shared* shared;
DepsMap* dependencies;
diff --git a/src/lua/common/je_lua_runtime.cpp b/src/lua/common/je_lua_runtime.cpp
index 055073d..0110d22 100644
--- a/src/lua/common/je_lua_runtime.cpp
+++ b/src/lua/common/je_lua_runtime.cpp
@@ -19,7 +19,7 @@ namespace JinEngine
using DepsMap = LuaObject::DepsMap;
- LuaObject* luax_newinstance(lua_State* L, const char* type, SharedBase* shared)
+ LuaObject* luax_newinstance(lua_State* L, const char* type, Shared* shared)
{
LuaObject* obj = static_cast<LuaObject*>(luax_newinstance(L, type, sizeof(LuaObject)));
obj->state = L;
@@ -46,7 +46,7 @@ namespace JinEngine
DepsMap& srcDeps = *src->dependencies;
for (DepsMap::iterator it = srcDeps.begin(); it != srcDeps.end(); ++it)
{
- SharedBase* shr = it->second;
+ Shared* shr = it->second;
// Try get lua object.
luax_getobject(src->state, shr);
LuaObject* luaObj = (LuaObject*)luax_checktype(src->state, -1, shr->getType());
@@ -54,7 +54,7 @@ namespace JinEngine
luax_copyinstance(to, luaObj);
luax_pop(to, 1); // Pop reference object.
}
- SharedBase * shr = src->getShared();
+ Shared * shr = src->getShared();
LuaObject* obj = luax_newinstance(to, src->getObjectType(), shr);
(*obj->dependencies) = (*src->dependencies);
// Add to objects_table.
@@ -68,13 +68,13 @@ namespace JinEngine
DepsMap::iterator it = deps.begin();
for (; it != deps.end(); ++it)
{
- SharedBase* dep = it->second;
+ Shared* dep = it->second;
luax_addreference(to, shr, dep);
}
return obj;
}
- int luax_getobject(lua_State* L, SharedBase* shared)
+ int luax_getobject(lua_State* L, Shared* shared)
{
luax_getobjectstable(L);
luax_pushlightuserdata(L, shared);
@@ -83,7 +83,7 @@ namespace JinEngine
return 1;
}
- void luax_removeobject(lua_State* L, SharedBase* shared)
+ void luax_removeobject(lua_State* L, Shared* shared)
{
luax_getobjectstable(L);
luax_pushlightuserdata(L, shared);
@@ -152,7 +152,7 @@ namespace JinEngine
return 1;
}
- void luax_getreference(lua_State* L, SharedBase* shared)
+ void luax_getreference(lua_State* L, Shared* shared)
{
luax_getreferencestable(L);
luax_pushlightuserdata(L, shared);
@@ -160,7 +160,7 @@ namespace JinEngine
luax_remove(L, -2);
}
- bool luax_addreference(lua_State* L, SharedBase* shared, SharedBase* dep)
+ bool luax_addreference(lua_State* L, Shared* shared, Shared* dep)
{
luax_getreference(L, shared);
// If no dependencies table, add one.
@@ -186,7 +186,7 @@ namespace JinEngine
return true;
}
- void luax_removereference(lua_State* L, SharedBase* shared)
+ void luax_removereference(lua_State* L, Shared* shared)
{
luax_getreferencestable(L);
luax_pushlightuserdata(L, shared);
@@ -195,7 +195,7 @@ namespace JinEngine
luax_pop(L, 1);
}
- void luax_removereference(lua_State* L, SharedBase* shared, SharedBase* dep)
+ void luax_removereference(lua_State* L, Shared* shared, Shared* dep)
{
luax_getreference(L, shared);
if (luax_isnil(L, -1))
diff --git a/src/lua/common/je_lua_shared.cpp b/src/lua/common/je_lua_shared.cpp
index eecf632..62dfab9 100644
--- a/src/lua/common/je_lua_shared.cpp
+++ b/src/lua/common/je_lua_shared.cpp
@@ -7,23 +7,12 @@ namespace JinEngine
namespace Lua
{
- SharedBase::SharedBase(void* obj, const char* t)
- : mCount(0)
- , mObject(obj)
- , mType(t)
- {
- }
-
- SharedBase::~SharedBase()
- {
- }
-
- void SharedBase::retain()
+ void Shared::retain()
{
++mCount;
}
- void SharedBase::release()
+ void Shared::release()
{
if (--mCount <= 0)
{
@@ -31,15 +20,5 @@ namespace JinEngine
}
}
- bool SharedBase::isType(const char* t)
- {
- return strcmp(mType, t) == 0;
- }
-
- 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 86ee9be..16dd943 100644
--- a/src/lua/common/je_lua_shared.hpp
+++ b/src/lua/common/je_lua_shared.hpp
@@ -5,6 +5,8 @@
#include <vector>
#include <functional>
+#include "libjin/jin.h"
+
namespace JinEngine
{
namespace Lua
@@ -15,68 +17,70 @@ namespace JinEngine
///
/// ̰߳ȫĹģ塣
///
- class SharedBase
+ class Shared
{
public:
- bool isType(const char* t);
-
- const char* getType();
-
- protected:
- friend class LuaObject;
-
- SharedBase(void* obj, const char* t);
-
- SharedBase(const SharedBase&);
-
- ///
- /// ͬһ̵߳lua_StateУLuaObjectEngineObjectӦһһӦLuaObject(lua runtime)ü
- /// ͻաEngine-sideüΪά̵ͬ߳lua_StateͬһEngineObjectÿLuaObjectһ
- /// Sharedʱһüͬһ߳УһEngineObjectֻһLuaObject󶨣new
- /// instanceУômCountͱEngineObjectĹ߳
- ///
- void retain();
-
- void release();
-
- virtual ~SharedBase();
+ Shared(Object* obj, const char* type)
+ : mCount(0)
+ , mObject(obj)
+ , mType(type)
+ {
+ }
- void* mObject;
- int mCount;
- const char* mType;
+ Object* operator->()
+ {
+ return static_cast<Object*>(mObject);
+ }
- };
+ Object* getObject()
+ {
+ return static_cast<Object*>(mObject);
+ }
- template<class T>
- class Shared : public SharedBase
- {
- public:
- Shared(T* obj, const char* type)
- : SharedBase(obj, type)
+ inline const char* getType()
{
+ return mType;
}
- T* operator->()
+ inline bool isType(const char* t)
{
- return static_cast<T*>(mObject);
+ return strcmp(mType, t) == 0;
}
+ template<class T>
T* getObject()
{
return static_cast<T*>(mObject);
}
private:
- Shared(const Shared<T>& shared);
+ friend class LuaObject;
+
+ Shared(const Shared& shared);
+ ///
+ /// Sharedֻڶ
+ ///
~Shared()
{
- T* obj = static_cast<T*>(mObject);
+ Object* obj = static_cast<Object*>(mObject);
delete obj;
}
- };
+ ///
+ /// ͬһ̵߳lua_StateУLuaObjectEngineObjectӦһһӦLuaObject(lua runtime)ü
+ /// ͻաEngine-sideüΪά̵ͬ߳lua_StateͬһEngineObjectÿLuaObjectһ
+ /// Sharedʱһüͬһ߳УһEngineObjectֻһLuaObject󶨣new
+ /// instanceУômCountͱEngineObjectĹ߳
+ ///
+ void retain();
+ void release();
+ Object* mObject;
+ int mCount;
+ const char* mType;
+ };
+
} // namespace Lua
} // namespace JinEngine
diff --git a/src/lua/modules/audio/je_lua_audio.cpp b/src/lua/modules/audio/je_lua_audio.cpp
index 6257c93..22f0dba 100644
--- a/src/lua/modules/audio/je_lua_audio.cpp
+++ b/src/lua/modules/audio/je_lua_audio.cpp
@@ -98,7 +98,7 @@ namespace JinEngine
luax_pushnil(L);
return 1;
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Source, new Shared<Source>(src, Jin_Lua_Source));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Source, new Shared(src, Jin_Lua_Source));
return 1;
}
diff --git a/src/lua/modules/audio/je_lua_source.cpp b/src/lua/modules/audio/je_lua_source.cpp
index f115721..7bb28d9 100644
--- a/src/lua/modules/audio/je_lua_source.cpp
+++ b/src/lua/modules/audio/je_lua_source.cpp
@@ -10,79 +10,78 @@ namespace JinEngine
{
const char* Jin_Lua_Source = "Source";
-
- typedef Shared<Source>& SharedSource;
-
- LUA_IMPLEMENT inline SharedSource checkSource(lua_State* L)
+
+ LUA_IMPLEMENT inline Source* checkSource(lua_State* L)
{
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Source);
- return luaObj->getShared<Source>();
+ LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Source);
+ Source* source = luaObj->getObject<Source>();
+ return source;
}
LUA_IMPLEMENT int l_play(lua_State* L)
{
- SharedSource shared = checkSource(L);
- shared->play();
+ Source* source = checkSource(L);
+ source->play();
return 0;
}
LUA_IMPLEMENT int l_stop(lua_State* L)
{
- SharedSource shared = checkSource(L);
- shared->stop();
+ Source* source = checkSource(L);
+ source->stop();
return 0;
}
LUA_IMPLEMENT int l_pause(lua_State* L)
{
- SharedSource shared = checkSource(L);
- shared->pause();
+ Source* source = checkSource(L);
+ source->pause();
return 0;
}
LUA_IMPLEMENT int l_rewind(lua_State* L)
{
- SharedSource shared = checkSource(L);
- shared->rewind();
+ Source* source = checkSource(L);
+ source->rewind();
return 0;
}
LUA_IMPLEMENT int l_resume(lua_State* L)
{
- SharedSource shared = checkSource(L);
- shared->resume();
+ Source* source = checkSource(L);
+ source->resume();
return 0;
}
LUA_IMPLEMENT int l_isStop(lua_State* L)
{
- SharedSource shared = checkSource(L);
- bool isStop = shared->isStopped();
+ Source* source = checkSource(L);
+ bool isStop = source->isStopped();
luax_pushboolean(L, isStop);
return 1;
}
LUA_IMPLEMENT int l_isPaused(lua_State* L)
{
- SharedSource shared = checkSource(L);
- bool isPaused = shared->isPaused();
+ Source* source = checkSource(L);
+ bool isPaused = source->isPaused();
luax_pushboolean(L, isPaused);
return 1;
}
LUA_IMPLEMENT int l_setVolume(lua_State* L)
{
- SharedSource shared = checkSource(L);
+ Source* source = checkSource(L);
float volume = luax_checknumber(L, 2);
- shared->setVolume(volume);
+ source->setVolume(volume);
return 0;
}
LUA_IMPLEMENT int l_setLoop(lua_State* L)
{
- SharedSource shared = checkSource(L);
+ Source* source = checkSource(L);
bool loop = luax_checkbool(L, 2);
- shared->setLoop(loop);
+ source->setLoop(loop);
return 0;
}
@@ -108,7 +107,6 @@ namespace JinEngine
{ "setLoop", l_setLoop },
{ 0, 0 }
};
-
luax_newtype(L, Jin_Lua_Source, methods);
}
diff --git a/src/lua/modules/graphics/je_lua_animation.cpp b/src/lua/modules/graphics/je_lua_animation.cpp
index bdba10d..2bb635a 100644
--- a/src/lua/modules/graphics/je_lua_animation.cpp
+++ b/src/lua/modules/graphics/je_lua_animation.cpp
@@ -20,12 +20,10 @@ namespace JinEngine
{
const char* Jin_Lua_Animation = "Animation";
- typedef Shared<Animation>& SharedAnimation;
-
- LUA_IMPLEMENT inline SharedAnimation checkAnimation(lua_State* L)
+ LUA_IMPLEMENT inline Animation* checkAnimation(lua_State* L)
{
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- return luaObj->getShared<Animation>();
+ LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Animation);
+ return luaObj->getObject<Animation>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -39,12 +37,12 @@ namespace JinEngine
LUA_IMPLEMENT int l_addFrame(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- SharedAnimation shrAnimation = luaObj->getShared<Animation>();
+ Animation* animation = luaObj->getObject<Animation>();
LuaObject* luaSprite = (LuaObject*)luax_checktype(L, 2, Jin_Lua_Sprite);
- Shared<Sprite>& shrSprite = luaSprite->getShared<Sprite>();
- shrAnimation->addFrame(shrSprite.getObject());
- int i = shrAnimation->getFrameCount() - 1;
- luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + i, &shrSprite);
+ Sprite* sprite = luaSprite->getObject<Sprite>();
+ animation->addFrame(sprite);
+ int i = animation->getFrameCount() - 1;
+ luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + i, luaSprite->getShared());
return 0;
}
@@ -52,7 +50,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addFrames(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- SharedAnimation shrAnimation = luaObj->getShared<Animation>();
+ Animation* shrAnimation = luaObj->getObject<Animation>();
if (!luax_istable(L, 2))
{
luax_typerror(L, 2, "sprites table");
@@ -63,17 +61,17 @@ namespace JinEngine
{
luax_rawgeti(L, 2, i);
LuaObject* luaSprite = (LuaObject*)luax_checktype(L, -1, Jin_Lua_Sprite);
- Shared<Sprite>& shrSprite = luaSprite->getShared<Sprite>();
- shrAnimation->addFrame(shrSprite.getObject());
+ Sprite* sprite = luaSprite->getObject<Sprite>();
+ shrAnimation->addFrame(sprite);
int index = shrAnimation->getFrameCount() - 1;
- luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite);
+ luaObj->setDependency((int)AnimationDependency::DEP_SPRITES + index, luaSprite->getShared());
}
return 0;
}
LUA_IMPLEMENT int l_isLoop(lua_State* L)
{
- SharedAnimation shrAnimation = checkAnimation(L);
+ Animation* shrAnimation = checkAnimation(L);
bool loop = shrAnimation->isLoop();
luax_pushboolean(L, loop);
return 1;
@@ -81,7 +79,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_getSpeed(lua_State* L)
{
- SharedAnimation shrAnimation = checkAnimation(L);
+ Animation* shrAnimation = checkAnimation(L);
float speed = shrAnimation->getSpeed();
luax_pushnumber(L, speed);
return 1;
@@ -90,16 +88,16 @@ namespace JinEngine
LUA_IMPLEMENT int l_getFrame(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- SharedAnimation shrAnimation = luaObj->getShared<Animation>();
+ Animation* shrAnimation = luaObj->getObject<Animation>();
int i = luax_checkinteger(L, 2);
- SharedBase* shrFrame = luaObj->getDependency((int)AnimationDependency::DEP_SPRITES + i);
+ Shared* shrFrame = luaObj->getDependency((int)AnimationDependency::DEP_SPRITES + i);
luax_getobject(L, shrFrame);
return 1;
}
LUA_IMPLEMENT int getFrameCount(lua_State* L)
{
- SharedAnimation shrAnimation = checkAnimation(L);
+ Animation* shrAnimation = checkAnimation(L);
int n = shrAnimation->getFrameCount();
luax_pushinteger(L, n);
return 1;
diff --git a/src/lua/modules/graphics/je_lua_animator.cpp b/src/lua/modules/graphics/je_lua_animator.cpp
index 360a276..b264c17 100644
--- a/src/lua/modules/graphics/je_lua_animator.cpp
+++ b/src/lua/modules/graphics/je_lua_animator.cpp
@@ -20,12 +20,10 @@ namespace JinEngine
{
const char* Jin_Lua_Animator = "Animator";
- typedef Shared<Animator>& SharedAnimator;
-
- LUA_IMPLEMENT inline SharedAnimator checkAnimator(lua_State* L)
+ LUA_IMPLEMENT inline Animator* checkAnimator(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animator);
- return luaObj->getShared<Animator>();
+ return luaObj->getObject<Animator>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -37,7 +35,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_update(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
float dt = luax_checknumber(L, 2);
animator->update(dt);
return 0;
@@ -45,35 +43,35 @@ namespace JinEngine
LUA_IMPLEMENT int l_play(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
animator->play();
return 0;
}
LUA_IMPLEMENT int l_pause(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
animator->pause();
return 0;
}
LUA_IMPLEMENT int l_resume(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
animator->resume();
return 0;
}
LUA_IMPLEMENT int l_rewind(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
animator->rewind();
return 0;
}
LUA_IMPLEMENT int l_render(lua_State* L)
{
- SharedAnimator animator = checkAnimator(L);
+ Animator* animator = checkAnimator(L);
float x = luax_checknumber(L, 2);
float y = luax_checknumber(L, 3);
float sx = luax_checknumber(L, 4);
@@ -86,17 +84,16 @@ namespace JinEngine
LUA_IMPLEMENT int l_setAnimation(lua_State* L)
{
LuaObject* luaAnimator = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animator);
- SharedAnimator shrAnimator = luaAnimator->getShared<Animator>();
+ Animator* animator = luaAnimator->getObject<Animator>();
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- Shared<Animation>& shrAnimation = luaObj->getShared<Animation>();
- luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimation);
- shrAnimator->setAnimation(shrAnimation.getObject());
+ luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, luaObj->getShared());
+ animator->setAnimation(luaObj->getObject<Animation>());
return 0;
}
LUA_IMPLEMENT int l_forceToFrame(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
int index = luax_checkinteger(L, 2);
shrAnimator->forceToFrame(index);
return 0;
@@ -104,7 +101,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setSpeed(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
float fps = luax_checknumber(L, 2);
shrAnimator->setSpeed(fps);
return 0;
@@ -112,14 +109,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_setDefaultSpeed(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
shrAnimator->setDefaultSpeed();
return 0;
}
LUA_IMPLEMENT int l_setLoop(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
bool loop = luax_checkbool(L, 2);
shrAnimator->setLoop(loop);
return 0;
@@ -127,14 +124,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_setDefaultLoop(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
shrAnimator->setDefaultLoop();
return 0;
}
LUA_IMPLEMENT int l_getSpeed(lua_State* L)
{
- SharedAnimator shrAnimator = checkAnimator(L);
+ Animator* shrAnimator = checkAnimator(L);
float speed = shrAnimator->getSpeed();
luax_pushnumber(L, speed);
return 1;
diff --git a/src/lua/modules/graphics/je_lua_bitmap.cpp b/src/lua/modules/graphics/je_lua_bitmap.cpp
index 8d8b76e..cd0bb18 100644
--- a/src/lua/modules/graphics/je_lua_bitmap.cpp
+++ b/src/lua/modules/graphics/je_lua_bitmap.cpp
@@ -13,12 +13,10 @@ namespace JinEngine
const char* Jin_Lua_Bitmap = "Bitmap";
- typedef Shared<Bitmap>& SharedBitmap;
-
- LUA_IMPLEMENT inline SharedBitmap checkBitmap(lua_State* L)
+ LUA_IMPLEMENT inline Bitmap* checkBitmap(lua_State* L)
{
- LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
- return luaObj->getShared<Bitmap>();
+ LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_Bitmap);
+ return luaObj->getObject<Bitmap>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -30,25 +28,25 @@ namespace JinEngine
LUA_IMPLEMENT int l_getWidth(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
- int w = shared->getWidth();
+ Bitmap* bitmap = checkBitmap(L);
+ int w = bitmap->getWidth();
luax_pushinteger(L, w);
return 1;
}
LUA_IMPLEMENT int l_getHeight(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
- int h = shared->getHeight();
+ Bitmap* bitmap = checkBitmap(L);
+ int h = bitmap->getHeight();
luax_pushinteger(L, h);
return 1;
}
LUA_IMPLEMENT int l_getSize(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
- int w = shared->getWidth();
- int h = shared->getHeight();
+ Bitmap* bitmap = checkBitmap(L);
+ int w = bitmap->getWidth();
+ int h = bitmap->getHeight();
luax_pushinteger(L, w);
luax_pushinteger(L, h);
return 2;
@@ -56,10 +54,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_getPixel(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
+ Bitmap* bitmap = checkBitmap(L);
int x = luax_checkinteger(L, 2);
int y = luax_checkinteger(L, 3);
- Color col = shared->getPixel(x, y);
+ Color col = bitmap->getPixel(x, y);
luax_pushinteger(L, col.r);
luax_pushinteger(L, col.g);
luax_pushinteger(L, col.b);
@@ -69,7 +67,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setPixel(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
+ Bitmap* bitmap = checkBitmap(L);
int x = luax_checkinteger(L, 2);
int y = luax_checkinteger(L, 3);
if (!luax_istable(L, 4))
@@ -81,16 +79,15 @@ namespace JinEngine
unsigned int g = luax_rawgetnumber(L, 4, 2);
unsigned int b = luax_rawgetnumber(L, 4, 3);
unsigned int a = luax_rawgetnumber(L, 4, 4);
- shared->setPixel(Color(r, g, b, a), x, y);
+ bitmap->setPixel(Color(r, g, b, a), x, y);
return 0;
}
LUA_IMPLEMENT int l_clone(lua_State* L)
{
- SharedBitmap shared = checkBitmap(L);
- Bitmap* bitmap = shared.getObject();
+ Bitmap* bitmap = checkBitmap(L);
Bitmap* b = bitmap->clone();
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared<Bitmap>(b, Jin_Lua_Bitmap));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(b, Jin_Lua_Bitmap));
return 1;
}
diff --git a/src/lua/modules/graphics/je_lua_canvas.cpp b/src/lua/modules/graphics/je_lua_canvas.cpp
index 261f940..0e884f8 100644
--- a/src/lua/modules/graphics/je_lua_canvas.cpp
+++ b/src/lua/modules/graphics/je_lua_canvas.cpp
@@ -12,33 +12,31 @@ namespace JinEngine
const char* Jin_Lua_Canvas = "Canvas";
- typedef Shared<Canvas>& SharedCanvas;
-
- LUA_IMPLEMENT inline SharedCanvas checkCanvas(lua_State* L)
+ LUA_IMPLEMENT inline Canvas* checkCanvas(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- return luaObj->getShared<Canvas>();
+ return luaObj->getObject<Canvas>();
}
LUA_IMPLEMENT int l_getWidth(lua_State* L)
{
- SharedCanvas shared = checkCanvas(L);
- luax_pushnumber(L, shared->getWidth());
+ Canvas* canvas = checkCanvas(L);
+ luax_pushnumber(L, canvas->getWidth());
return 1;
}
LUA_IMPLEMENT int l_getHeight(lua_State* L)
{
- SharedCanvas shared = checkCanvas(L);
- luax_pushnumber(L, shared->getHeight());
+ Canvas* canvas = checkCanvas(L);
+ luax_pushnumber(L, canvas->getHeight());
return 1;
}
LUA_IMPLEMENT int l_getSize(lua_State* L)
{
- SharedCanvas shared = checkCanvas(L);
- luax_pushnumber(L, shared->getWidth());
- luax_pushnumber(L, shared->getHeight());
+ Canvas* canvas = checkCanvas(L);
+ luax_pushnumber(L, canvas->getWidth());
+ luax_pushnumber(L, canvas->getHeight());
return 2;
}
diff --git a/src/lua/modules/graphics/je_lua_graphics.cpp b/src/lua/modules/graphics/je_lua_graphics.cpp
index 40bb4fa..accd209 100644
--- a/src/lua/modules/graphics/je_lua_graphics.cpp
+++ b/src/lua/modules/graphics/je_lua_graphics.cpp
@@ -208,7 +208,7 @@ namespace JinEngine
return 1;
}
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared<Bitmap>(bitmap, Jin_Lua_Bitmap));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Bitmap, new Shared(bitmap, Jin_Lua_Bitmap));
return 1;
}
@@ -218,9 +218,8 @@ namespace JinEngine
Texture* texture = nullptr;
if (luax_istype(L, 1, Jin_Lua_Bitmap))
{
- LuaObject* p = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
- Shared<Bitmap>& refBitmap = p->getShared<Bitmap>();
- Bitmap* bitmap = refBitmap.getObject();
+ LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Bitmap);
+ Bitmap* bitmap = luaObj->getObject<Bitmap>();
texture = new Texture(bitmap);
}
else if (luax_isstring(L, 1))
@@ -228,7 +227,7 @@ namespace JinEngine
const char* path = luax_checkstring(L, 1);
texture = new Texture(path);
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Texture, new Shared<Texture>(texture, Jin_Lua_Texture));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Texture, new Shared(texture, Jin_Lua_Texture));
return 1;
}
@@ -242,7 +241,7 @@ namespace JinEngine
luax_pushnil(L);
return 1;
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared<Shader>(jsl, Jin_Lua_Shader));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader));
return 1;
}
@@ -265,7 +264,7 @@ namespace JinEngine
luax_pushnil(L);
return 1;
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared<Shader>(jsl, Jin_Lua_Shader));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Shader, new Shared(jsl, Jin_Lua_Shader));
return 1;
}
@@ -274,7 +273,7 @@ namespace JinEngine
int w = luax_checknumber(L, 1);
int h = luax_checknumber(L, 2);
Canvas* cvs = new Canvas(w, h);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Canvas, new Shared<Canvas>(cvs, Jin_Lua_Canvas));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Canvas, new Shared(cvs, Jin_Lua_Canvas));
return 1;
}
@@ -322,7 +321,7 @@ namespace JinEngine
float ox = luax_optnumber(L, 7, 0);
float oy = luax_optnumber(L, 8, 0);
LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Shared<Texture>& tex = luaObj->getShared<Texture>();
+ Texture* tex = luaObj->getObject<Texture>();
tex->render(x, y, sx, sy, r, ox, oy);
}
@@ -338,8 +337,8 @@ namespace JinEngine
float ox = luax_optnumber(L, 7, 0);
float oy = luax_optnumber(L, 8, 0);
LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Shared<Canvas>& p = luaObj->getShared<Canvas>();
- p->render(x, y, sx, sy, r, ox, oy);
+ Canvas* canvas = luaObj->getObject<Canvas>();
+ canvas->render(x, y, sx, sy, r, ox, oy);
}
/* jin.graphics.draw(text, font, x, y) */
@@ -444,14 +443,14 @@ namespace JinEngine
if (luax_istype(L, 1, Jin_Lua_Texture))
{
LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Shared<Texture>& tex = luaObj->getShared<Texture>();
+ Texture* tex = luaObj->getObject<Texture>();
tex->render(q, x, y, sx, sy, r, ox, oy);
}
else if (luax_istype(L, 1, Jin_Lua_Canvas))
{
LuaObject* luaObj = (LuaObject*)luax_toudata(L, 1);
- Shared<Canvas>& p = luaObj->getShared<Canvas>();
- p->render(q, x, y, sx, sy, r, ox, oy);
+ Canvas* canvas = luaObj->getObject<Canvas>();
+ canvas->render(q, x, y, sx, sy, r, ox, oy);
}
else
{
@@ -514,8 +513,8 @@ namespace JinEngine
return 0;
}
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Canvas);
- Shared<Canvas>& shared = luaObj->getShared<Canvas>();
- gl.bindCanvas(shared.getObject());
+ Canvas* canvas = luaObj->getObject<Canvas>();
+ gl.bindCanvas(canvas);
return 0;
}
@@ -535,8 +534,8 @@ namespace JinEngine
if (luax_istype(L, 1, Jin_Lua_Shader))
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader);
- Shared<Shader>& shader = luaObj->getShared<Shader>();
- gl.useShader(shader.getObject());
+ Shader* shader = luaObj->getObject<Shader>();
+ gl.useShader(shader);
}
else
{
@@ -685,7 +684,7 @@ namespace JinEngine
fs->read(path, b);
fd = new TTFData(&b, b.size());
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TTFData, new Shared<TTFData>(fd, Jin_Lua_TTFData));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TTFData, new Shared(fd, Jin_Lua_TTFData));
return 1;
}
@@ -708,7 +707,7 @@ namespace JinEngine
unsigned length;
const char* data = luax_checklstring(L, 1, &length);
Text* text = new Text(encode, data, length);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Text, new Shared<Text>(text, Jin_Lua_Text));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Text, new Shared(text, Jin_Lua_Text));
return 1;
}
@@ -736,7 +735,7 @@ namespace JinEngine
quad.h = luax_rawgetnumberthenpop(L, 2, 4);
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));
+ LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, origin), Jin_Lua_Sprite));
p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getShared());
}
else if (n == 4)
@@ -748,21 +747,21 @@ namespace JinEngine
quad.h = luax_rawgetnumberthenpop(L, 2, 4);
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));
+ LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, quad, ox, oy), Jin_Lua_Sprite));
p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getShared());
}
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));
+ LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, origin), Jin_Lua_Sprite));
p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getShared());
}
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));
+ LuaObject* p = luax_newinstance(L, Jin_Lua_Sprite, new Shared(new Sprite(graphic, ox, oy), Jin_Lua_Sprite));
p->setDependency((int)SpriteDependency::DEP_GRAPHIC, objGraphic->getShared());
}
else
@@ -785,10 +784,10 @@ namespace JinEngine
if (objGraphic != nullptr)
{
Graphic* graphic = objGraphic->getObject<Graphic>();
- Shared<SpriteSheet>* shrSSheet = new Shared<SpriteSheet>(new SpriteSheet(graphic), Jin_Lua_SpriteSheet);
- Shared<Graphic>& shrGraphic = objGraphic->getShared<Graphic>();
+ Shared* shrSSheet = new Shared(new SpriteSheet(graphic), Jin_Lua_SpriteSheet);
+ Shared* shrGraphic = objGraphic->getShared();
LuaObject* luaSSheet = luax_newinstance(L, Jin_Lua_SpriteSheet, shrSSheet);
- luaSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, &shrGraphic);
+ luaSSheet->setDependency((int)SpriteSheetDependency::DEP_GRAPHIC, shrGraphic);
return 1;
}
else
@@ -799,7 +798,8 @@ namespace JinEngine
LUA_IMPLEMENT int l_newAnimation(lua_State* L)
{
int argc = luax_gettop(L);
- Shared<Animation>* shrAnimation = new Shared<Animation>(new Animation(), Jin_Lua_Animation);
+ Animation* animation = new Animation();
+ Shared* shrAnimation = new Shared(animation, Jin_Lua_Animation);
LuaObject* luaAnimation = luax_newinstance(L, Jin_Lua_Animation, shrAnimation);
if (argc >= 3)
{
@@ -815,13 +815,12 @@ namespace JinEngine
{
luax_rawgeti(L, 1, i);
LuaObject* luaSprite = (LuaObject*)luax_checktype(L, -1, Jin_Lua_Sprite);
- Shared<Sprite>& shrSprite = luaSprite->getShared<Sprite>();
- (*shrAnimation)->addFrame(shrSprite.getObject());
- int index = (*shrAnimation)->getFrameCount() - 1;
- luaAnimation->setDependency((int)AnimationDependency::DEP_SPRITES + index, &shrSprite);
+ animation->addFrame(luaSprite->getObject<Sprite>());
+ int index = animation->getFrameCount() - 1;
+ luaAnimation->setDependency((int)AnimationDependency::DEP_SPRITES + index, luaSprite->getShared());
}
- (*shrAnimation)->setLoop(loop);
- (*shrAnimation)->setSpeed(speed);
+ animation->setLoop(loop);
+ animation->setSpeed(speed);
}
luax_pushvalue(L, argc + 1);
return 1;
@@ -831,14 +830,15 @@ namespace JinEngine
LUA_IMPLEMENT int l_newAnimator(lua_State* L)
{
int argc = luax_gettop(L);
- Shared<Animator>* shrAniamtor = new Shared<Animator>(new Animator(), Jin_Lua_Animator);
+ Animator* animator = new Animator();
+ Shared* shrAniamtor = new Shared(animator, Jin_Lua_Animator);
if (argc >= 1)
{
LuaObject* luaAnimation = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Animation);
- Shared<Animation>& shrAnimtion = luaAnimation->getShared<Animation>();
- (*shrAniamtor)->setAnimation(shrAnimtion.getObject());
+ Shared* shrAnimtion = luaAnimation->getShared();
+ animator->setAnimation(shrAnimtion->getObject<Animation>());
LuaObject* luaAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor);
- luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, &shrAnimtion);
+ luaAnimator->setDependency((int)AnimatorDependency::DEP_ANIMATION, shrAnimtion);
return 1;
}
LuaObject* luaAnimator = luax_newinstance(L, Jin_Lua_Animator, shrAniamtor);
@@ -892,13 +892,13 @@ namespace JinEngine
// Delete temporary text.
delete text;
}
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TextureFont, new Shared<TextureFont>(textureFont, Jin_Lua_TextureFont));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_TextureFont, new Shared(textureFont, Jin_Lua_TextureFont));
return 1;
}
LUA_IMPLEMENT int l_newParticleSystem(lua_State* L)
{
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_ParticleSystem, new Shared<ParticleSystem>(new ParticleSystem(), Jin_Lua_ParticleSystem));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_ParticleSystem, new Shared(new ParticleSystem(), Jin_Lua_ParticleSystem));
return 1;
}
diff --git a/src/lua/modules/graphics/je_lua_page.cpp b/src/lua/modules/graphics/je_lua_page.cpp
index 6234f3f..6d84c4f 100644
--- a/src/lua/modules/graphics/je_lua_page.cpp
+++ b/src/lua/modules/graphics/je_lua_page.cpp
@@ -15,8 +15,6 @@ namespace JinEngine
const char* Jin_Lua_Page = "Page";
- typedef Shared<Font>& SharedFont;
-
Page* getPage(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Page);
diff --git a/src/lua/modules/graphics/je_lua_particle_system.cpp b/src/lua/modules/graphics/je_lua_particle_system.cpp
index 05be4b7..0b348ad 100644
--- a/src/lua/modules/graphics/je_lua_particle_system.cpp
+++ b/src/lua/modules/graphics/je_lua_particle_system.cpp
@@ -19,12 +19,10 @@ namespace JinEngine
const char* Jin_Lua_ParticleSystem = "ParticleSystem";
- typedef Shared<ParticleSystem>& SharedParticleSystem;
-
- LUA_IMPLEMENT inline SharedParticleSystem checkPS(lua_State* L)
+ LUA_IMPLEMENT inline ParticleSystem* checkPS(lua_State* L)
{
LuaObject* luaObj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- return luaObj->getShared<ParticleSystem>();
+ return luaObj->getObject<ParticleSystem>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -36,7 +34,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_update(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float dt = luax_checknumber(L, 2);
ps->update(dt);
return 0;
@@ -44,14 +42,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_render(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
ps->render();
return 0;
}
LUA_IMPLEMENT int l_setPosition(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float x = luax_checknumber(L, 2);
float y = luax_checknumber(L, 3);
ps->setPosition(x, y);
@@ -60,7 +58,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setScale(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float sx = luax_checknumber(L, 2);
float sy = luax_checknumber(L, 3);
//ps->setScale(sx, sy);
@@ -69,7 +67,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_pause(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
bool b = luax_checkbool(L, 2);
//ps->pause(b);
return 0;
@@ -77,14 +75,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_clear(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
//ps->clear();
return 0;
}
LUA_IMPLEMENT int l_setEmitRate(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
float floor = luax_checknumber(L, 2);
@@ -101,7 +99,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setEmitForce(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
float floor = luax_checknumber(L, 2);
@@ -118,7 +116,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setEmitDirection(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
float floor = luax_checknumber(L, 2);
@@ -135,7 +133,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setEmitPosition(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
if (!luax_istable(L, 2))
@@ -172,7 +170,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleLife(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
float floor = luax_checknumber(L, 2);
@@ -189,7 +187,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleLinearAccelaration(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (!luax_istable(L, 2))
{
luax_typerror(L, 2, "table");
@@ -204,7 +202,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleRadialAccelaration(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float ra = luax_checknumber(L, 2);
ps->setParticleRadialAccelaration(ra);
return 0;
@@ -212,7 +210,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleAngularSpeed(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (luax_gettop(L) >= 3)
{
float floor = luax_checknumber(L, 2);
@@ -229,7 +227,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleSpritesMode(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
int n = luax_checkinteger(L, 2);
SpriteMode mode = static_cast<SpriteMode>(n);
ps->setParticleSpritesMode(mode);
@@ -239,7 +237,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addParticleSprite(lua_State* L)
{
LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- SharedParticleSystem ps = obj->getShared<ParticleSystem>();
+ ParticleSystem* ps = obj->getObject<ParticleSystem>();
LuaObject* objSpr = luax_checkobject(L, 2, Jin_Lua_Sprite);
Sprite* spr = objSpr->getObject<Sprite>();
ps->addParticleSprite(spr);
@@ -251,7 +249,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addParticleSprites(lua_State* L)
{
LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- SharedParticleSystem ps = obj->getShared<ParticleSystem>();
+ ParticleSystem* ps = obj->getObject<ParticleSystem>();
if (!luax_istable(L, 2))
{
luax_typerror(L, 2, "sprites table");
@@ -275,7 +273,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_removeParticleSprite(lua_State* L)
{
LuaObject* obj = luax_checkobject(L, 1, Jin_Lua_ParticleSystem);
- SharedParticleSystem ps = obj->getShared<ParticleSystem>();
+ ParticleSystem* ps = obj->getObject<ParticleSystem>();
int n = luax_checkinteger(L, 2);
ps->removeParticleSprite(n);
(*obj).removeDependency((int)ParticleSystemDependency::DEP_SPRITES + n);
@@ -284,7 +282,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_enableParticleBlendAdditive(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
bool enable = luax_checkbool(L, 2);
ps->enableParticleBlendAdditive(enable);
return 0;
@@ -292,7 +290,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleScale(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float scale = luax_checknumber(L, 2);
ps->setParticleScale(scale);
return 0;
@@ -300,7 +298,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addParticleScalePoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float scale = luax_checknumber(L, 2);
float t = luax_checknumber(L, 3);
ps->addParticleScalePoint(scale, t);
@@ -309,7 +307,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_removeParticleScalePoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
int i = luax_checkinteger(L, 2);
ps->removeParticleScalePoint(i);
return 0;
@@ -317,7 +315,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleColor(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (!luax_istable(L, 2))
{
luax_typerror(L, 2, "color table");
@@ -334,7 +332,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addParticleColorPoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
if (!luax_istable(L, 2))
{
luax_typerror(L, 2, "color table");
@@ -352,7 +350,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_removeParticleColorPoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
int i = luax_checkinteger(L, 2);
ps->removeParticleColorPoint(i);
return 0;
@@ -360,7 +358,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_setParticleTransparency(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float transparency = luax_checknumber(L, 2);
ps->setParticleTransparency(transparency);
return 0;
@@ -368,7 +366,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_addParticleTransparencyPoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
float transparency = luax_checknumber(L, 2);
float t = luax_checknumber(L, 3);
ps->addParticleTransparencyPoint(transparency, t);
@@ -377,7 +375,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_removeParticleTransparencyPoint(lua_State* L)
{
- SharedParticleSystem ps = checkPS(L);
+ ParticleSystem* ps = checkPS(L);
int i = luax_checkinteger(L, 2);
ps->removeParticleTransparencyPoint(i);
return 0;
diff --git a/src/lua/modules/graphics/je_lua_shader.cpp b/src/lua/modules/graphics/je_lua_shader.cpp
index f4a4231..9505444 100644
--- a/src/lua/modules/graphics/je_lua_shader.cpp
+++ b/src/lua/modules/graphics/je_lua_shader.cpp
@@ -16,12 +16,10 @@ namespace JinEngine
const char* Jin_Lua_Shader = "Shader";
- typedef Shared<Shader>& ShaderRef;
-
- static inline ShaderRef checkShader(lua_State* L)
+ static inline Shader* checkShader(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Shader);
- return luaObj->getShared<Shader>();
+ return luaObj->getObject<Shader>();
}
/**
@@ -29,36 +27,34 @@ namespace JinEngine
*/
LUA_IMPLEMENT int l_sendNumber(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
float number = luax_checknumber(L, 3);
- shared->sendFloat(variable, number);
+ shader->sendFloat(variable, number);
return 0;
}
LUA_IMPLEMENT int l_sendTexture(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 3, Jin_Lua_Texture);
- Shared<Texture>& tex = luaObj->getShared<Texture>();
- shared->sendTexture(variable, tex.getObject());
+ shader->sendTexture(variable, luaObj->getObject<Texture>());
return 0;
}
LUA_IMPLEMENT int l_sendCanvas(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 3, Jin_Lua_Canvas);
- Shared<Canvas>& canvas = luaObj->getShared<Canvas>();
- shared->sendCanvas(variable, canvas.getObject());
+ shader->sendCanvas(variable, luaObj->getObject<Canvas>());
return 0;
}
LUA_IMPLEMENT int l_sendVec2(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
if (!luax_istable(L, 3))
{
@@ -67,13 +63,13 @@ namespace JinEngine
}
float x = luax_rawgetnumber(L, 3, 1);
float y = luax_rawgetnumber(L, 3, 2);
- shared->sendVec2(variable, x, y);
+ shader->sendVec2(variable, x, y);
return 0;
}
LUA_IMPLEMENT int l_sendVec3(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
if (!luax_istable(L, 3))
{
@@ -83,13 +79,13 @@ namespace JinEngine
float x = luax_rawgetnumber(L, 3, 1);
float y = luax_rawgetnumber(L, 3, 2);
float z = luax_rawgetnumber(L, 3, 3);
- shared->sendVec3(variable, x, y, z);
+ shader->sendVec3(variable, x, y, z);
return 0;
}
LUA_IMPLEMENT int l_sendVec4(lua_State* L)
{
- ShaderRef shared = checkShader(L);
+ Shader* shader = checkShader(L);
const char* variable = luax_checkstring(L, 2);
if (!luax_istable(L, 3))
{
@@ -100,7 +96,7 @@ namespace JinEngine
float y = luax_rawgetnumber(L, 3, 2);
float z = luax_rawgetnumber(L, 3, 3);
float w = luax_rawgetnumber(L, 3, 4);
- shared->sendVec4(variable, x, y, z, w);
+ shader->sendVec4(variable, x, y, z, w);
return 0;
}
diff --git a/src/lua/modules/graphics/je_lua_sprite.cpp b/src/lua/modules/graphics/je_lua_sprite.cpp
index f9f8b5d..f1bc6aa 100644
--- a/src/lua/modules/graphics/je_lua_sprite.cpp
+++ b/src/lua/modules/graphics/je_lua_sprite.cpp
@@ -17,12 +17,10 @@ namespace JinEngine
{
const char* Jin_Lua_Sprite = "Sprite";
- typedef Shared<Sprite>& SharedSprite;
-
- LUA_IMPLEMENT inline SharedSprite checkSprite(lua_State* L)
+ LUA_IMPLEMENT inline Sprite* checkSprite(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Sprite);
- return luaObj->getShared<Sprite>();
+ return luaObj->getObject<Sprite>();
}
LUA_IMPLEMENT int l_gc(lua_State* L)
@@ -34,7 +32,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_render(lua_State* L)
{
- SharedSprite sprite = checkSprite(L);
+ Sprite* sprite = checkSprite(L);
float x = luax_checknumber(L, 2);
float y = luax_checknumber(L, 3);
float sx = luax_checknumber(L, 4);
@@ -46,7 +44,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_getSize(lua_State* L)
{
- SharedSprite sprite = checkSprite(L);
+ Sprite* sprite = checkSprite(L);
Vector2<int> size = sprite->getSize();
luax_pushinteger(L, size.x);
luax_pushinteger(L, size.y);
diff --git a/src/lua/modules/graphics/je_lua_spritesheet.cpp b/src/lua/modules/graphics/je_lua_spritesheet.cpp
index 23b655e..0cfdb93 100644
--- a/src/lua/modules/graphics/je_lua_spritesheet.cpp
+++ b/src/lua/modules/graphics/je_lua_spritesheet.cpp
@@ -27,7 +27,6 @@ namespace JinEngine
LUA_IMPLEMENT int l_newSprite(lua_State* L)
{
LuaObject* luaSSheet = (LuaObject*)luax_checktype(L, 1, Jin_Lua_SpriteSheet);
- Shared<SpriteSheet>& shrSSheet = luaSSheet->getShared<SpriteSheet>();
SpriteSheet* sheet = luaSSheet->getObject<SpriteSheet>();
Quad quad;
quad.x = luax_rawgetnumberthenpop(L, 2, 1);
@@ -48,9 +47,9 @@ namespace JinEngine
origin = static_cast<Origin>(o);
spr = sheet->createSprite(quad, origin);
}
- Shared<Sprite>* shrSprite = new Shared<Sprite>(spr, Jin_Lua_Sprite);
+ Shared* shrSprite = new Shared(spr, Jin_Lua_Sprite);
LuaObject* luaSprite = luax_newinstance(L, Jin_Lua_Sprite, shrSprite);
- luaSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, &shrSSheet);
+ luaSprite->setDependency((int)SpriteDependency::DEP_SPRITESHEET, luaSSheet->getShared());
return 1;
}
@@ -58,7 +57,6 @@ namespace JinEngine
LUA_IMPLEMENT int l_newSprites(lua_State* L)
{
LuaObject* luaSS = (LuaObject*)luax_checktype(L, 1, Jin_Lua_SpriteSheet);
- Shared<SpriteSheet>& shrSS = luaSS->getShared<SpriteSheet>();
SpriteSheet* ss = luaSS->getObject<SpriteSheet>();
int count = luax_checkinteger(L, 2);
int r = luax_checkinteger(L, 3);
@@ -93,11 +91,11 @@ namespace JinEngine
return 1;
}
luax_newtable(L);
- SharedBase* shrGraphic = luaSS->getDependency((int)SpriteSheetDependency::DEP_GRAPHIC);
+ Shared* shrGraphic = luaSS->getDependency((int)SpriteSheetDependency::DEP_GRAPHIC);
for (int i = 0; i < sprs.size(); ++i)
{
Sprite* spr = sprs[i];
- Shared<Sprite>* shrSpr = new Shared<Sprite>(spr, Jin_Lua_Sprite);
+ Shared* shrSpr = new Shared(spr, Jin_Lua_Sprite);
LuaObject* luaSpr = (LuaObject*)luax_newinstance(L, Jin_Lua_Sprite, shrSpr);
luaSpr->setDependency((int)SpriteDependency::DEP_GRAPHIC, shrGraphic);
luax_rawseti(L, -2, i + 1);
diff --git a/src/lua/modules/graphics/je_lua_texture.cpp b/src/lua/modules/graphics/je_lua_texture.cpp
index 9d2d567..7bac237 100644
--- a/src/lua/modules/graphics/je_lua_texture.cpp
+++ b/src/lua/modules/graphics/je_lua_texture.cpp
@@ -12,31 +12,29 @@ namespace JinEngine
const char* Jin_Lua_Texture = "Texture";
- typedef Shared<Texture>& SharedTexture;
-
- LUA_IMPLEMENT inline SharedTexture checkTexture(lua_State* L)
+ LUA_IMPLEMENT inline Texture* checkTexture(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Texture);
- return luaObj->getShared<Texture>();
+ return luaObj->getObject<Texture>();
}
LUA_IMPLEMENT int l_getWidth(lua_State* L)
{
- SharedTexture shared = checkTexture(L);
+ Texture* shared = checkTexture(L);
luax_pushnumber(L, shared->getWidth());
return 1;
}
LUA_IMPLEMENT int l_getHeight(lua_State *L)
{
- SharedTexture shared = checkTexture(L);
+ Texture* shared = checkTexture(L);
luax_pushnumber(L, shared->getHeight());
return 1;
}
LUA_IMPLEMENT int l_getSize(lua_State* L)
{
- SharedTexture shared = checkTexture(L);
+ Texture* shared = checkTexture(L);
luax_pushnumber(L, shared->getWidth());
luax_pushnumber(L, shared->getHeight());
return 2;
diff --git a/src/lua/modules/graphics/je_lua_texture_font.cpp b/src/lua/modules/graphics/je_lua_texture_font.cpp
index 8a3eca0..1365aa8 100644
--- a/src/lua/modules/graphics/je_lua_texture_font.cpp
+++ b/src/lua/modules/graphics/je_lua_texture_font.cpp
@@ -26,7 +26,6 @@ namespace JinEngine
LUA_IMPLEMENT int l_typeset(lua_State* L)
{
LuaObject* luaTexFont = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TextureFont);
- Shared<TextureFont>& shrTexFont = luaTexFont->getShared<TextureFont>();
TextureFont* tf = luaTexFont->getObject<TextureFont>();
int lineheight = luax_checkinteger(L, 3);
int spacing = luax_optnumber(L, 4, 0);
@@ -44,9 +43,9 @@ namespace JinEngine
Text* text = p2->getObject<Text>();
page = tf->typeset(*text, lineheight, spacing);
}
- Shared<Page>* shrPage = new Shared<Page>(page, Jin_Lua_Page);
+ Shared* shrPage = new Shared(page, Jin_Lua_Page);
LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, shrPage);
- luaPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, &shrTexFont);
+ luaPage->setDependency((int)PageDependency::DEP_TEXTURE_FONT, luaTexFont->getShared());
return 1;
}
diff --git a/src/lua/modules/graphics/je_lua_ttf.cpp b/src/lua/modules/graphics/je_lua_ttf.cpp
index 317670c..ad1872f 100644
--- a/src/lua/modules/graphics/je_lua_ttf.cpp
+++ b/src/lua/modules/graphics/je_lua_ttf.cpp
@@ -26,7 +26,6 @@ namespace JinEngine
LUA_IMPLEMENT int l_typeset(lua_State* L)
{
LuaObject* luaTTF = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTF);
- Shared<TTF>& shrTTF = luaTTF->getShared<TTF>();
TTF* ttf = luaTTF->getObject<TTF>();
int lineheight = luax_optnumber(L, 3, ttf->getFontSize());
int spacing = luax_optnumber(L, 4, 0);
@@ -44,9 +43,9 @@ namespace JinEngine
Text* text = luaText->getObject<Text>();
page = ttf->typeset(*text, lineheight, spacing);
}
- Shared<Page>* refPage = new Shared<Page>(page, Jin_Lua_Page);
+ Shared* refPage = new Shared(page, Jin_Lua_Page);
LuaObject* luaPage = luax_newinstance(L, Jin_Lua_Page, refPage);
- luaPage->setDependency((int)PageDependency::DEP_TTF, &shrTTF);
+ luaPage->setDependency((int)PageDependency::DEP_TTF, luaTTF->getShared());
return 1;
}
diff --git a/src/lua/modules/graphics/je_lua_ttf_data.cpp b/src/lua/modules/graphics/je_lua_ttf_data.cpp
index 9f4437e..b10b993 100644
--- a/src/lua/modules/graphics/je_lua_ttf_data.cpp
+++ b/src/lua/modules/graphics/je_lua_ttf_data.cpp
@@ -19,12 +19,11 @@ namespace JinEngine
{
LuaObject* luaTTFData = (LuaObject*)luax_checktype(L, 1, Jin_Lua_TTFData);
int fontsize = luax_checkinteger(L, 2);
- Shared<TTFData>& shrFontData = luaTTFData->getShared<TTFData>();
- TTFData* fontData = shrFontData.getObject();
+ TTFData* fontData = luaTTFData->getObject<TTFData>();
TTF* font = fontData->createTTF(fontsize);
- Shared<TTF>* shrTTF = new Shared<TTF>(font, Jin_Lua_TTF);
+ Shared* shrTTF = new Shared(font, Jin_Lua_TTF);
LuaObject* luaTTF = luax_newinstance(L, Jin_Lua_TTF, shrTTF);
- luaTTF->setDependency((int)TTFDependency::DEP_TTFDATA, &shrFontData);
+ luaTTF->setDependency((int)TTFDependency::DEP_TTFDATA, luaTTFData->getShared());
return 1;
}
diff --git a/src/lua/modules/net/je_lua_buffer.cpp b/src/lua/modules/net/je_lua_buffer.cpp
index 327e7ed..dcfdf01 100644
--- a/src/lua/modules/net/je_lua_buffer.cpp
+++ b/src/lua/modules/net/je_lua_buffer.cpp
@@ -3,6 +3,8 @@
#include "libjin/jin.h"
#include "je_lua_buffer.h"
+using namespace JinEngine::Lua::Net;
+
namespace JinEngine
{
namespace Lua
@@ -10,24 +12,22 @@ namespace JinEngine
const char* Jin_Lua_Buffer = "Buffer";
- typedef Shared<Net::Buffer>& SharedBuffer;
-
- static inline SharedBuffer checkNetBuffer(lua_State* L)
+ static inline Net::Buffer* checkNetBuffer(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Buffer);
- return luaObj->getShared<Net::Buffer>();
+ return luaObj->getObject<Net::Buffer>();
}
// net.Buffer:append(value) -> value_length
LUA_IMPLEMENT int l_append(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
const int vp = 2;
if (luax_isintegerstrict(L, vp))
{
int n = luax_checkinteger(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -35,7 +35,7 @@ namespace JinEngine
{
float n = luax_checknumber(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -43,7 +43,7 @@ namespace JinEngine
{
bool n = luax_checkbool(L, vp);
int size = sizeof(n);
- shared->append(&n, size);
+ buffer->append(&n, size);
luax_pushinteger(L, size);
return 1;
}
@@ -51,7 +51,7 @@ namespace JinEngine
{
const char* str = luax_checkstring(L, vp);
int size = strlen(str) + 1;
- shared->append(str, size);
+ buffer->append(str, size);
luax_pushinteger(L, size);
return 1;
}
@@ -65,10 +65,10 @@ namespace JinEngine
// net.Buffer:grabString(offset) -> string, length
LUA_IMPLEMENT int l_grabString(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
unsigned int len;
- char* data = shared->grabString(&len, offset);
+ char* data = buffer->grabString(&len, offset);
Array<char> str;
str.bind(data, len);
luax_pushstring(L, &str);
@@ -79,10 +79,10 @@ namespace JinEngine
// net.Buffer:grabInteger(offset) -> integer, length
LUA_IMPLEMENT int l_grabInteger(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- int integer = shared->grabInteger(&len, offset);
+ int integer = buffer->grabInteger(&len, offset);
luax_pushinteger(L, integer);
luax_pushinteger(L, len);
return 2;
@@ -90,10 +90,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_grabFloat(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- float floatv = shared->grabFloat(&len, offset);
+ float floatv = buffer->grabFloat(&len, offset);
luax_pushnumber(L, floatv);
luax_pushinteger(L, len);
return 2;
@@ -101,10 +101,10 @@ namespace JinEngine
LUA_IMPLEMENT int l_grabBoolean(lua_State* L)
{
- SharedBuffer shared = checkNetBuffer(L);
+ Buffer* buffer = checkNetBuffer(L);
int offset = luax_checkinteger(L, 2);
int len;
- bool boolean = shared->grabBoolean(&len, offset);
+ bool boolean = buffer->grabBoolean(&len, offset);
luax_pushboolean(L, boolean);
luax_pushinteger(L, len);
return 2;
diff --git a/src/lua/modules/net/je_lua_buffer.h b/src/lua/modules/net/je_lua_buffer.h
index 7584f47..974e23a 100644
--- a/src/lua/modules/net/je_lua_buffer.h
+++ b/src/lua/modules/net/je_lua_buffer.h
@@ -17,7 +17,7 @@ namespace JinEngine
namespace Net
{
- class Buffer
+ class Buffer : public Object
{
public:
Buffer(size_t s = 0)
diff --git a/src/lua/modules/net/je_lua_net.cpp b/src/lua/modules/net/je_lua_net.cpp
index 5db4722..d003640 100644
--- a/src/lua/modules/net/je_lua_net.cpp
+++ b/src/lua/modules/net/je_lua_net.cpp
@@ -49,7 +49,7 @@ namespace JinEngine
}
}
Socket* socket = new Socket(info);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared<Socket>(socket, Jin_Lua_Socket));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared(socket, Jin_Lua_Socket));
return 1;
}
@@ -57,7 +57,7 @@ namespace JinEngine
{
int size = luax_checkinteger(L, 1);
Net::Buffer* buffer = new Net::Buffer(size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(buffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(buffer, Jin_Lua_Buffer));
return 1;
}
diff --git a/src/lua/modules/net/je_lua_socket.cpp b/src/lua/modules/net/je_lua_socket.cpp
index 8eb4051..af0cef0 100644
--- a/src/lua/modules/net/je_lua_socket.cpp
+++ b/src/lua/modules/net/je_lua_socket.cpp
@@ -13,61 +13,59 @@ namespace JinEngine
const char* Jin_Lua_Socket = "Socket";
- typedef Shared<Socket>& SharedSocket;
-
const int BUFFER_SIZE = 1024;
- LUA_IMPLEMENT inline SharedSocket checkSocket(lua_State* L, int pos = 1)
+ LUA_IMPLEMENT inline Socket* checkSocket(lua_State* L, int pos = 1)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, pos, Jin_Lua_Socket);
- return luaObj->getShared<Socket>();
+ return luaObj->getObject<Socket>();
}
- LUA_IMPLEMENT inline Shared<Buffer>& checkNetBuffer(lua_State* L, int pos = 1)
+ LUA_IMPLEMENT inline Buffer* checkNetBuffer(lua_State* L, int pos = 1)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, pos, Jin_Lua_Buffer);
- return luaObj->getShared<Buffer>();
+ return luaObj->getObject<Buffer>();
}
// return net.Socket
LUA_IMPLEMENT int l_accept(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
Socket* client = socket->accept();
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared<Socket>(client, Jin_Lua_Socket));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Socket, new Shared(client, Jin_Lua_Socket));
return 1;
}
// return net.Buffer
LUA_IMPLEMENT int l_receive(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
char buffer[BUFFER_SIZE] = {0};
int size = socket->receive(buffer, BUFFER_SIZE);
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(netBuffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(netBuffer, Jin_Lua_Buffer));
return 1;
}
// Socket:receiveFrom(address, port)
LUA_IMPLEMENT int l_receiveFrom(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
int address = luax_checkinteger(L, 2);
int port = luax_checkinteger(L, 3);
char buffer[BUFFER_SIZE];
int size = socket->receiveFrom(buffer, BUFFER_SIZE, address, port);
Net::Buffer* netBuffer = new Net::Buffer(buffer, size);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared<Buffer>(netBuffer, Jin_Lua_Buffer));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Buffer, new Shared(netBuffer, Jin_Lua_Buffer));
return 1;
}
// Socket:send(net.Buffer) -> data_length
LUA_IMPLEMENT int l_send(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
- Shared<Buffer>& shared = checkNetBuffer(L, 2);
- int len = socket->send(shared->buffer, shared->size);
+ Socket* socket = checkSocket(L);
+ Buffer* buffer = checkNetBuffer(L, 2);
+ int len = socket->send(buffer->buffer, buffer->size);
luax_pushinteger(L, len);
return 1;
}
@@ -75,24 +73,24 @@ namespace JinEngine
// Socket:sendTo(address, port, net.Buffer)
LUA_IMPLEMENT int l_sendTo(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
int address = luax_checkinteger(L, 2);
int port = luax_checkinteger(L, 3);
- Shared<Buffer>& buffer = checkNetBuffer(L, 4);
+ Buffer* buffer = checkNetBuffer(L, 4);
socket->sendTo(buffer->buffer, buffer->size, address, port);
return 0;
}
LUA_IMPLEMENT int l_close(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
socket->close();
return 0;
}
LUA_IMPLEMENT int l_configBlocking(lua_State* L)
{
- SharedSocket socket = checkSocket(L);
+ Socket* socket = checkSocket(L);
bool blocking = luax_checkbool(L, 2);
socket->configureBlocking(blocking);
return 0;
diff --git a/src/lua/modules/thread/je_lua_thread.cpp b/src/lua/modules/thread/je_lua_thread.cpp
index 566d0ff..35bf876 100644
--- a/src/lua/modules/thread/je_lua_thread.cpp
+++ b/src/lua/modules/thread/je_lua_thread.cpp
@@ -12,26 +12,25 @@ namespace JinEngine
const char* Jin_Lua_Thread = "Thread";
- typedef Shared<Thread>& SharedThread;
-
int luaopen_thread(lua_State* L);
- static inline SharedThread checkThread(lua_State* L)
+ static inline Thread* checkThread(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Thread);
- return luaObj->getShared<Thread>();
+ return luaObj->getObject<Thread>();
}
LUA_IMPLEMENT int threadRunner(void* t)
{
- SharedThread shared = *(Shared<Thread>*)t;
+ Shared* shared = (Shared*)t;
+ Thread* thread = shared->getObject<Thread>();
lua_State* L = lua_open();
luax_openlibs(L);
open(L);
luax_getglobal(L, MODULE_NAME);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, &shared);
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, shared);
luax_setfield(L, -2, "_curThread");
- luax_dostring(L, shared->code.c_str());
+ luax_dostring(L, thread->code.c_str());
luax_close(L);
return 0;
}
@@ -45,7 +44,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_start(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
bool result = shared->start(&shared);
luax_pushboolean(L, result);
return 1;
@@ -53,14 +52,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_wait(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
shared->wait();
return 0;
}
LUA_IMPLEMENT int l_send(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
int slot = luax_checkinteger(L, 2);
const int vp = 3;
if (luax_isnumberstrict(L, vp))
@@ -93,7 +92,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_receive(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
int slot = luax_checkinteger(L, 2);
bool result = shared->receive(slot);
luax_pushboolean(L, result);
@@ -102,7 +101,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_fetch(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
int slot = luax_checkinteger(L, 2);
Thread::Variant v = shared->fetch(slot);
switch (v.type)
@@ -135,7 +134,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_demand(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
int slot = luax_checkinteger(L, 2);
Thread::Variant v = shared->demand(slot);
switch (v.type)
@@ -168,7 +167,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_remove(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
int slot = luax_checkinteger(L, 2);
shared->remove(slot);
return 0;
@@ -176,7 +175,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_getName(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
const char* name = shared->getName();
luax_pushstring(L, name);
return 1;
@@ -184,7 +183,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_isRunning(lua_State* L)
{
- SharedThread shared = checkThread(L);
+ Thread* shared = checkThread(L);
bool running = shared->isRunning();
luax_pushboolean(L, running);
return 1;
@@ -214,7 +213,7 @@ namespace JinEngine
const char* name = luax_checkstring(L, 1);
const char* code = luax_checkstring(L, 2);
Thread* thread = new Thread(name, code, threadRunner);
- LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, new Shared<Thread>(thread, Jin_Lua_Thread));
+ LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Thread, new Shared(thread, Jin_Lua_Thread));
return 1;
}
diff --git a/src/lua/modules/thread/je_lua_thread.h b/src/lua/modules/thread/je_lua_thread.h
index 396cf5b..9978d35 100644
--- a/src/lua/modules/thread/je_lua_thread.h
+++ b/src/lua/modules/thread/je_lua_thread.h
@@ -8,7 +8,7 @@ namespace JinEngine
extern const char* Jin_Lua_Thread;
- class Thread
+ class Thread : public Object
{
public:
typedef JinEngine::Threads::Thread::Variant Variant;
diff --git a/src/lua/modules/time/je_lua_time.cpp b/src/lua/modules/time/je_lua_time.cpp
index 3da5669..1d8b852 100644
--- a/src/lua/modules/time/je_lua_time.cpp
+++ b/src/lua/modules/time/je_lua_time.cpp
@@ -33,7 +33,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_newTimer(lua_State* L)
{
- Shared<Timer>* shrTimer = new Shared<Timer>(new Timer(), Jin_Lua_Timer);
+ Shared* shrTimer = new Shared(new Timer(), Jin_Lua_Timer);
luax_newinstance(L, Jin_Lua_Timer, shrTimer);
return 1;
}
diff --git a/src/lua/modules/time/je_lua_timer.cpp b/src/lua/modules/time/je_lua_timer.cpp
index 5516be0..f689277 100644
--- a/src/lua/modules/time/je_lua_timer.cpp
+++ b/src/lua/modules/time/je_lua_timer.cpp
@@ -13,8 +13,6 @@ namespace JinEngine
const char* Jin_Lua_Handler = "Handler";
- typedef Shared<Timer>& SharedTimer;
-
static Timer::TimerCallback timerCallback = [](void* data)->void
{
LuaCallback* func = static_cast<LuaCallback*>(data);
@@ -27,24 +25,24 @@ namespace JinEngine
delete func;
};
- LUA_IMPLEMENT inline SharedTimer checkTimer(lua_State* L)
+ LUA_IMPLEMENT inline Timer* checkTimer(lua_State* L)
{
LuaObject* luaObj = (LuaObject*)luax_checktype(L, 1, Jin_Lua_Timer);
- return luaObj->getShared<Timer>();
+ return luaObj->getObject<Timer>();
}
// timer:every(time, callback, parameter)
LUA_IMPLEMENT int l_every(lua_State* L)
{
int n = luax_gettop(L);
- SharedTimer shared = checkTimer(L);
+ Timer* shared = checkTimer(L);
float s = luax_checknumber(L, 2);
LuaCallback* func = new LuaCallback(L);
func->setFunc(3);
for(int i = 4; i <= n; ++i)
func->pushParam(i);
Timer::Handler* handler = shared->every(s, timerCallback, func, finishCallback);
- Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler);
+ Shared* shrHandler = new Shared(handler, Jin_Lua_Handler);
LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler);
return 1;
}
@@ -53,14 +51,14 @@ namespace JinEngine
LUA_IMPLEMENT int l_after(lua_State* L)
{
int n = luax_gettop(L);
- SharedTimer shared = checkTimer(L);
+ Timer* shared = checkTimer(L);
float s = luax_checknumber(L, 2);
LuaCallback* func = new LuaCallback(L);
func->setFunc(3);
for (int i = 4; i <= n; ++i)
func->pushParam(i);
Timer::Handler* handler = shared->after(s, timerCallback, func, finishCallback);
- Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler);
+ Shared* shrHandler = new Shared(handler, Jin_Lua_Handler);
LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler);
return 1;
}
@@ -69,7 +67,7 @@ namespace JinEngine
LUA_IMPLEMENT int l_repeat(lua_State* L)
{
int n = luax_gettop(L);
- SharedTimer shared = checkTimer(L);
+ Timer* shared = checkTimer(L);
float s = luax_checknumber(L, 2);
int count = luax_checkinteger(L, 3);
LuaCallback* func = new LuaCallback(L);
@@ -77,14 +75,14 @@ namespace JinEngine
for (int i = 5; i <= n; ++i)
func->pushParam(i);
Timer::Handler* handler = shared->repeat(s, count, timerCallback, func, finishCallback);
- Shared<Timer::Handler>* shrHandler = new Shared<Timer::Handler>(handler, Jin_Lua_Handler);
+ Shared* shrHandler = new Shared(handler, Jin_Lua_Handler);
LuaObject* luaObj = luax_newinstance(L, Jin_Lua_Handler, shrHandler);
return 1;
}
LUA_IMPLEMENT int l_update(lua_State* L)
{
- SharedTimer shared = checkTimer(L);
+ Timer* shared = checkTimer(L);
float s = luax_checknumber(L, 2);
shared->update(s);
return 0;