Rework Project Ultra

- Added container
- Made container the base of Layout
- Set Containers theirself as pParent for Elements on Push
This commit is contained in:
2026-03-29 04:28:45 +02:00
parent 4498c2c0fb
commit b5321ca1a1
10 changed files with 82 additions and 78 deletions
+4 -3
View File
@@ -6,6 +6,7 @@
namespace PD {
namespace Ultra {
class Canvas;
class Container;
class PD_API ElementBase {
public:
ElementBase() {}
@@ -16,7 +17,6 @@ class PD_API ElementBase {
* Reset Function (for PD::Pool::FastReset)
*/
virtual void Reset() {}
void Update(Canvas& c);
void SetAlignment(UltraAlignment a) { pAlignment = a; }
void SetPosition(const PD::fvec2& pos) { pPos = pos; }
@@ -25,13 +25,14 @@ class PD_API ElementBase {
void SetSize(float w, float h) { pSize = PD::fvec2(w, h); }
protected:
friend class Container;
void SetParent(Container* c) { pParent = c; }
bool RevisionUpdate(PD::u32 req);
Container* pParent;
PD::u32 pCanvasRev = 0;
PD::Li::Rect pRenderspace;
UltraAlignment pAlignment = 0;
PD::fvec2 pPos;
PD::fvec2 pSize;
ElementBase* pParent = nullptr;
};
} // namespace Ultra
} // namespace PD
+4
View File
@@ -28,10 +28,14 @@ class PD_API Rect : public ElementBase {
void SetColor(const PD::Color& color) { pColor = color; }
void SetRounding(float r) { pRounding = r; }
void SetLined(bool v) { pLined = v; }
void SetThickness(int v) { pThickness = v; }
private:
PD::Color pColor;
float pRounding = 0.f;
bool pLined = false;
int pThickness = 1.f;
};
} // namespace Ultra