summaryrefslogtreecommitdiffhomepage
path: root/dev/Usr/LibFont
diff options
context:
space:
mode:
authorAmlal <amlal.elmahrouss@icloud.com>2025-02-24 09:07:56 +0100
committerAmlal <amlal.elmahrouss@icloud.com>2025-02-24 09:07:56 +0100
commit40773d41fa7898e7f03b0de011a9740061ade0aa (patch)
tree66a425fdc830be4ea33b1d75454038036f17d3c7 /dev/Usr/LibFont
parentcb6d0477d6ea65b6364bfbcd872552bec6fbc22a (diff)
Add LibFont and LibLocale, port structs that I made for app-kit to LibCF too.
Signed-off-by: Amlal <amlal.elmahrouss@icloud.com>
Diffstat (limited to 'dev/Usr/LibFont')
-rw-r--r--dev/Usr/LibFont/.keep0
-rw-r--r--dev/Usr/LibFont/Font.h55
2 files changed, 55 insertions, 0 deletions
diff --git a/dev/Usr/LibFont/.keep b/dev/Usr/LibFont/.keep
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/dev/Usr/LibFont/.keep
diff --git a/dev/Usr/LibFont/Font.h b/dev/Usr/LibFont/Font.h
new file mode 100644
index 00000000..710dbd3a
--- /dev/null
+++ b/dev/Usr/LibFont/Font.h
@@ -0,0 +1,55 @@
+/**
+ *
+ * Copyright (c) 2024 Amlal El Mahrouss
+ *
+ */
+
+#pragma once
+
+#include <LibCF/Core.h>
+
+#define kCFFontExt ".ttf"
+
+/// @file Font.h
+/// @brief Font parsing using a NeOS True Font.
+
+namespace LibCF
+{
+ class CFFont;
+
+ class CFFont
+ {
+ public:
+ explicit CFFont() = default;
+ virtual ~CFFont() = default;
+
+ protected:
+ CFRect m_size{};
+ CFRect* m_glyphs{nullptr};
+ CFInteger32 m_glyphs_cnt{0};
+ BOOL m_bold{NO};
+ BOOL m_italic{NO};
+
+ CFFont(const CFFont& fnt) = delete;
+ CFFont& operator=(const CFFont& fnt) = delete;
+
+ virtual BOOL render_(CFPoint pos, CFChar16 character, CFColor color) = 0;
+
+ virtual void dispose_()
+ {
+ m_bold = NO;
+ m_italic = NO;
+
+ m_size.height = 0;
+ m_size.width = 0;
+
+ m_glyphs_cnt = 0;
+
+ delete[] m_glyphs;
+ m_glyphs = nullptr;
+
+ m_size.x = 0;
+ m_size.y = 0;
+ }
+ };
+} // namespace LibCF \ No newline at end of file