diff options
| -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 |
