50 lines
860 B
C++
50 lines
860 B
C++
#include "dl_ui_scene.h"
|
|
|
|
#ifndef DL_DISABLE_RENDER
|
|
#include "ui/dl_ui_manager.h"
|
|
|
|
namespace dl::UI
|
|
{
|
|
Scene::Scene()
|
|
{
|
|
_root = g_ui->CreatePanel();
|
|
_root->SetSizeFull();
|
|
_root->SetAutoRun(false);
|
|
_root->SetAutoRender(false);
|
|
_root->SetLocator(createLocatorZero());
|
|
}
|
|
Scene::~Scene()
|
|
{
|
|
g_ui->DeletePanel(_root, true);
|
|
}
|
|
|
|
dl::UI::Panel* Scene::CreatePanel(std::string_view name)
|
|
{
|
|
// UI::Panel* _root->GetChild(name);
|
|
// auto iter = _allPanel.find(std::string{ name });
|
|
// if (iter != _allPanel.end())
|
|
// {
|
|
// log_warn("Panel已存在:{}", name);
|
|
// return iter->second;
|
|
// }
|
|
UI::Panel* ret = g_ui->CreatePanel();
|
|
ret->SetName(name);
|
|
g_ui->SetPanelParent(ret, _root);
|
|
return ret;
|
|
}
|
|
|
|
void Scene::_update()
|
|
{
|
|
_root->Update();
|
|
Update();
|
|
}
|
|
|
|
void Scene::_render()
|
|
{
|
|
_root->Render();
|
|
Render();
|
|
}
|
|
|
|
}
|
|
|
|
#endif |