Scene UI
This commit is contained in:
@ -153,16 +153,20 @@ void RenderPipeline::renderSceneCamera(Scene *scene, Camera *camera) {
|
||||
assertUnreachable();
|
||||
}
|
||||
|
||||
auto children = canvas->item.chil
|
||||
auto renderables = canvas->item->findChildrenDeep<UIComponentRendaerable>();
|
||||
auto itChild = renderables.begin();
|
||||
while(itChild != renderables.end()) {
|
||||
++itChild;
|
||||
}
|
||||
|
||||
// auto itChild = canvas->children.begin();
|
||||
// while(itChild != canvas->children.end()) {
|
||||
// while(itChild != canvas->children.end()) {
|
||||
// vectorAppend(&shaderPassItems, (*itChild)->getPassItems(
|
||||
// projection, view, model
|
||||
// ));
|
||||
// ++itChild;
|
||||
// }
|
||||
// ++itCanvas;
|
||||
++itCanvas;
|
||||
}
|
||||
|
||||
// Debug Lines
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include "display/Transform.hpp"
|
||||
#include "event/Event.hpp"
|
||||
#include "scene/Scene.hpp"
|
||||
#include "util/array.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class SceneItemComponent;
|
||||
@ -113,6 +114,22 @@ namespace Dawn {
|
||||
}
|
||||
return children;
|
||||
}
|
||||
|
||||
template<class T>
|
||||
std::vector<T*> findChildrenDeep() {
|
||||
std::vector<Transform*> itemsToCheck = this->transform.children;
|
||||
std::vector<T*> itemsFound;
|
||||
|
||||
while(itemsToCheck.size() > 0) {
|
||||
auto item = itemsToCheck.begin();
|
||||
vectorAppend(&itemsToCheck, (*item)->children);
|
||||
auto component = (*item)->item->getComponent<T>();
|
||||
if(component != nullptr) itemsFound.push_back(component);
|
||||
itemsToCheck.erase(item);
|
||||
}
|
||||
|
||||
return itemsFound;
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroy this SceneItem.
|
||||
|
@ -7,6 +7,8 @@
|
||||
target_sources(${DAWN_TARGET_NAME}
|
||||
PRIVATE
|
||||
UICanvas.cpp
|
||||
UIComponent.cpp
|
||||
UILabel.cpp
|
||||
)
|
||||
|
||||
tool_scenecomponent(UICanvas scene/components/ui/UICanvas.hpp)
|
@ -8,6 +8,11 @@
|
||||
#include "UICanvas.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class UIComponentRendaerable {
|
||||
public:
|
||||
int32_t cum;
|
||||
};
|
||||
|
||||
class UIComponent : public SceneItemComponent {
|
||||
private:
|
||||
UICanvas *canvas = nullptr;
|
||||
|
@ -24,8 +24,8 @@ void UILabel::updateMesh() {
|
||||
|
||||
// std::string text = this->getGame()->localeManager.getString(key);
|
||||
this->font->buffer(
|
||||
this->text,
|
||||
this->fontSize,
|
||||
text,
|
||||
fontSize,
|
||||
-1,
|
||||
&this->mesh,
|
||||
&this->measure
|
||||
|
@ -5,6 +5,7 @@
|
||||
|
||||
#pragma once
|
||||
#include "UIComponent.hpp"
|
||||
#include "display/font/Font.hpp"
|
||||
|
||||
namespace Dawn {
|
||||
class UILabel : public UIComponent {
|
||||
|
Reference in New Issue
Block a user