More stuff done at Project Ultra

- Added renderspace
- Revision System (to not always update pRenderspace
- added some test scene
This commit is contained in:
2026-03-28 13:52:36 +01:00
parent 784421fa6c
commit 2e652a3c24
14 changed files with 192 additions and 33 deletions
+8 -14
View File
@@ -2,19 +2,7 @@
#include <pd/core/core.hpp>
#include <pd/lithium/lithium.hpp>
using UltraAlignment = PD::u32;
enum UltraAlignment_ {
UltraAlignment_None = 0,
UltraAlignment_Top = 1 << 0,
UltraAlignment_Bot = 1 << 1,
UltraAlignment_Left = 1 << 2,
UltraAlignment_Right = 1 << 3,
UltraAlignment_TopLeft = UltraAlignment_Top | UltraAlignment_Left,
UltraAlignment_TopRight = UltraAlignment_Top | UltraAlignment_Right,
UltraAlignment_BotLeft = UltraAlignment_Bot | UltraAlignment_Left,
UltraAlignment_BotRight = UltraAlignment_Bot | UltraAlignment_Right,
};
#include <pd/ultra/flags.hpp>
namespace PD {
namespace Ultra {
@@ -31,18 +19,24 @@ class PD_API Canvas {
PD::fvec2 VTranslateAlignPos(const PD::fvec2& pos, const PD::fvec2& size,
UltraAlignment align) const;
PD::Li::Rect VTranslateObject(const PD::fvec2& pos, const PD::fvec2& size,
UltraAlignment align, bool size_modified = false) const;
UltraAlignment align,
bool size_modified = false) const;
PD::Li::Rect TranslateObject(const PD::fvec2& pos, const PD::fvec2& size,
UltraAlignment align,
bool size_modified = false) const;
PD::fvec2 TranslatePos(const PD::fvec2& p) const;
PD::fvec2 VTranslateSize(const PD::fvec2& s) const;
PD::fvec2 TranslateSize(const PD::fvec2& s) const;
float VTranslateFontscale(float f) const;
float TranslateFontscale(float f) const;
const PD::u32& GetRevision() const;
private:
PD::fvec2 pViewport;
PD::fvec2 pVirtualViewPort;
float pVfactor = 0.f;
PD::fvec2 pVoff;
PD::u32 pRev; // revision
};
} // namespace Ultra
} // namespace PD