summaryrefslogtreecommitdiff
path: root/source/libs/asura-lib-core
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2019-03-20 22:43:25 +0800
committerchai <chaifix@163.com>2019-03-20 22:43:25 +0800
commit82956beb1fe17e1226327638c8ab22b5f5adfc1d (patch)
treeb47464697174d5f9db4c8c9ab4a25cc384927d97 /source/libs/asura-lib-core
parent1497dccd63a84b7ee2b229b1ad9c5c02718f2a78 (diff)
*misc
Diffstat (limited to 'source/libs/asura-lib-core')
-rw-r--r--source/libs/asura-lib-core/application.cpp33
-rw-r--r--source/libs/asura-lib-core/application.h14
-rw-r--r--source/libs/asura-lib-core/asura.h15
-rw-r--r--source/libs/asura-lib-core/client/client.h15
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_thread.cpp0
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_thread.h0
-rw-r--r--source/libs/asura-lib-core/client/sdl/sdl_window.h17
-rw-r--r--source/libs/asura-lib-core/config.h4
-rw-r--r--source/libs/asura-lib-core/core_config.h8
-rw-r--r--source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp56
-rw-r--r--source/libs/asura-lib-core/graphics/canvas.h14
-rw-r--r--source/libs/asura-lib-core/graphics/color.h5
-rw-r--r--source/libs/asura-lib-core/graphics/gl.cpp2
-rw-r--r--source/libs/asura-lib-core/graphics/image_data.cpp3
-rw-r--r--source/libs/asura-lib-core/graphics/image_data.h24
-rw-r--r--source/libs/asura-lib-core/graphics/image_decoder.h4
16 files changed, 109 insertions, 105 deletions
diff --git a/source/libs/asura-lib-core/application.cpp b/source/libs/asura-lib-core/application.cpp
index 598bca8..0a1c1ef 100644
--- a/source/libs/asura-lib-core/application.cpp
+++ b/source/libs/asura-lib-core/application.cpp
@@ -20,40 +20,7 @@ namespace AsuraEngine
bool Application::InitSubModules(uint flag)
{
- // ʼģ
- #define TryInitSubModule(module_name, func_name) \
- if((flag&ASURA_MODULE_##module_name) && !Application::Init##func_name()) \
- throw Exception("Asura init submodule %s failed.", #module_name);
-
- TryInitSubModule(GRAPHICS, Graphics);
- TryInitSubModule(AUDIO, Audio);
- TryInitSubModule(FONT, Font);
- TryInitSubModule(INPUT, Input);
- TryInitSubModule(MATH, Math);
- TryInitSubModule(PHYSICS, Physics);
- TryInitSubModule(TIME, Time);
- TryInitSubModule(WINDOW, Window);
}
- void Application::PortToLua()
- {
- LuaxState state(mLuaState);
-
-#define RegisterLuaFactory(T) state.RegisterFactory<T>();
-
- state.SetToGlobalNamespace();
- state.PushNamespace("AsuraEngine");
-
- RegisterLuaFactory(AEGraphics::Image>);
-
-#ifdef ASURA_AUTHOR
- state.PushNamespace("Version");
-
- state.PopNamespace(); // AsuraEngine.Version
-#endif
-
- state.PopNamespace(); // AsuraEngine
- }
-
} \ No newline at end of file
diff --git a/source/libs/asura-lib-core/application.h b/source/libs/asura-lib-core/application.h
index 6ae3218..983dbce 100644
--- a/source/libs/asura-lib-core/application.h
+++ b/source/libs/asura-lib-core/application.h
@@ -5,7 +5,7 @@
#include <asura-lib-utils/module.h>
#include <queue>
-#include "config.h"
+#include "core_config.h"
namespace AsuraEngine
{
@@ -65,18 +65,6 @@ namespace AsuraEngine
private:
///
- /// ģʼڸģļʵ֡
- ///
- bool InitGraphics();
- bool InitAudio();
- bool InitFont();
- bool InitInput();
- bool InitMath();
- bool InitPhysics();
- bool InitTime();
- bool InitWindow();
-
- ///
/// Lua state.
///
lua_State* mLuaState;
diff --git a/source/libs/asura-lib-core/asura.h b/source/libs/asura-lib-core/asura.h
deleted file mode 100644
index 5ca56f3..0000000
--- a/source/libs/asura-lib-core/asura.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef __ASURA_ENGINE_H__
-#define __ASURA_ENGINE_H__
-
-#include "Application.h"
-
-#include "Graphics/Shader.h"
-
-//namespace AEGraphics = AsuraEngine::Graphics;
-//namespace AEMath = AsuraEngine::Math;
-//namespace AETime = AsuraEngine::Time;
-//namespace AEInput = AsuraEngine::Input;
-//namespace AEProfiler = AsuraEngine::Profiler;
-//namespace AEFont = AsuraEngine::Font;
-
-#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/client/client.h b/source/libs/asura-lib-core/client/client.h
index f2464a5..8df30fe 100644
--- a/source/libs/asura-lib-core/client/client.h
+++ b/source/libs/asura-lib-core/client/client.h
@@ -1,16 +1,23 @@
#ifndef __ASURA_ENGINE_HOST_H__
#define __ASURA_ENGINE_HOST_H__
-/**
-* ʹڿйص
-*/
+#include <asura-lib-utils/type.h>
+///
+/// ʹйصʵ֣ǵϷĿƽ̨ʹüֱʵ֡༭벻ڿƽ̨ڿ⣬Ŀǰʹwin32APIʵϢѭ
+///
namespace AsuraEngine
{
- namespace Host
+ namespace Client
{
+ ///
+ /// ࡣ
+ ///
+ ASURA_ABSTRACT class Client
+ {
+ };
}
}
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp b/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/libs/asura-lib-core/client/sdl/sdl_thread.cpp
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_thread.h b/source/libs/asura-lib-core/client/sdl/sdl_thread.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/source/libs/asura-lib-core/client/sdl/sdl_thread.h
diff --git a/source/libs/asura-lib-core/client/sdl/sdl_window.h b/source/libs/asura-lib-core/client/sdl/sdl_window.h
index 1fdef1e..040c23e 100644
--- a/source/libs/asura-lib-core/client/sdl/sdl_window.h
+++ b/source/libs/asura-lib-core/client/sdl/sdl_window.h
@@ -1,14 +1,29 @@
#ifndef __ASURA_SDL_WINDOW_H__
#define __ASURA_SDL_WINDOW_H__
+#include "../../core_config.h"
+#if ASURA_CORE_SDL
+
+#include <asura-lib-utils/scripting/portable.hpp>
+#include "../../graphics/window.h"
+
namespace AsuraEngine
{
namespace SDL
{
+ class SDLWindow ASURA_FINAL
+ : public Graphics::Window
+ , public Scripting::Portable<SDLWindow>
+ {
+ public:
+
+ };
}
}
-#endif \ No newline at end of file
+#endif // ASURA_CORE_SDL
+
+#endif // __ASURA_SDL_WINDOW_H__ \ No newline at end of file
diff --git a/source/libs/asura-lib-core/config.h b/source/libs/asura-lib-core/config.h
deleted file mode 100644
index df7ad99..0000000
--- a/source/libs/asura-lib-core/config.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef __ASURA_CORE_CONFIG_H__
-#define __ASURA_CORE_CONFIG_H__
-
-#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/core_config.h b/source/libs/asura-lib-core/core_config.h
new file mode 100644
index 0000000..06eecc7
--- /dev/null
+++ b/source/libs/asura-lib-core/core_config.h
@@ -0,0 +1,8 @@
+#ifndef __ASURA_CORE_CONFIG_H__
+#define __ASURA_CORE_CONFIG_H__
+
+#define ASURA_CORE_SDL 1
+#define ASURA_CORE_GLUT 0
+#define ASURA_CORE_GLFW 0
+
+#endif \ No newline at end of file
diff --git a/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp b/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
index 0d68c11..72e33da 100644
--- a/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
+++ b/source/libs/asura-lib-core/graphics/binding/image_data.binding.cpp
@@ -1,4 +1,4 @@
-#include "../image.h"
+#include "../image_data.h"
using namespace Luax;
@@ -7,23 +7,55 @@ namespace AsuraEngine
namespace Graphics
{
- void Image::RegisterLuaxClass(LuaxState& state)
+ LUAX_REGISTRY(ImageData)
{
}
- void Image::RegisterLuaxPostprocess(LuaxState& state)
+ LUAX_POSTPROCESS(ImageData)
+ {
+ LUAX_REGISTER_ENUM(state, "EBlendMode",
+ { "Additive", 1 }
+ );
+ LUAX_REGISTER_ENUM(state, "EPixelFormat",
+ { "RGBA32", 1 }
+ );
+ }
+
+ // imagedata = ImageData.New(databuffer)
+ LUAX_IMPL_METHOD(ImageData, _New)
+ {
+ LUAX_STATE(L);
+
+ Filesystem::DataBuffer* db = state.CheckUserdata<Filesystem::DataBuffer>(1);
+ ImageData* image = new ImageData(*db);
+ image->PushLuaxUserdata(state);
+ return 1;
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetPixel)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetSize)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetWidth)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetHeight)
+ {
+
+ }
+
+ LUAX_IMPL_METHOD(ImageData, _GetPixelFormat)
{
- // blendö٣AsuraEngine.EBlendMode
- LuaxEnum EBlendMode[] = {
- { "Additive", 1 },
- { "PreBlend", 2 },
- { "Substruction", 3 },
- { "Multiplied", 4 },
- {0, 0}
- };
- state.RegisterEnum("EBlendMode", EBlendMode);
}
}
diff --git a/source/libs/asura-lib-core/graphics/canvas.h b/source/libs/asura-lib-core/graphics/canvas.h
index c4e0f65..6b8b630 100644
--- a/source/libs/asura-lib-core/graphics/canvas.h
+++ b/source/libs/asura-lib-core/graphics/canvas.h
@@ -1,12 +1,14 @@
#ifndef __ASURA_ENGINE_CANVAS_H__
#define __ASURA_ENGINE_CANVAS_H__
-#include <Scripting/Luax.hpp>
+#include <asura-lib-utils/scripting/portable.hpp>
+#include <asura-lib-utils/math/rect.hpp>
+#include <asura-lib-utils/math/vector2.hpp>
-#include "Math/Rect.hpp"
-#include "GL.h"
-#include "Texture.h"
-#include "RenderTarget.h"
+#include "gl.h"
+#include "texture.h"
+#include "render_target.h"
+#include "render_state.h"
namespace AsuraEngine
{
@@ -19,7 +21,7 @@ namespace AsuraEngine
class Canvas ASURA_FINAL
: public Drawable
, public RenderTarget
- , public Scripting::Portable
+ , public Scripting::Portable<Canvas>
{
public:
diff --git a/source/libs/asura-lib-core/graphics/color.h b/source/libs/asura-lib-core/graphics/color.h
index a18c682..74cf8f3 100644
--- a/source/libs/asura-lib-core/graphics/color.h
+++ b/source/libs/asura-lib-core/graphics/color.h
@@ -1,8 +1,9 @@
#ifndef __ASURA_ENGINE_COLOR_H__
#define __ASURA_ENGINE_COLOR_H__
-#include "config.h"
-#include "scripting/portable.hpp"
+#include <asura-lib-utils/scripting/portable.hpp>
+
+#include "../core_config.h"
namespace AsuraEngine
{
diff --git a/source/libs/asura-lib-core/graphics/gl.cpp b/source/libs/asura-lib-core/graphics/gl.cpp
index 01c90de..7c68c8f 100644
--- a/source/libs/asura-lib-core/graphics/gl.cpp
+++ b/source/libs/asura-lib-core/graphics/gl.cpp
@@ -1,4 +1,4 @@
-#include "config.h"
+#include "../core_config.h"
#include "gl.h"
namespace AsuraEngine
diff --git a/source/libs/asura-lib-core/graphics/image_data.cpp b/source/libs/asura-lib-core/graphics/image_data.cpp
index 821bfd6..28c706a 100644
--- a/source/libs/asura-lib-core/graphics/image_data.cpp
+++ b/source/libs/asura-lib-core/graphics/image_data.cpp
@@ -1,6 +1,7 @@
#include "image_data.h"
#include "png_decoder.h"
#include "stb_decoder.h"
+#include "image_decoder.h"
namespace AsuraEngine
{
@@ -35,7 +36,7 @@ namespace AsuraEngine
{
if (decoder->CanDecode(buffer))
{
- decoder->Decode(buffer, this);
+ decoder->Decode(buffer, *this);
return;
}
}
diff --git a/source/libs/asura-lib-core/graphics/image_data.h b/source/libs/asura-lib-core/graphics/image_data.h
index 1e711a8..53a9e85 100644
--- a/source/libs/asura-lib-core/graphics/image_data.h
+++ b/source/libs/asura-lib-core/graphics/image_data.h
@@ -3,9 +3,10 @@
#include <list>
-#include "scripting/luax.hpp"
-#include "filesystem/decoded_data.h"
-#include "image_decoder.h"
+#include <asura-lib-utils/scripting/portable.hpp>
+#include <asura-lib-utils/filesystem/decoded_data.h>
+#include <asura-lib-utils/filesystem/data_buffer.h>
+
#include "pixel_format.h"
#include "color.h"
@@ -14,9 +15,11 @@ namespace AsuraEngine
namespace Graphics
{
+ class ImageDecoder;
+
class ImageData ASURA_FINAL
: public Filesystem::DecodedData
- , public Scripting::Portable
+ , public Scripting::Portable<ImageData>
{
public:
@@ -24,7 +27,6 @@ namespace AsuraEngine
/// ͼƬļϢʧܣ׳쳣
///
ImageData(const Filesystem::DataBuffer& buffer);
-
~ImageData();
Color GetPixel(uint x, uint y);
@@ -45,14 +47,14 @@ namespace AsuraEngine
public:
- //----------------------------------------------------------------------------------------------------------
-
LUAX_DECL_FACTORY(ImageData);
- LUAX_DECL_METHOD(l_GetPixel);
- LUAX_DECL_METHOD(l_GetSize);
-
- //----------------------------------------------------------------------------------------------------------
+ LUAX_DECL_METHOD(_New);
+ LUAX_DECL_METHOD(_GetPixel);
+ LUAX_DECL_METHOD(_GetSize);
+ LUAX_DECL_METHOD(_GetWidth);
+ LUAX_DECL_METHOD(_GetHeight);
+ LUAX_DECL_METHOD(_GetPixelFormat);
};
diff --git a/source/libs/asura-lib-core/graphics/image_decoder.h b/source/libs/asura-lib-core/graphics/image_decoder.h
index 2c73fd1..921d129 100644
--- a/source/libs/asura-lib-core/graphics/image_decoder.h
+++ b/source/libs/asura-lib-core/graphics/image_decoder.h
@@ -1,9 +1,9 @@
#ifndef __ASURA_ENGINE_IMAGE_DECODER_H__
#define __ASURA_ENGINE_IMAGE_DECODER_H__
-#include "FileSystem/DataBuffer.h"
+#include <asura-lib-utils/filesystem/data_buffer.h>
-#include "ImageData.h"
+#include "image_data.h"
namespace AsuraEngine
{