mirror of
https://github.com/zhenyan121/Cubed.git
synced 2026-08-09 02:07:04 +08:00
refactor: add framebuffer resize event and separate UI management
This commit is contained in:
@@ -22,6 +22,9 @@ void SceneManager::render(Renderer& renderer) {
|
||||
}
|
||||
|
||||
bool SceneManager::handle_event(const Event& e) {
|
||||
if (m_scenes.empty()) {
|
||||
return false;
|
||||
}
|
||||
return m_scenes.top()->handle_event(e);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ WorldScene::WorldScene(SceneManager& scene_manager)
|
||||
: m_scene_manager(scene_manager), m_dev_panel(*this),
|
||||
m_client_world(scene_manager.app().audio(), scene_manager.app().config(),
|
||||
*this),
|
||||
m_argument(scene_manager.app().argument()) {}
|
||||
m_ui_manager(*this), m_argument(scene_manager.app().argument()) {}
|
||||
|
||||
WorldScene::~WorldScene() {
|
||||
if (m_client) {
|
||||
@@ -22,6 +22,7 @@ void WorldScene::update(float dt) {
|
||||
m_client_world.get_audio().update_listener(m_camera.get_camera_pos(),
|
||||
m_camera.get_camera_front(),
|
||||
glm::vec3(0, 1, 0));
|
||||
|
||||
/*
|
||||
const auto& player = m_client_world.get_player();
|
||||
if (player_gait != player.get_gait()) {
|
||||
@@ -34,16 +35,21 @@ void WorldScene::update(float dt) {
|
||||
m_renderer.update_fov(fov + 5.0f);
|
||||
}
|
||||
}*/
|
||||
m_ui_manager.update(dt);
|
||||
}
|
||||
|
||||
void WorldScene::render(Renderer& renderer) {
|
||||
Logger::info("World Scene Render Start !");
|
||||
|
||||
renderer.render_world(m_client_world);
|
||||
Logger::info("Client World Render Finish");
|
||||
|
||||
renderer.render_dev_panel(m_dev_panel);
|
||||
Logger::info("DevPanel Render Finish!");
|
||||
|
||||
m_ui_manager.render(renderer);
|
||||
}
|
||||
bool WorldScene::handle_event(const Event& e) {
|
||||
if (m_ui_manager.handle_event(e)) {
|
||||
return true;
|
||||
}
|
||||
if (m_camera.handle_event(e)) {
|
||||
return true;
|
||||
}
|
||||
@@ -65,6 +71,7 @@ void WorldScene::on_enter() {
|
||||
m_camera.camera_init(&m_client_world.get_player());
|
||||
m_scene_manager.app().window().set_camera(&m_camera);
|
||||
m_dev_panel.init();
|
||||
m_ui_manager.init();
|
||||
}
|
||||
void WorldScene::on_leave() {
|
||||
m_client_world.request_exit();
|
||||
|
||||
Reference in New Issue
Block a user