aboutsummaryrefslogtreecommitdiff
path: root/src/lua/luaopen_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lua/luaopen_types.h')
-rw-r--r--src/lua/luaopen_types.h95
1 files changed, 0 insertions, 95 deletions
diff --git a/src/lua/luaopen_types.h b/src/lua/luaopen_types.h
deleted file mode 100644
index 47eb3be..0000000
--- a/src/lua/luaopen_types.h
+++ /dev/null
@@ -1,95 +0,0 @@
-#ifndef __JIN_M_TYPES_H
-#define __JIN_M_TYPES_H
-
-// graphics module
-#define JIN_GRAPHICS_IMAGE "jin.graphics.Image"
-#define JIN_GRAPHICS_SHADER "jin.graphics.Shader"
-#define JIN_GRAPHICS_CANVAS "jin.graphics.Canvas"
-#define JIN_GRAPHICS_FONT "jin.graphics.Font"
-
-// audio module
-#define JIN_AUDIO_SOURCE "jin.Audio.Source"
-
-// thread module
-#define JIN_THREAD_THREAD "jin.thread.Thread"
-
-// network module
-#define JIN_NETWORK_SOCKET "jin.net.Socket"
-#define JIN_NETWORK_BUFFER "jin.net.Buffer"
-
-namespace jin
-{
-namespace lua
-{
-
- class Reference
- {
- public:
- Reference(void* obj)
- : count(1)
- , object(obj)
- {
- }
-
- void retain()
- {
- ++count;
- }
-
- void release()
- {
- if (--count <= 0)
- delete this;
- }
-
- template<class T>
- T* getObject()
- {
- return (T*)object;
- }
-
- private:
- Reference(const Reference&);
- virtual ~Reference() {}
-
- void* object;
- int count;
-
- };
-
- class Proxy
- {
- public:
- void bind(Reference* ref, const char* t)
- {
- if (ref == nullptr)
- return;
- reference = ref;
- type = t;
- }
-
- void release()
- {
- if (reference != nullptr)
- {
- reference->release();
- reference = nullptr;
- type = nullptr;
- }
- }
-
- template<class T>
- T* getObject()
- {
- return reference->getObject<T>();
- }
-
- const char* type; // type name and metatable name
- Reference* reference; // acctual object binded
-
- };
-
-} // lua
-} // jin
-
-#endif \ No newline at end of file