summaryrefslogtreecommitdiffhomepage
path: root/dev/Usr/LibFont
diff options
context:
space:
mode:
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