summaryrefslogtreecommitdiff
path: root/source/modules/asura-core/wnd/window.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-core/wnd/window.h')
-rw-r--r--source/modules/asura-core/wnd/window.h149
1 files changed, 0 insertions, 149 deletions
diff --git a/source/modules/asura-core/wnd/window.h b/source/modules/asura-core/wnd/window.h
deleted file mode 100644
index eb8a574..0000000
--- a/source/modules/asura-core/wnd/window.h
+++ /dev/null
@@ -1,149 +0,0 @@
-#ifndef __ASURA_ENGINE_WINDOW_H__
-#define __ASURA_ENGINE_WINDOW_H__
-
-#include <asura-utils/scripting/portable.hpp>
-#include <asura-utils/math/vector2.hpp>
-#include <asura-utils/singleton.hpp>
-
-#include "../graphics/image.h"
-#include "../graphics/render_state.h"
-#include "../graphics/render_target.h"
-
-namespace AsuraEngine
-{
- namespace Wnd
- {
-
- class WindowImpl;
-
- ///
- /// SDLģһЩõġ
- ///
- enum WindowFlag
- {
- WINDOW_FULLSCREEN = 1 << 1, /**< fullscreen window */
- WINDOW_OPENGL = 1 << 2, /**< window usable with OpenGL context */
- WINDOW_SHOWN = 1 << 3, /**< window is visible */
- WINDOW_HIDDEN = 1 << 4, /**< window is not visible */
- WINDOW_BORDERLESS = 1 << 5, /**< no window decoration */
- WINDOW_RESIZABLE = 1 << 6, /**< window can be resized */
- WINDOW_MINIMIZED = 1 << 7, /**< window is minimized */
- WINDOW_MAXIMIZED = 1 << 8, /**< window is maximized */
- WINDOW_INPUT_GRABBED = 1 << 9, /**< window has grabbed input focus */
- WINDOW_INPUT_FOCUS = 1 << 10, /**< window has input focus */
- WINDOW_MOUSE_FOCUS = 1 << 11, /**< window has mouse focus */
- WINDOW_ALLOW_HIGHDPI = 1 << 12, /**< window should be created in high-DPI mode if supported.
- On macOS NSHighResolutionCapable must be set true in the
- application's Info.plist for this to have any effect. */
- WINDOW_MOUSE_CAPTURE = 1 << 13, /**< window has mouse captured (unrelated to INPUT_GRABBED) */
- WINDOW_ALWAYS_ON_TOP = 1 << 14, /**< window should always be above others */
- };
-
- ///
- /// Windowʼ
- ///
- struct WindowConfig
- {
- uint width, height; ///< ߴ
- int x, y; ///< ڳʼ
- std::string title; ///<
- bool vsync; ///< ֱͬ
- AEGraphics::ImageData* icon; ///< ͼ
- bool show; ///< Ƿʾ
- int flag; ///< ڱ
- };
-
- ///
- /// ϷĵڣrunnerֻҪһڡͬĿͻʵִ˽ӿڲֶעᵽlua༭
- /// ᵼ࣬޽ӵ༭ⴰϡ
- ///
- class Window ASURA_FINAL
- : public AEGraphics::RenderTarget
- , public AEScripting::Portable<Window>
- , public Singleton<Window>
- {
- public:
-
- ///
- /// ϷʱĴΨһģ༭õࡣ
- ///
- LUAX_DECL_SINGLETON(Window);
-
- Window();
- ~Window();
-
- ///
- /// ڡ
- ///
- bool Init(const WindowConfig& config);
- void Exit();
-
- void SetSize(uint width, uint height);
- void SetPosition(int x, int y);
- void SetTitle(const std::string& title);
- void SetIcon(AEGraphics::ImageData* imgData);
-
- void Show();
- void Hide();
-
- ///
- /// ǿ˫ĴڣҪչʾǰ̨
- ///
- void SwapRenderBuffer();
-
- void Clear(const AEGraphics::Color& col = AEGraphics::Color::Black) override;
- void Clear(const Math::Recti& quad, const AEGraphics::Color& col = AEGraphics::Color::Black) override;
-
- void Draw(const AEGraphics::Drawable* texture, const AEGraphics::RenderState& state) override;
- void Draw(const AEGraphics::Drawable* texture, const Math::Recti& quad, const AEGraphics::RenderState& state) override;
-
- private:
-
- //----------------------------------------------------------------------------//
-
- LUAX_DECL_ENUM(WindowFlag, 0);
-
- LUAX_DECL_METHOD(_Init);
- LUAX_DECL_METHOD(_Exit);
- LUAX_DECL_METHOD(_Show);
- LUAX_DECL_METHOD(_Hide);
- LUAX_DECL_METHOD(_SetSize);
- LUAX_DECL_METHOD(_SetPosition);
- LUAX_DECL_METHOD(_SetTitle);
- LUAX_DECL_METHOD(_SetIcon);
- LUAX_DECL_METHOD(_SwapRenderBuffer);
- LUAX_DECL_METHOD(_Clear);
- LUAX_DECL_METHOD(_Draw);
-
- //----------------------------------------------------------------------------//
-
- WindowImpl* mImpl;
-
- };
-
- using RenderWindow = Window;
-
- ASURA_ABSTRACT class WindowImpl
- {
- public:
-
- WindowImpl() {};
- virtual ~WindowImpl() {};
-
- virtual void SetSize(uint width, uint height) = 0;
- virtual void SetPosition(int x, int y) = 0;
- virtual void SetTitils(const std::string& title) = 0;
-
- virtual void Show() = 0;
- virtual void Hide() = 0;
-
- virtual void SwapRenderBuffer() = 0;
-
- };
-
- }
-}
-
-namespace AEWnd = AsuraEngine::Wnd;
-
-#endif \ No newline at end of file