From c10e0d92f46e5eaf25a69e1fafe5f4dbd8eaab9d Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 3 Nov 2021 09:52:26 +0800 Subject: *misc --- Runtime/GUI/UITextMesh.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 Runtime/GUI/UITextMesh.h (limited to 'Runtime/GUI/UITextMesh.h') diff --git a/Runtime/GUI/UITextMesh.h b/Runtime/GUI/UITextMesh.h new file mode 100644 index 0000000..c88e52f --- /dev/null +++ b/Runtime/GUI/UITextMesh.h @@ -0,0 +1,50 @@ +#pragma once +#include "../Graphics/VertexBuffer.h" +#include "Font.h" +#include "Runtime/Utilities/Exception.h" +#include + +CustomException(TextMeshException); + +enum ETextAnchor +{ + TextAnchor_UpperLeft, + TextAnchor_UpperCenter, + TextAnchor_UpperRight, + TextAnchor_MiddleLeft, + TextAnchor_MiddleCenter, + TextAnchor_MiddleRight, + TextAnchor_LowerLeft, + TextAnchor_LowerCenter, + TextAnchor_LowerRight, + TextAnchor_DontCare +}; + +enum ETextAlignment { + TextAlignment_Left, + TextAlignment_Center, + TextAlignment_Right, + TextAlignment_Auto, +}; + +typedef unsigned long long TextMeshHash; + +namespace TextHelper +{ + TextMeshHash GetTextMeshHash(); +} + +class UITextMesh +{ +public: + UITextMesh(const UnicodeString& str, Font* font, int pixelSize, ETextAnchor anchor, ETextAlignment alignment)/*throw TextMeshException*/; + + ~UITextMesh(); + + void Draw(); + +private: + Font* m_Font; + std::unordered_map m_VBOs; + +}; \ No newline at end of file -- cgit v1.1-26-g67d0