From 250e30d73f09e9da2b5a81d0fbae63744ae12a73 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 2 Apr 2019 08:47:15 +0800 Subject: *misc --- source/modules/asura-core/wnd/window.h | 149 --------------------------------- 1 file changed, 149 deletions(-) delete mode 100644 source/modules/asura-core/wnd/window.h (limited to 'source/modules/asura-core/wnd/window.h') 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 -#include -#include - -#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 - , public Singleton - { - 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 -- cgit v1.1-26-g67d0