diff options
| author | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-13 18:41:33 +0200 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal.elmahrouss@icloud.com> | 2024-04-13 18:41:33 +0200 |
| commit | 44dff975612602772f3470edad646f2ded3ef0b4 (patch) | |
| tree | 4194ed4521ec4efc35f2d148752027fc518ec715 | |
| parent | f59970eaf733118db543c7c37c49d32ca53e60aa (diff) | |
SystemLib: Adding TrueType support for SystemLib as part of the specs.
Public: Add symlink to root as part of the install specs.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
| -rw-r--r-- | Public/Developer/SystemLib/Sources/File.c | 2 | ||||
| -rw-r--r-- | Public/Developer/SystemLib/Sources/TrueType.c | 39 | ||||
| l--------- | Public/Root | 1 |
3 files changed, 41 insertions, 1 deletions
diff --git a/Public/Developer/SystemLib/Sources/File.c b/Public/Developer/SystemLib/Sources/File.c index 1432e7e0..ca23d9f7 100644 --- a/Public/Developer/SystemLib/Sources/File.c +++ b/Public/Developer/SystemLib/Sources/File.c @@ -35,4 +35,4 @@ CA_EXTERN_C VoidType FsCloseFile(FSRef refFs) { kSharedApplication->Invoke(kSharedApplication, refFs, kFlushFile); kSharedApplication->Invoke(kSharedApplication, kCallCloseFile, refFs); -}
\ No newline at end of file +} diff --git a/Public/Developer/SystemLib/Sources/TrueType.c b/Public/Developer/SystemLib/Sources/TrueType.c new file mode 100644 index 00000000..d23ce4f9 --- /dev/null +++ b/Public/Developer/SystemLib/Sources/TrueType.c @@ -0,0 +1,39 @@ +/* ------------------------------------------- + + Copyright Mahrouss Logic + +------------------------------------------- */ + +#include <Headers/Defines.h> +#include <Headers/TrueType.h> +#include <Headers/File.h> +#include <Headers/Heap.h> + +#define kTTFFork "fon " /* TrueType */ + +/// @brief TrueType container reader +typedef struct TTFReader { + FSForkRef fFork; + FSRef fFile; + PtrVoidType fBlob; // cached blob + SizeType fBlobSize; // cached blob size + VoidType(*__fReadBytes)(SizeType count); + VoidType(*__fSkipBytes)(SizeType count); +} TTFReader; + +/// @brief Grab a TTF reader reference. +/// @param fs filesystem reference. +/// @return TTFReader* the new TTFReader type. +CA_STATIC TTFReader* GrabTTFReader(FSRef fs) { + FSForkRef forkRef = FsGetFork(fs, kTTFFork); + + if (forkRef = kInvalidRef) return NullPtr; + + TTFReader* reader = RtTlsAllocate(sizeof(TTFReader), kStandardAllocation); + + reader->fFile = fs; + reader->fFork = forkRef; + + return reader; +} +/// EOF. diff --git a/Public/Root b/Public/Root new file mode 120000 index 00000000..418b1c64 --- /dev/null +++ b/Public/Root @@ -0,0 +1 @@ +../Private/Root
\ No newline at end of file |
