slot 0.0.1
A real time UI render framework
载入中...
搜索中...
未找到
Application.h
浏览该文件的文档.
1//
2// Created by zhou_zhengming on 2026/5/7.
3//
4
5#pragma once
6
7#include "Event.h"
9#include "Scene.h"
10#include "Timer.h"
11#include "UI/Layout/Layout.h"
12#include "Win32WindowHost.h"
13#include "Window.h"
14
15namespace z8 {
16class Render;
17class UIObject;
18namespace ui {
19class XamlHotReload;
20}
21class Application : public EventTarget, private Win32WindowHost {
22public:
24 std::unique_ptr<Render> Render;
30
31 inline static std::vector<Application *> Apps;
32
34 ~Application() override;
35
36
37 bool EnableXamlHotReload(const std::string &fileName);
39 void SelectSceneObject(GameObject *object);
40 virtual void Init();
41 static int Run();
42
43private:
44 // 模态尺寸循环属于主交换链策略;通用指针状态由 Win32WindowHost 保存。
45 bool InSizeMove = false;
46 std::unique_ptr<ui::XamlHotReload> XamlReload;
47
49 template <typename Handler> void ForEachObject(Handler &&handler);
51 template <typename Handler> void ForEachSceneObject(Handler &&handler);
52
53 MouseCursor GetMouseCursor(MouseMovArgs args) const override;
54 LRESULT HandleWindowMessage(HWND window, UINT message, WPARAM wParam,
55 LPARAM lParam) override;
57 virtual void OnFrame() {}
59 virtual void OnLayoutReloaded() {}
62 EventReply OnKeyDown(KeyArgs args) override;
63 EventReply OnKeyUp(KeyArgs args) override;
64 EventReply OnMouseDown(MouseMovArgs args) override;
65 EventReply OnMouseDrag(MouseMovArgs args) override;
66 EventReply OnMouseMove(MouseMovArgs args) override;
67 EventReply OnMouseUp(MouseMovArgs args) override;
69 void OnPointerCaptureLost() override;
70 EventReply OnTextInput(wchar_t character) override;
71 void ShowFrame() const;
72 virtual void BeforeInit() { }
73};
74} // namespace z8
Definition Application.h:21
virtual void OnLayoutReloaded()
Definition Application.h:59
EventReply OnMouseDrag(MouseMovArgs args) override
Definition Application.cpp:292
Scene ActiveScene
Definition Application.h:27
virtual void Init()
Definition Application.cpp:46
virtual void OnSceneSelectionChanged(GameObject *)
Definition Application.h:61
static int Run()
Definition Application.cpp:55
~Application() override
Definition Application.cpp:34
std::unique_ptr< ui::XamlHotReload > XamlReload
Definition Application.h:46
EventReply OnKeyUp(KeyArgs args) override
Definition Application.cpp:352
GameObject * SelectedSceneObject
Definition Application.h:28
void SelectSceneObject(GameObject *object)
Definition Application.cpp:102
std::unique_ptr< Render > Render
Definition Application.h:24
EventReply OnMouseMove(MouseMovArgs args) override
Definition Application.cpp:284
Application()
Definition Application.cpp:27
bool EnableXamlHotReload(const std::string &fileName)
Definition Application.cpp:93
EventReply OnMouseDown(MouseMovArgs args) override
Definition Application.cpp:305
EventReply OnTextInput(wchar_t character) override
Definition Application.cpp:362
void ShowFrame() const
Definition Application.cpp:257
virtual void BeforeInit()
Definition Application.h:72
Window Window
Definition Application.h:23
EventReply OnKeyDown(KeyArgs args) override
Definition Application.cpp:344
ui::Layout Layout
Definition Application.h:29
EventReply OnMouseWheel(MouseWheelArgs args) override
Definition Application.cpp:335
static std::vector< Application * > Apps
Definition Application.h:31
void ForEachObject(Handler &&handler)
Definition Application.cpp:240
MouseCursor GetMouseCursor(MouseMovArgs args) const override
Definition Application.cpp:280
LRESULT HandleWindowMessage(HWND window, UINT message, WPARAM wParam, LPARAM lParam) override
Definition Application.cpp:109
ResourceManager Resources
Definition Application.h:26
Timer Timer
Definition Application.h:25
EventReply OnMouseUp(MouseMovArgs args) override
Definition Application.cpp:326
bool InSizeMove
Definition Application.h:45
virtual void OnFrame()
Definition Application.h:57
void ForEachSceneObject(Handler &&handler)
Definition Application.cpp:248
void OnPointerCaptureLost() override
Definition Application.cpp:360
Definition Event.h:80
有形状的渲染物体,一般包括:
Definition GameObject.h:54
Definition Render.h:18
应用级资源所有者和类型安全查询入口。 Manager 本身不是单例:Application 显式拥有它
Definition ResourceManager.h:34
一个可独立装载和销毁的场景,统一拥有相机、多光源和场景对象。
Definition Scene.h:14
Definition Timer.h:9
屏幕 UI 层的物体
Definition UIObject.h:38
Definition Win32WindowHost.h:16
Definition Window.h:12
Definition Layout.h:31
Definition XamlHotReload.h:18
世界矩阵 描述坐标系,左手坐标系 使用 DirectX12 坐标系的描述
Definition Application.h:15
MouseCursor
Definition Event.h:27
EventReply
Definition Event.h:13
Definition Event.h:67
Definition Event.h:41
Definition Event.h:57