Commit 316a728506e96e1677cae25777427b1f35c557fd

sammy 2008-05-04T19:38:55

* The FTFont<->FTFontImpl bridge is now complete.

diff --git a/src/FTFont/FTFont.cpp b/src/FTFont/FTFont.cpp
index 7889b64..549518f 100644
--- a/src/FTFont/FTFont.cpp
+++ b/src/FTFont/FTFont.cpp
@@ -62,31 +62,13 @@ FTFont::~FTFont()
 
 bool FTFont::Attach(const char* fontFilePath)
 {
-    if(impl->face.Attach(fontFilePath))
-    {
-        impl->err = 0;
-        return true;
-    }
-    else
-    {
-        impl->err = impl->face.Error();
-        return false;
-    }
+    return impl->Attach(fontFilePath);
 }
 
 
 bool FTFont::Attach(const unsigned char *pBufferBytes, size_t bufferSizeInBytes)
 {
-    if(impl->face.Attach(pBufferBytes, bufferSizeInBytes))
-    {
-        impl->err = 0;
-        return true;
-    }
-    else
-    {
-        impl->err = impl->face.Error();
-        return false;
-    }
+    return impl->Attach(pBufferBytes, bufferSizeInBytes);
 }
 
 
@@ -104,86 +86,85 @@ unsigned int FTFont::FaceSize() const
 
 void FTFont::Depth(float depth)
 {
-    impl->Depth(depth);
+    return impl->Depth(depth);
 }
 
 
 void FTFont::Outset(float outset)
 {
-    impl->Outset(outset);
+    return impl->Outset(outset);
 }
 
 
 void FTFont::Outset(float front, float back)
 {
-    impl->Outset(front, back);
+    return impl->Outset(front, back);
 }
 
 
 bool FTFont::CharMap(FT_Encoding encoding)
 {
-    bool result = impl->glyphList->CharMap(encoding);
-    impl->err = impl->glyphList->Error();
-    return result;
+    return impl->CharMap(encoding);
 }
 
 
 unsigned int FTFont::CharMapCount()
 {
-    return impl->face.CharMapCount();
+    return impl->CharMapCount();
 }
 
 
 FT_Encoding* FTFont::CharMapList()
 {
-    return impl->face.CharMapList();
+    return impl->CharMapList();
 }
 
 
 void FTFont::UseDisplayList(bool useList)
 {
-    impl->useDisplayLists = useList;
+    return impl->UseDisplayList(useList);
 }
 
+
 float FTFont::Ascender() const
 {
-    return impl->charSize.Ascender();
+    return impl->Ascender();
 }
 
 
 float FTFont::Descender() const
 {
-    return impl->charSize.Descender();
+    return impl->Descender();
 }
 
 
 float FTFont::LineHeight() const
 {
-    return impl->charSize.Height();
+    return impl->LineHeight();
 }
 
 
 void FTFont::Render(const wchar_t* string)
 {
-    impl->Render(string);
+    return impl->Render(string);
 }
 
 
 void FTFont::Render(const char * string)
 {
-    impl->Render(string);
+    return impl->Render(string);
 }
 
 
 void FTFont::Render(const char * string, int renderMode)
 {
-    impl->Render(string, renderMode);
+    return impl->Render(string, renderMode);
 }
 
 
 void FTFont::Render(const wchar_t* string, int renderMode)
 {
-    impl->Render(string, renderMode);
+    return impl->Render(string, renderMode);
 }
 
 
@@ -218,14 +199,14 @@ void FTFont::BBox(const wchar_t* string, const int start, const int end,
 void FTFont::BBox(const char* string, float& llx, float& lly, float& llz,
                   float& urx, float& ury, float& urz)
 {
-    impl->BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
+    return impl->BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
 }
 
 
 void FTFont::BBox(const wchar_t* string, float& llx, float& lly, float& llz,
                   float& urx, float& ury, float& urz)
 {
-    impl->BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
+    return impl->BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
 }
 
 
@@ -327,6 +308,33 @@ void FTFontImpl::Render(const wchar_t* string, int renderMode)
 }
 
 
+bool FTFontImpl::Attach(const char* fontFilePath)
+{
+    if(!face.Attach(fontFilePath))
+    {
+        err = face.Error();
+        return false;
+    }
+
+    err = 0;
+    return true;
+}
+
+
+bool FTFontImpl::Attach(const unsigned char *pBufferBytes,
+                        size_t bufferSizeInBytes)
+{
+    if(!face.Attach(pBufferBytes, bufferSizeInBytes))
+    {
+        err = face.Error();
+        return false;
+    }
+
+    err = 0;
+    return true;
+}
+
+
 bool FTFontImpl::FaceSize(const unsigned int size, const unsigned int res)
 {
     charSize = face.Size(size, res);
@@ -371,6 +379,50 @@ void FTFontImpl::Outset(float front, float back)
 }
 
 
+bool FTFontImpl::CharMap(FT_Encoding encoding)
+{
+    bool result = glyphList->CharMap(encoding);
+    err = glyphList->Error();
+    return result;
+}
+
+
+unsigned int FTFontImpl::CharMapCount()
+{
+    return face.CharMapCount();
+}
+
+
+FT_Encoding* FTFontImpl::CharMapList()
+{
+    return face.CharMapList();
+}
+
+
+void FTFontImpl::UseDisplayList(bool useList)
+{
+    useDisplayLists = useList;
+}
+
+
+float FTFontImpl::Ascender() const
+{
+    return charSize.Ascender();
+}
+
+
+float FTFontImpl::Descender() const
+{
+    return charSize.Descender();
+}
+
+
+float FTFontImpl::LineHeight() const
+{
+    return charSize.Height();
+}
+
+
 template <typename T>
 inline void FTFontImpl::BBoxI(const T* string, const int start, const int end,
                               float& llx, float& lly, float& llz,
diff --git a/src/FTFont/FTFontImpl.h b/src/FTFont/FTFontImpl.h
index 9c4c83f..438aba4 100644
--- a/src/FTFont/FTFontImpl.h
+++ b/src/FTFont/FTFontImpl.h
@@ -43,11 +43,29 @@ class FTFontImpl
     protected:
         FTFontImpl(char const *fontFilePath);
 
-
         FTFontImpl(const unsigned char *pBufferBytes, size_t bufferSizeInBytes);
 
         virtual ~FTFontImpl();
 
+        virtual bool Attach(const char* fontFilePath);
+
+        virtual bool Attach(const unsigned char *pBufferBytes,
+                            size_t bufferSizeInBytes);
+
+        virtual bool CharMap(FT_Encoding encoding);
+
+        virtual unsigned int CharMapCount();
+
+        virtual FT_Encoding* CharMapList();
+
+        virtual void UseDisplayList(bool useList);
+
+        virtual float Ascender() const;
+
+        virtual float Descender() const;
+
+        virtual float LineHeight() const;
+
         virtual void Render(const char* string);
 
         virtual void Render(const char* string, int renderMode);