Commit da303bb86d03addb75b8d09ae6917ed601046a5c

sammy 2008-04-28T15:24:05

* Remove all method implementations from the main FTFont.h, FTLayout.h and FTGlyph.h headers. Since they use private members, they belong to their respective .cpp files.

diff --git a/include/FTFont.h b/include/FTFont.h
index cd7e3d8..838a4db 100644
--- a/include/FTFont.h
+++ b/include/FTFont.h
@@ -162,7 +162,7 @@ class FTGL_EXPORT FTFont
          *
          * @param depth  The extrusion distance.
          */
-        virtual void Depth(float depth) {}
+        virtual void Depth(float depth);
 
         /**
          * Set the outset distance for the font. Only implemented by
@@ -170,7 +170,7 @@ class FTGL_EXPORT FTFont
          *
          * @param outset  The outset distance.
          */
-        virtual void Outset(float outset) {}
+        virtual void Outset(float outset);
 
         /**
          * Set the front and back outset distances for the font. Only
@@ -179,7 +179,7 @@ class FTGL_EXPORT FTFont
          * @param front  The front outset distance.
          * @param back   The back outset distance.
          */
-        virtual void Outset(float front, float back) {}
+        virtual void Outset(float front, float back);
 
         /**
          * Enable or disable the use of Display Lists inside FTGL
@@ -262,10 +262,7 @@ class FTGL_EXPORT FTFont
          * @param urz       upper right far z coord
          */
         void BBox(const char* string, float& llx, float& lly, float& llz,
-                  float& urx, float& ury, float& urz)
-        {
-            BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
-        }
+                  float& urx, float& ury, float& urz);
 
         /**
          * Get the bounding box for a string.
@@ -279,10 +276,7 @@ class FTGL_EXPORT FTFont
          * @param urz       upper right far z coord
          */
         void BBox(const wchar_t* string, float& llx, float& lly, float& llz,
-                  float& urx, float& ury, float& urz)
-        {
-            BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
-        }
+                  float& urx, float& ury, float& urz);
 
         /**
          * Get the advance width for a string.
@@ -335,7 +329,7 @@ class FTGL_EXPORT FTFont
          *
          * @return  The current error code.
          */
-        FT_Error Error() const { return err; }
+        FT_Error Error() const;
 
     protected:
         /**
diff --git a/include/FTGlyph.h b/include/FTGlyph.h
index d435d37..97b302f 100644
--- a/include/FTGlyph.h
+++ b/include/FTGlyph.h
@@ -88,21 +88,21 @@ class FTGL_EXPORT FTGlyph
          *
          * @return  advance width.
          */
-        const FTPoint& Advance() const { return advance; }
+        const FTPoint& Advance() const;
 
         /**
          * Return the bounding box for this glyph.
          *
          * @return  bounding box.
          */
-        const FTBBox& BBox() const { return bBox; }
+        const FTBBox& BBox() const;
 
         /**
          * Queries for errors.
          *
          * @return  The current error code.
          */
-        FT_Error Error() const { return err; }
+        FT_Error Error() const;
 
     protected:
         /**
diff --git a/include/FTLayout.h b/include/FTLayout.h
index 6940b2e..f8cd8f1 100644
--- a/include/FTLayout.h
+++ b/include/FTLayout.h
@@ -128,8 +128,7 @@ class FTGL_EXPORT FTLayout
          * @see FTFont::DoRender
          */
         void DoRender(FTFont *font, const unsigned int chr,
-                      const unsigned int nextChr, int renderMode)
-            { font->DoRender(chr, nextChr, pen, renderMode); }
+                      const unsigned int nextChr, int renderMode);
 
         /**
          * Expose <code>FTFont::CheckGlyph</code> method to derived classes.
@@ -137,29 +136,26 @@ class FTGL_EXPORT FTLayout
          * @param font The font that contains the glyph.
          * @param chr  character index
          */
-        void CheckGlyph(FTFont *font, const unsigned int Chr)
-            { font->CheckGlyph(Chr); }
-
-         /**
-          * Expose the FTFont <code>glyphList</code> to our derived classes.
-          *
-          * @param font The font to perform the query on.
-          * @param Char The character corresponding to the glyph to query.
-          *
-          * @return A pointer to the glyphList of font.
-          */
-         FTGlyphContainer *GetGlyphs(FTFont *font)
-            { return(font->glyphList); }
-
-         /**
-          * Expose the FTFont <code>charSize</code> to our derived classes.
-          *
-          * @param The font to perform the query on.
-          *
-          * @return A reference to the charSize object of font.
-          */
-         FTSize &GetCharSize(FTFont *font)
-            { return(font->charSize); }
+        void CheckGlyph(FTFont *font, const unsigned int Chr);
+
+        /**
+         * Expose the FTFont <code>glyphList</code> to our derived classes.
+         *
+         * @param font The font to perform the query on.
+         * @param Char The character corresponding to the glyph to query.
+         *
+         * @return A pointer to the glyphList of font.
+         */
+        FTGlyphContainer *GetGlyphs(FTFont *font);
+
+        /**
+         * Expose the FTFont <code>charSize</code> to our derived classes.
+         *
+         * @param The font to perform the query on.
+         *
+         * @return A reference to the charSize object of font.
+         */
+        FTSize &GetCharSize(FTFont *font);
 };
 
 #endif //__cplusplus
diff --git a/src/FTFont.cpp b/src/FTFont.cpp
index 2076f3b..ffd6d39 100644
--- a/src/FTFont.cpp
+++ b/src/FTFont.cpp
@@ -129,6 +129,24 @@ unsigned int FTFont::FaceSize() const
 }
 
 
+void FTFont::Depth(float depth)
+{
+    ;
+}
+
+
+void FTFont::Outset(float outset)
+{
+    ;
+}
+
+
+void FTFont::Outset(float front, float back)
+{
+    ;
+}
+
+
 bool FTFont::CharMap(FT_Encoding encoding)
 {
     bool result = glyphList->CharMap(encoding);
@@ -231,6 +249,20 @@ 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)
+{
+    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)
+{
+    BBox(string, 0, -1, llx, lly, llz, urx, ury, urz);
+}
+
+
 template <typename T>
 inline float FTFont::AdvanceI(const T* string)
 {
@@ -314,6 +346,12 @@ void FTFont::Render(const wchar_t* string, int renderMode)
 }
 
 
+FT_Error FTFont::Error() const
+{
+    return err;
+}
+
+
 bool FTFont::CheckGlyph(const unsigned int characterCode)
 {
     if(NULL == glyphList->Glyph(characterCode))
diff --git a/src/FTGlyph.cpp b/src/FTGlyph.cpp
index e4ec725..6f3f79c 100644
--- a/src/FTGlyph.cpp
+++ b/src/FTGlyph.cpp
@@ -49,3 +49,22 @@ FTGlyph::FTGlyph(FT_GlyphSlot glyph, bool useList) : err(0)
 
 FTGlyph::~FTGlyph()
 {}
+
+
+const FTPoint& FTGlyph::Advance() const
+{
+    return advance;
+}
+
+
+const FTBBox& FTGlyph::BBox() const
+{
+    return bBox;
+}
+
+
+FT_Error FTGlyph::Error() const
+{
+    return err;
+}
+
diff --git a/src/FTLayout.cpp b/src/FTLayout.cpp
new file mode 100644
index 0000000..80e19d3
--- /dev/null
+++ b/src/FTLayout.cpp
@@ -0,0 +1,64 @@
+/*
+ * FTGL - OpenGL font library
+ *
+ * Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, sublicense, and/or sell copies of the Software, and to
+ * permit persons to whom the Software is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Alternatively, you can redistribute and/or modify this software under
+ * the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License,
+ * or (at your option) any later version.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA.
+ */
+
+#include "config.h"
+
+#include "FTPoint.h"
+#include "FTFont.h"
+#include "FTLayout.h"
+
+void FTLayout::DoRender(FTFont *font, const unsigned int chr,
+              const unsigned int nextChr, int renderMode)
+{
+    font->DoRender(chr, nextChr, pen, renderMode);
+}
+
+
+void FTLayout::CheckGlyph(FTFont *font, const unsigned int Chr)
+{
+    font->CheckGlyph(Chr);
+}
+
+
+FTGlyphContainer * FTLayout::GetGlyphs(FTFont *font)
+{
+    return(font->glyphList);
+}
+
+
+FTSize & FTLayout::GetCharSize(FTFont *font)
+{
+    return(font->charSize);
+}
+
diff --git a/src/Makefile.am b/src/Makefile.am
index bfc482d..b074a7e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -17,6 +17,7 @@ libftgl_la_SOURCES = \
 	FTGlyph.cpp \
 	FTGlyphContainer.cpp \
 	FTGlue.cpp \
+	FTLayout.cpp \
 	FTLibrary.cpp \
 	FTOutlineGlyph.cpp \
 	FTPixmapGlyph.cpp \