⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftfont.h

📁 ftgl-2.1.2 夸平台的opengl显示字体
💻 H
字号:
#ifndef    __FTFont__#define    __FTFont__#include <ft2build.h>#include FT_FREETYPE_H#include "FTFace.h"#include "FTGL.h"class FTGlyphContainer;class FTGlyph;/** * FTFont is the public interface for the FTGL library. * * Specific font classes are derived from this class. It uses the helper * classes FTFace and FTSize to access the Freetype library. This class * is abstract and deriving classes must implement the protected * <code>MakeGlyph</code> function to create glyphs of the * appropriate type. * * It is good practice after using these functions to test the error * code returned. <code>FT_Error Error()</code>. Check the freetype file fterrdef.h * for error definitions. * * @see     FTFace * @see     FTSize * @see     FTGlyphContainer * @see     FTGlyph */class FTGL_EXPORT FTFont{    public:        /**         * Open and read a font file. Sets Error flag.         *         * @param fontFilePath  font file path.         */        FTFont( const char* fontFilePath);                /**         * Open and read a font from a buffer in memory. Sets Error flag.         * The buffer is owned by the client and is NOT copied by FTGL. The         * pointer must be valid while using FTGL.         *         * @param pBufferBytes  the in-memory buffer         * @param bufferSizeInBytes  the length of the buffer in bytes         */        FTFont( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);                /**         * Destructor         */        virtual ~FTFont();                /**         * Attach auxilliary file to font e.g font metrics.         *         * Note: not all font formats implement this function.         *         * @param fontFilePath  auxilliary font file path.         * @return          <code>true</code> if file has been attached         *                  successfully.         */        bool Attach( const char* fontFilePath);        /**         * Attach auxilliary data to font e.g font metrics, from memory         *         * Note: not all font formats implement this function.         *         * @param pBufferBytes  the in-memory buffer         * @param bufferSizeInBytes  the length of the buffer in bytes         * @return          <code>true</code> if file has been attached         *                  successfully.         */        bool Attach( const unsigned char *pBufferBytes, size_t bufferSizeInBytes);        /**         * Set the character map for the face.         *         * @param encoding      Freetype enumerate for char map code.         * @return              <code>true</code> if charmap was valid and         *                      set correctly         */        bool CharMap( FT_Encoding encoding );        /**         * Get the number of character maps in this face.         *         * @return character map count.         */        unsigned int CharMapCount();        /**         * Get a list of character maps in this face.         *         * @return pointer to the first encoding.         */        FT_Encoding* CharMapList();                /**         * Set the char size for the current face.         *         * @param size      the face size in points (1/72 inch)         * @param res       the resolution of the target device.         * @return          <code>true</code> if size was set correctly         */        virtual bool FaceSize( const unsigned int size, const unsigned int res = 72);                /**         * Get the current face size in points.         *         * @return face size         */        unsigned int FaceSize() const;                /**         * Set the extrusion distance for the font. Only implemented by         * FTGLExtrdFont         *         * @param depth  The extrusion distance.         */        virtual void Depth( float depth){}        /**         * Enable or disable the use of Display Lists inside FTGL         *         * @param  useList <code>true</code> turns ON display lists.         *                 <code>false</code> turns OFF display lists.         */        void UseDisplayList( bool useList);                /**         * Get the global ascender height for the face.         *         * @return  Ascender height         */        float Ascender() const;                /**         * Gets the global descender height for the face.         *         * @return  Descender height         */        float Descender() const;                /**         * Gets the line spacing for the font.         *         * @return  Line height         */        float LineHeight() const;                /**         * Get the bounding box for a string.         *         * @param string    a char string         * @param llx       lower left near x coord         * @param lly       lower left near y coord         * @param llz       lower left near z coord         * @param urx       upper right far x coord         * @param ury       upper right far y coord         * @param urz       upper right far z coord         */        void BBox( const char* string, float& llx, float& lly, float& llz, float& urx, float& ury, float& urz);        /**         * Get the bounding box for a string.         *         * @param string    a wchar_t string         * @param llx       lower left near x coord         * @param lly       lower left near y coord         * @param llz       lower left near z coord         * @param urx       upper right far x coord         * @param ury       upper right far y coord         * @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);        /**         * Get the advance width for a string.         *         * @param string    a wchar_t string         * @return      advance width         */        float Advance( const wchar_t* string);        /**         * Get the advance width for a string.         *         * @param string    a char string         * @return      advance width         */        float Advance( const char* string);        /**         * Render a string of characters         *          * @param string    'C' style string to be output.            */        virtual void Render( const char* string );        /**         * Render a string of characters         *          * @param string    wchar_t string to be output.              */        virtual void Render( const wchar_t* string );        /**         * Queries the Font for errors.         *         * @return  The current error code.         */        FT_Error Error() const { return err;}    protected:        /**         * Construct a glyph of the correct type.         *         * Clients must overide the function and return their specialised         * FTGlyph.         *         * @param g The glyph index NOT the char code.         * @return  An FT****Glyph or <code>null</code> on failure.         */        virtual FTGlyph* MakeGlyph( unsigned int g) = 0;                /**         * Current face object         */        FTFace face;                /**         * Current size object         */        FTSize charSize;        /**         * Flag to enable or disable the use of Display Lists inside FTGL         * <code>true</code> turns ON display lists.         * <code>false</code> turns OFF display lists.         */        bool useDisplayLists;        /**         * Current error code. Zero means no error.         */        FT_Error err;            private:                /**         * Check that the glyph at <code>chr</code> exist. If not load it.         *         * @param chr  character index         * @return <code>true</code> if the glyph can be created.         */        inline bool CheckGlyph( const unsigned int chr);        /**         * An object that holds a list of glyphs         */        FTGlyphContainer* glyphList;                /**         * Current pen or cursor position;         */        FTPoint pen;        };#endif  //  __FTFont__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -